이 글은 유튜브 AWS 강의실 채널의 "쉽게 설명하는 AWS 기초강좌"의 내용을 정리한 글입니다
정의
단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신(VM)이라고 하는 다수의 가상 컴퓨터로 분할 할 수 있도록 해주는 기술
- 운영체제 : 시스템의 하드웨어 자원과 소프트웨어 자원을 운영, 관리하는 프로그램
- 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에서 사용자마다 컴퓨터를 할당해 주는 것이 아닌 이미 구축된 가상화 가능한 서버의 한 부분을 할당해 주는 것