Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

가상화 기술과 하이퍼바이저의 개념 정리 본문

AWS

가상화 기술과 하이퍼바이저의 개념 정리

H.S-Backend 2024. 10. 8. 13:53

가상화는 물리적인 서버 자원을 가상화하여 효율적으로 사용하는 기술

 

여러 개의 가상 머신을 하나의 물리적 서버에서 실행할 수 있게 해주어,
서버 자원의 활용도를 높이고 비용 절감 효과를 줍니다.

 

이러한 가상화를 가능하게 하는 소프트웨어가

하이퍼바이저(Hypervisor)

최근에는

컨테이너(Container) 기술이

가상화보다 더 가볍고 효율적인 대안으로 주목받고 있다.

 

1. 가상화의 종류

1.1 전가상화(Full Virtualization)

  • 설명: 하이퍼바이저가 물리적 하드웨어를 완전히 에뮬레이션하여 가상 머신이 실제 하드웨어에서 실행되는 것처럼 처리하는 방식.
  • Binary Translation: CPU 명령어를 변환해 실행하는 과정. 성능에 오버헤드(성능 저하)가 발생할 수 있음.
  • 장점: 운영체제 수정 없이 다양한 OS를 실행할 수 있음.
  • 단점: Binary Translation으로 인해 성능이 저하될 수 있음.

1.2 반가상화(Paravirtualization)

  • 설명: 가상 머신이 하이퍼바이저와 직접 협력하여 하드웨어에 접근하는 방식. 커널을 수정해 Binary Translation을 제거.
  • 장점: 오버헤드가 없으며 성능이 전가상화보다 뛰어남.
  • 단점: 운영체제 커널을 수정해야 하므로 구현이 복잡함.

1.3 하드웨어 지원 가상화(Hardware-assisted Virtualization)

  • 설명: CPU 자체가 가상화를 지원하는 방식. 인텔의 VT-x와 AMD의 AMD-V가 대표적.
  • 장점: CPU가 가상화 명령어를 처리하므로 성능 저하 없이 가상화를 구현.
  • 단점: 특정 하드웨어에서만 지원되며, 구형 CPU는 지원하지 않을 수 있음.

2. 하이퍼바이저의 종류

2.1 타입 1 하이퍼바이저 (Bare-metal 하이퍼바이저)

  • 설명: 물리적 하드웨어 위에 직접 설치되어 실행됨. 운영체제가 아닌 하이퍼바이저가 하드웨어 자원을 직접 관리.
  • 장점: 하드웨어에 직접 설치되므로 성능이 뛰어남.
  • 단점: 설치와 관리가 상대적으로 복잡.
  • 주요 예시:
    • Citrix Hypervisor (AWS에서 사용)
    • vSphere Hypervisor (OpenStack)
    • KVM (AWS, GCP에서 사용)

2.2 타입 2 하이퍼바이저 (Hosted 하이퍼바이저)

  • 설명: 기존 운영체제 위에서 실행되는 하이퍼바이저. 운영체제 위에 설치되므로, 성능은 타입 1보다 떨어짐.
  • 장점: 기존 운영체제에서 쉽게 설치 및 사용할 수 있음.
  • 단점: 운영체제 위에서 동작하기 때문에 성능이 낮음.
  • 주요 예시:
    • VMware Workstation (개발용으로 많이 사용)
    • VirtualBox (개인용 가상화 도구)
    • QEMU (리눅스에서 오픈소스로 사용)

3. 컨테이너(Container) 기술

컨테이너는 가상 머신과 달리 가볍고, 운영체제(OS)를 포함하지 않는 방식으로 실행되는 애플리케이션 격리 기술입니다. VM과 비교했을 때 훨씬 더 효율적인 리소스 사용이 가능합니다.

3.1 컨테이너 vs 가상 머신(VM)

  • 가상 머신(VM): 가상화된 하드웨어 위에서 각각의 운영체제를 실행. VM마다 개별 운영체제가 필요하므로 무겁고, 자원을 많이 사용함.
  • 컨테이너: 호스트 운영체제의 커널을 공유하고, 애플리케이션과 그에 필요한 라이브러리만을 격리된 환경에서 실행. VM보다 가볍고 빠름.

3.2 컨테이너의 장점

  • 효율성: 컨테이너는 운영체제를 공유하므로 VM보다 메모리와 CPU를 덜 사용함.
  • 신속한 배포: 가상화된 시스템보다 애플리케이션을 배포하고 구동하는 속도가 훨씬 빠름.
  • 이식성: 동일한 환경을 컨테이너로 패키징하여 어디서든 동일하게 실행 가능. (개발 환경과 운영 환경의 일관성 보장)

3.3 도커(Docker)

Docker는 컨테이너 기술의 대표적인 플랫폼으로, 애플리케이션을 컨테이너화하여 간편하게 배포하고 관리할 수 있게 해줍니다.

  • VMware처럼 가상 머신을 쪼개는 것을 컨테이너는 더 작은 단위로 쪼갭니다. 이 작은 단위는 애플리케이션의 실행 환경을 격리시키지만, OS가 없기 때문에 가볍고 빠릅니다.
  • Docker의 특징:
    • 독립된 환경에서 애플리케이션을 실행
    • OS 레벨에서 자원을 공유하므로 VM보다 훨씬 효율적

4. 타입 1 vs 타입 2 vs 컨테이너 비교

구분 타입1 하이퍼바이저  타입 2 하이퍼바이저 컨테이너
설치 위치 하드웨어 위에 직접 설치 운영체제 위에 설치 호스트 OS 위에서 실행
성능 뛰어남 (하드웨어 직접 관리) 낮음 (운영체제 위에서 동작) 매우 뛰어남 (OS 공유로 빠름)
자원 사용량 많음 중간 적음
사용 목적 대규모 서버 환경 개인용 또는 개발 테스트 환경 애플리케이션 격리 및 배포에 적합
예시 Citrix, vSphere, KVM VMware Workstation, VirtualBox Docker

5. 결론

  • 가상 머신(VM)은 운영체제까지 가상화하여 강력한 격리 환경을 제공하지만, 자원이 많이 소모됩니다.
  • 컨테이너(Container)는 운영체제를 공유하여 애플리케이션 실행 환경만 격리하는 방식으로, 가볍고 빠르게 동작합니다. 도커(Docker)가 이를 대표하는 플랫폼입니다.
  • 타입 1 하이퍼바이저는 대규모 서버 환경에서 높은 성능을 요구할 때 유리하고, 타입 2 하이퍼바이저는 개인 개발 환경에서 간편하게 사용할 수 있습니다.
  • 컨테이너는 클라우드 환경과 DevOps에서 매우 효율적인 배포 및 관리 방식으로 자리 잡고 있습니다.
반응형