가상머신(VM, Virtual Machine)
[Physical Server]
│
[Host OS]
│
┌─────────────┐
│ Hypervisor │
└─────────────┘
┌──────────┐
│ VM 1 │ -> Guest OS + Service 1
└──────────┘
┌──────────┐
│ VM 2 │ -> Guest OS + Service 2
└──────────┘
- 동작 원리: 물리 서버 위에 호스트 OS가 설치되고, 그 위에 하이퍼바이저(VMware 등)를 사용하여 원하는 게스트 OS를 올림
- 특징:
- 호스트 OS와 게스트 OS 종류가 달라도 사용 가능
- 각 VM이 독립된 운영체제 환경을 제공하므로 안정적
- 서비스 단위로 확장 가능
컨테이너(Container)
[Physical Server]
│
[Host OS]
│
┌─────────────┐
│ Docker/컨테이너 엔진 │
└─────────────┘
┌──────────┐
│ Container 1 │ -> App + 라이브러리
└──────────┘
┌──────────┐
│ Container 2 │ -> App + 라이브러리
└──────────┘
- 동작 원리: 물리 서버 위의 호스트 OS에서 컨테이너 엔진(Docker 등)을 사용해 서비스를 격리된 컨테이너 단위로 실행함
- 특징:
- 호스트 OS와 게스트 OS가 동일해야 함
- OS에서 제공하는 자원 격리 기술을 활용해 서비스 단위로 독립 실행
- 라이브러리와 애플리케이션을 함께 패키징하므로, OS 버전에 구애받지 않고 이식성 뛰어남
- 모듈 단위로 확장 가능 (예시. 서비스별 마이크로서비스를 각각 컨테이너로 운영)
댓글