클라우드 엔지니어링을 제대로 공부하려면 결국 OpenStack을 손으로 만져봐야 합니다. 그런데 클라우드를 배우자고 클라우드에 돈을 쓰긴 아깝죠. 그래서 저는 Proxmox 홈랩 안에 OpenStack 멀티노드 랩을 꾸며 두고, 공부할 때만 켭니다. 실제 제 랩 구성과 프라이빗 클라우드 학습 환경을 만드는 법을 공개합니다.
1. 왜 집에서 OpenStack인가
- 프라이빗 클라우드의 실체를 이해하려면 컨트롤러·컴퓨트·네트워크·스토리지가 어떻게 맞물리는지 직접 봐야 합니다.
- 퍼블릭 클라우드는 “결과”만 보여주지만, OpenStack은 그 아래 구조를 다 열어 줍니다.
- 자격증·실무(프라이빗 클라우드 운영) 준비에 이만한 실습 환경이 없습니다.
2. 내 랩의 실제 토폴로지
저는 Proxmox 위에 노드 역할을 나눈 멀티노드 구성과, 간단히 굴리는 올인원 학습용을 함께 둡니다.
| 노드(VM) | 역할 | vCPU / RAM |
|---|---|---|
| deploy | 배포·오케스트레이션 | 1 / 2GB |
| control | API·스케줄러·DB·메시지큐 | 4 / 2GB |
| compute01~03 | 실제 인스턴스(VM) 구동 | 각 1 / 4GB |
| all-in-one(study) | 단일 노드 전체 스택 | 6 / 16GB |
멀티노드는 “진짜 구조”를 배우는 데 좋고, 올인원은 “빠르게 기능만” 볼 때 좋습니다. 둘 다 갖춰두면 학습 목적에 맞게 골라 쓸 수 있습니다.
3. 핵심 전제 — 중첩 가상화(Nested Virtualization)
OpenStack의 컴퓨트 노드는 그 안에서 또 VM(인스턴스)을 돌립니다. 즉 “VM 안의 VM”이라, Proxmox 호스트에서 중첩 가상화가 켜져 있어야 합니다.
# Proxmox 호스트에서 중첩 가상화 확인 (Intel)
cat /sys/module/kvm_intel/parameters/nested # Y 여야 함
# 컴퓨트 노드 VM의 CPU 타입을 host로 (가상화 기능 노출)
qm set 105 --cpu host
이게 빠지면 인스턴스가 아예 안 뜨거나 QEMU 소프트웨어 에뮬레이션으로 기어갑니다. compute 노드엔 반드시 --cpu host를 주세요.
4. 자원 현실 — OpenStack은 무겁다
솔직히 말하면 OpenStack은 홈랩 기준으로 무겁습니다. 올인원만 해도 16GB를 잡아먹고, 멀티노드는 노드 5개가 동시에 떠야 합니다. 그래서 제 원칙은 —
- 평소엔 꺼둡니다. 학습할 때만 부팅하고, 끝나면 종료해 RAM을 회수합니다.
- 멀티노드와 올인원을 동시에 켜지 않습니다.
- 미니 PC 한 대의 RAM 예산 안에서 굴리려면 “쓸 때만 켠다”가 필수입니다.
홈랩에서 상시 운영이 아니라 학습용 랩으로 접근하는 게 현실적입니다.
5. 배포 방식 고르기
| 방식 | 특징 | 추천 |
|---|---|---|
| DevStack | 스크립트로 올인원, 개발·기능 확인용 | 빠른 입문 |
| Kolla-Ansible | 컨테이너 기반 멀티노드, 운영에 가까움 | 제대로 배우기 |
| 수동 설치 | 컴포넌트 하나씩, 가장 깊이 이해 | 자격증·심화 |
입문은 DevStack 올인원으로 “돌아가는 걸” 먼저 보고, 구조를 이해했으면 Kolla-Ansible로 멀티노드에 도전하는 흐름을 권합니다.
6. 정리
OpenStack은 무겁지만, 프라이빗 클라우드의 내부를 이해하는 데 이만한 교재가 없습니다. Proxmox의 중첩 가상화 위에 노드를 나눠 올리고, 필요할 때만 켜는 학습 랩으로 운영하면 미니 PC 한 대로도 충분히 공부할 수 있습니다. 다음 글에서는 OpenStack과 Proxmox 중 무엇을 선택해야 하는지, 그리고 핵심 컴포넌트를 하나씩 뜯어보겠습니다.