Z.PROJ

Virtual Machines(VMs) / Containers

최 수빈 2024. 12. 15. 13:33

 

Virtual Machines (VMs)

  1. Infrastructure (인프라스트럭처)
    • 물리적 하드웨어 또는 클라우드 기반 서버
      예: 서버, 스토리지, 네트워크
  2. Hypervisor (하이퍼바이저)
    • 하드웨어와 게스트 운영 체제(Guest OS) 사이의 추상화 계층: 가상 머신을 실행할 수 있는 환경을 제공
    • 대표적인 하이퍼바이저: VMware, Hyper-V, KVM.
  3. Guest OS (게스트 운영 체제)
    • 각 VM마다 독립적으로 설치된 운영 체제
    • 여러 개의 운영 체제가 동시에 실행되므로, 각각의 VM은 고유한 OS를 가지고 독립적으로 동작
  4. Bins/Lib (바이너리/라이브러리)
    • 각 애플리케이션이 실행되는 데 필요한 라이브러리와 바이너리 파일들
    • Guest OS에 의존하기 때문에 각 VM마다 별도로 설치됨
  5. App (애플리케이션)
    • 가상 머신 위에서 실행되는 애플리케이션
    • 각 애플리케이션은 독립적으로 실행되지만, 하드웨어 자원 사용 측면에서 상대적으로 무거움

Containers

  1. Infrastructure (인프라스트럭처)
    • VM과 동일한 물리적 하드웨어 또는 클라우드 서버
  2. Operating System (운영 체제)
    • 호스트 OS가 컨테이너 환경에서 공유됨
    • 모든 컨테이너가 동일한 OS 커널을 사용하므로 리소스 사용이 효율적
  3. Container Engine (컨테이너 엔진)
    • 컨테이너를 관리하는 소프트웨어
    • 컨테이너 실행, 관리, 네트워킹, 이미지 배포 등을 담당
    • 대표적 컨테이너 엔진: Docker, containerd, Podman
  4. Bins/Lib (바이너리/라이브러리)
    • 각 컨테이너는 필요한 바이너리와 라이브러리를 포함
    • 호스트 OS와 커널을 공유하므로 크기가 가볍고 빠르게 실행됨
  5. App (애플리케이션)
    • 컨테이너 내부에서 실행되는 애플리케이션
    • 컨테이너는 경량화되어 있고, 서로 독립적이지만 OS 커널을 공유
  VMs Containers
Guest OS 유무 각 어플리케이션마다 독립적인 Guest OS를 실행 host OS 공유
리소스 효율성 더 많은 리소스 사용, 실행 속도 느림 경량화되어 빠르게 실행됨
격리 수준 높은 수준의 격리 제공, 보안 요구 사항이 높은 환경에 적합 프로세스 수준의 격리 제공, 효율성과 확장성이 필요한 환경에 적합
배포 속도 부팅 시간이 더 걸림 거의 즉시 시작됨
유연성 여러 운영 체제 실행 가능, 다양한 환경 지원 하나의 운영 체제 공유, OS 선택 제한

 

가상 머신격리와 독립성 강조

컨테이너경량성과 속도 강조

 

 

  • VM이 적합한 경우:
    • 다양한 운영 체제나 기술 스택을 사용하는 환경
    • 강력한 격리 및 보안이 요구되는 시스템
    • 리소스가 충분히 제공되는 환경
  • Container가 적합한 경우:
    • 빠른 애플리케이션 배포와 확장이 필요한 마이크로서비스 아키텍처
    • 경량화된 환경에서 여러 애플리케이션을 실행해야 하는 경우
    • DevOps나 CI/CD 파이프라인에서의 유연성과 속도 제공 시

'Z.PROJ' 카테고리의 다른 글

Docker  (0) 2024.12.24