가상화란?
단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신(VM)이라고 하는
다수
의 가상 컴퓨터로 분할할 수 있도록 해주는 기술들어가기 전에
- 운영제체(Operating System, OS): 시스템 하드웨어 자원과 소프트웨어 자원을 운영 관리하는 프로그램
- Windows, Linux, MacOS, Android…
- 특권 명령(privileged instruction): 시스템 요소들과 소통할 수 있는 명령 - OS만 가능
- OS는 특권 명령 때문에 하나의 하드웨어 시스템 당 하나밖에 돌아갈 수 없음
- 일반 프로그램은 특권 명령이 필요 없기 때문에 많은 프로그램을 동시에 수행 가능
- 가상화가 나타나기 전 까지는 하나의 하드웨어 시스템은 하나의 OS만 실행이 가능했음
- 즉 일반적인 컴퓨터처럼 직접 OS가 하드웨어에 설치된 상태(Bare-Metal)로만 운영 가능했었음
- 1세대: 완전 가상화(Fully Emulated)
- 모든 시스템 요소가 에뮬레이터 안에서 돌아감
- 즉 CPU, 하드디스크, 마더보드 등 모든 요소를 에뮬레이터로 구현하여 OS와 연동
- 엄청나게 느림
- 2세대: Paravirtualization
- Guest OS는 하이퍼바이저와 통신
- 하이퍼바이저: OS와 하드웨어 사이에 존재하는 일종의 가상화 매니저
- 속도의 향상
- 몇몇 요소의 경우 여전히 에뮬레이터 필요 = 느림
- 3세대: Hardware Virtual Machine (HVM)
- 하드웨어에서 직접 가상화를 지원
- 직접 Guest-OS가 하드웨어와 통신 = 빠른 속도 (near bare-metal)
가상화와 클라우드
- AWS 클라우드 환경에서 리소스를 작은 단위로 빠르게 구성할 수 있는 원동력은 가상화
- 즉 AWS에서 사용자마다 컴퓨터를 할당해 주는 것이 아닌 이미 구축된 가상화 가능한 서버의 한 부분을 할당해 주는 것