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에서 매우 효율적인 배포 및 관리 방식으로 자리 잡고 있습니다.
반응형