가상화란?
물리적인 자원들을 통합하고 논리적으로 재구성하여 자원을 효율적으로 사용하는 기술
가상화 기술의 등장 배경
- 자원의 효율적인 운영
- On Demand 기능
- 개발 효율성 대두
- 보안성 향상
- 분리와 격리를 통한 안전하 접근 제공
대상에 다른 가상화 분류
- 서버 가상화(EC2)
- 1대의 물리적인 서버를 분할하여 여러대의 논리적인 가상 서버로 구성 - 스토리지 가상화(S3, EBS)
- 다수의 물리적인 저장소를 하나 이상의 볼륨이나 드라이브로 나누는 기술 - 네트워크 가상화(VPC)
- 한정된 물리적인 네트워크 자원을 여러 가상적인 독립적인 네트워크 환경으로 구축 - 데스크탑 가상화(Dass)
- 다른 컴퓨터에서 실행되는 화면을 원격의 데스크탑에서 볼 수 있는 기술
하이퍼바이저에 따른 분류
- 위치와 역할
- TYPE 1방식
* Native 하이퍼바이저형
* 하이퍼바이저를 OS형태로 개발
* 아무것도 설치되지 않은 하드웨어에 처음부터 설치
* 게스트 OS의 하드웨어 접근이 용이
- TYPE 2방식
* Hosted 하이퍼바이저형
* 하이퍼바이저를 애플리케이션 형태로 개발
* 호스트 OS가 설치된 환경에서 하이퍼바이저 설치
* 기존 운영체제의 변경없이 사용가능 - 가상화 방식
- 전가상화 방식
* 하드웨어 전체 가상화
* 반드시 CPU가 전가상화기능을 지원해야함
- 반가상화 방식
* 하드웨어의 절반만 가상화 진행, 속도가빠름
* 게스으 OS의 수정이 반드시 필요함.
※ 하이퍼바이저 : 운영체제 역할
가상머신과 도커의 비교
- VM의 경우 OS위 Hypervisor 설치하여 GuestOS로 구분
- 컨테이너 Hypervisor => Docker
- 컨테이너의 경우 GuestOS가 없다.
항목 | 가상머신(VM) | 컨테이너(Docker) |
하이퍼바이저 | 필요함 | 필요없음 |
게스트 OS | 필요함 | 필요없음 |
커널 자원분리 | 필요함 | 필요없음 |
자원 효율성 | 낮음 | 높음 |
시작 및 종료 시간 | 느림 | 빠름 |