회사 와서 제일 새롭고 신기했던 것 중에 하나...!
내 개발 서버를 직접 만들엇다!!
학교에서 프로젝트 할 때는 이미 만들어져 잇는 서버를 배포하거나 AWS EC2를 사용햇엇는데
회사에서는 Proxmox로 다 자기 개발 공간을 만들어서 사용하고 잇엇다...
처음 들엇을 때.
Proxmox...? 그게 모에여...?

이 상태엿슨.
그래서 오늘은 회사에서 처음 사용 해본 Proxmox가 뭔지, 그리고 CT를 만들어서 내 개발 서버를 만든 과정을 정리해보려고 한당!

Proxmox란?
Proxmox VE는 하나의 물리 서버에서 여러개의 가상화된 환경을 생성하고 관리 할 수 있는 플랫폼.
쉽게 생각하면 큰 서버가 하나 잇고, 그 안에 여러개의 독립적인 서버 환경을 만들어서 사용하는 느낌~
물리 서버
↓
Proxmox
├─ CT
├─ CT
├─ CT ← 내 개발 서버!!
└─ VM
Proxmox에서는 크게 VM과 CT를 생성 할 수 있는데
나는 이번에 CT를 생성해서 개발 서버로 사용햇다.
여기서 또 새로운게 등장.
CT = Container
Proxmo에서 생성하는 CT는 LXC Container를 기반으로 한다.
LXC Container = 하나의 서버 안에 나만의 작은 Linux 서버 공간을 따로 만드는 것
처음에는
컨테이너...? Docker도 컨테이너 아니엇나...?

했는데 둘은 같은게 아니엇슨..
CT는 호스트 Linux의 커널을 공유하면서도 각각 분리된 Linux 환경처럼 사용 할 수 잇다!
커널 = 프로그램 하드웨어 사이에서 CPU, 메모리 등의 자원을 관리해주는 운영 체제의 핵심 부분
VM과 간단하게 비교하면
VM
→ 각각 독립적인 os와 커널을 사용
→ 하나의 가상 컴퓨터를 만드는 느낌
CT
→ 호스트 Linux 커널을 공유
→ 필요한 환경만 분리해서 사용
→ VM보다 비교적 가법다!
나같은 경우는 개발용 Linux 서버가 필요 했기 떄문에 CT를 생성해서 사용햇다!
회사 선배님의 왈. 다른 분들이 만들어놓은 서버 보고 참고해서 만드세여~
그레서 열심히 참고해서 따라 만듬..
약간 서버 메모리나 CPU 몇 코어 쓰고 이런거 다 보고 해서 그냥. 따라쟁이가 되엇습니다.
처음보면 설정 할거 꽤 많다..
하나씩 설정해 주엇당.
CT에서 사용 할 Hostname과 Password 설정한다.
Hostname = 서버 이름
CT ID는 같은 서버에 잇는 사람들이랑 겹치면 안됩니다.
보통 자동으로 설정되는 번호가 안 겹치는 번호기는 함. 그래도 한 번 확인 할 것!

다음은 CT에서 사용할 OS Template을 선택햇다.

나는 개발 서버의 운영체제로 Ubuntu를 선택했다.
Proxmox CT는 OS를 처음부터 직접 설치하는 방식이 아니라, 미리 준비된 Ubuntu Template을 이용해서 Linux 환경을 생성할 수 있다.
이렇게 생성한 Ubuntu CT를 이후에 개발 서버로 사용했다.
개발 서버에서 사용 할 공간도 Disk 용량과 Storage를 설정해준다.
이 공간 안에는 프로젝트나 Docker Image 같은 것들이 들어가게 된다.

처음에는 그냥 용량만 정하면 되는 줄 알고 별 생각없이 설정햇는데...
하필 용량이 거의 다 차 잇는 Storage를 선택해버림..ㅜ
당연히 제대로 될리 없엇고. 빠꾸 먹고 다시 설정함.
다시 설정할 때는 Storage의 남은 용량을 확인하고, 여유 공간 잇는 곳으로 선택해서 정상적으로 생설 할 수 잇엇슨..
💡 얻게 된 교훈 - 캐리어에 자리도 없는데 짐부터 쑤셔 넣지 말자.
= Storage의 남은 용량부터 확인하자...
역시 한 번 실패해봐야 제대로 알게 되는듯..
다음은 서버에서 사용할 CPU와 RAM 설정!

CT마다 사용할 수 있는 리소스를 따로 지정할 수 있다는 것을 처음 알았다!
내가 사용할 개발 서버에 필요한 만틈 리소스를 할당 해줫다.

Memory 입력 할 때 많이 헷갈렷는데 메모리는 보통 MiB 단위로 입력한다.
처음에는 숫자만 덩그러니 잇어서 이게 대체 얼마인지 감이 안 왓는데...
1024 MiB ≈ 1GB
2048 MiB ≈ 2GB
4096 MiB ≈ 4GB
8192 MiB ≈ 8GB
이렇게 생각하면 훨씬 편하당.
CPU와 Memory를 많이 준다고 무조건 좋은게 아니라 하나의 서버 자원을 여러 CT가 나눠서 사용하기 때문에 내 개발 서버에 필요한 만틈 적절하게 할당하는게 중요하다!
🧐 나는 이렇게 기억하기로 했다
Memory 숫자 보고 당황하지 말고 1024 ≈ 1GB만 기억하기.
지금 봐도 모르겟는... 네트워크...

여기서는 IP 주소, Subnet(CIDR)를 설정하고 넘어갓다.
같은 네트워크에서 IP가 겹치면 IP 충돌이 발생할 수 있기 때문에, 내가 사용하려는 IP를 다른 서버에서 사용하고 있는지 않은지 확인하고 설정해야한다.
💡 IP는 집 주소랑 똑같다. 옆집이랑 같은 주소 쓰지 말자...
설정 다 하고 생성하면 Proxmox 왼쪽 목록에 내가 만든 CT가 나타난당.
그리고 Start를 눌러 CT를 실행!
Console에 들어가보면

익숙한 Linux 터미널이 나온다.
내가 방금 만든 서버라고 생각하니까 신기하고 뿌듯햇다!

매번 promox에 들어와서 Console을 사용하는건 불편하기 때문에
실제로 개발 할 때는 SSH를 사용해서 서버에 접속한다.
ssh 사용자명@서버IP
접속에 성공하면 내가 만든 CT의 Linux 환경을 내 컴퓨터에서도 사용 할 수 있다!

이후에는 Cursor에서도 SSH로 이 서버에 접속해서 프로젝트 작업을 했다.
SSH는 이번에 처음 제대로 이해하고 사용해봣는데 생각보다 내용이 좀 잇어서 다음 글에서 따로 정리해보려고 한다.
OS Template 선택
↓
Disk / CPU / RAM 설정
↓
Network 설정
↓
CT 생성 & Start
↓
SSH 접속
↓
내 개발 서버 완성 🎉
처음에는 서버를...제가여..? 싶엇는데
만들고 보니까 껌이다ㅋ
직접 만들어보니까 서버가 어떻게 만들어지고 사용되는지 조금은 이해하게 됐다!
등교가 하고 싶어지는 하루엿다.....ㅜ
짖짜 개발자다....처음 본 용어들이 많아서 신기하네오....덕분에 몰랐던 용어들 배우고 갑니다😍