[가상화] 하이퍼바이저 vs 컨테이너

송철진·2023년 4월 28일
0

1. Before 가상화

하나의 컴퓨터에 하나의 OS만 사용.

단점

  1. 해당 OS가 컴퓨터의 모든 리소스를 항상 full로 사용하기 어려움
    👉 CPU 등 리소스 낭비(idle 상태).
  2. 서버 자원의 사용량을 예측하기 어려움
  3. 증감폭이 크기 때문에 서버의 물리적인 확장에 한계

👉👉 서버 확장을 쉽게 하기 위해 하이퍼바이저 가상화 기술 탄생!

2. 가상화 기술 비교

2-1. Hypervisor Virtualization

하나의 컴퓨터에서 다수의 독립적인 OS를 운영.
하나의 물리적 서버의 리소스를 각각의 OS에 할당하여 효율적으로 사용

하이퍼바이저
하나의 컴퓨터에서 여러 OS를 동시에 실행하기 위한 소프트웨어

하이퍼바이저 가상화 구성
3*독립적인 다수의 OS들
2Host OS
1하나의 물리적 서버

*독립적인: OS 간 서로 알지 못함

2-2. 컨테이너 가상화(Container Virtualization)

프로세스를 격리된 환경에서 실행하는 기술
하나의 서버에 다수의 컨테이너를 실행하면 컨테이너끼리 서로 영향을 끼치지 않고 독립적으로 실행
운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행

기능

  • 실행중인 컨테이너에 접속하여 명령어 입력, 패키지 설치 등 다양한 작업 가능.
  • CPU, 메모리의 제한 가능
  • 호스트 디렉토리에 마운트하여 내부 디렉토리로 사용 가능
  • 하나의 프로세스(컨테이너)를 실행하는데 필요한 모든 파일을 이미지로 만들어 놓고 제공함.
    👉 개발, 테스트, 프로덕션 등 전 과정에서 일관된 환경을 유지

비교하기

가상머신컨테이너 가상화
구현 기술하이퍼바이저도커
하드웨어 레벨 가상화OS 레벨 가상화
가상 하드웨어 환경 위에 게스트 OS 설치컨테이너 엔진으로 어플리케이션 실행 환경 격리
VMware, VirtualBox, Linux KVM, Xen
장점사용법 간단함가볍고 속도 빠름
이미지 생성 및 공유가 쉬움
단일 app 구동을 위한 최소한의 환경만 구분
단점무겁다(heavy-weight)가상머신 방식처럼 다양한 OS를 사용할 수 없음
부팅시간 길고 리소스 많이 차지함보안적으로 완전히 격리되지 않음

참조: https://itwiki.kr/w/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88_%EA%B0%80%EC%83%81%ED%99%94

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글