6. 가상화

728x90
반응형

본 강의는 유튜브 채널 AWS 강의실 님의 AWS 기초 강좌를 정리한 항목이다.

출처 : https://www.youtube.com/watch?v=hb_4Tf6bAtY&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=7

 

 

가상화란 단일 컴퓨터의 하드웨어 요소를 일반적으로 가상 머신(Virtual Machine) 이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 기술이다.

가상화를 사용하면 서버의 자원을 통합해서 관리할 수 있어 잉여 리소스를 줄이고(효율 증가), 비용을 절감할 수 있다는 장점이 있다.

예를 들어 위 사진과 같이 회사에 빌드 서버, 웹 서버, 메일 서버가 각각 따로 존재하고 각각 30%, 50%, 10% 씩의 CPU 점유율을 가지고 있다고 해보자. 그러면 각각 나머지 70%, 50%, 90% 자원은 사용되고 있지 않는 잉여 리소스가 되어버린다(효율적이지 못함). 이를 통합해서 하나의 서버에 몰아넣게 되면, 서버 3대를 돌리던 것을 1대로 줄여서 비용을 절감할 수 있고, 잉여 리소스를 줄일 수 있게 된다.

가상화에 대해서 제대로 알아보기 전에 배경 지식을 알고 가보자.

가상화가 등장하기 전에는 하나의 컴퓨터에 하나의 OS 만 실행할 수 있는 구조였다.

· 운영체제(Operating System) : 시스템 하드웨어 자원과 소프트웨어 자원을 운영 관리하는 프로그램이다.

· 대표적으로 Windows, Linux, MacOS, Android 등등 이 있다.

· 특권 명령(Privileged Instruction) : 시스템 요소(메모리, 마더보드 등등의 컴퓨터의 하드웨어)들과 소통할 수 있는 명령이다.(.OS만 사용 가능)

· OS는 특권 명령 때문에 하나의 하드웨어 시스템 당 하나 밖에 돌아갈 수 없다.

· 하지만 일반 프로그램은 특권 명령이 필요 없기 때문에 많은 프로그램을 동시 에 수행할 수 있다. (ex. 워드를 사용하면서 유튜브로 노래를 듣기 처럼 일반 프 로그램은 동시에 사용 가능하다. 하지만, OS는 일반 프로그램이 아니기 때문에 동시에 여러 OS를 사용할 수 없다.)

· 가상화가 나타나기 전까지는 하나의 하드웨어 시스템은 하나의 OS만 실행이 가능했다. (하나의 하드웨어 == 하나의 OS)

· 일반적인 컴퓨터처럼 직접 OS가 하드웨어에 설치된 상태(Bare-Metal)로만 운영이 가능했다.

즉, 위 사진의 아래에 있는 그림과 같이 하나의 하드웨어 위에 하나의 OS가 올라가 있고, 그 OS 위에 여러 어플리케이션들이 올라와있는 구조였다.

1세대 가상화는 완전 가상화(Fully Emulated) 이다.

· 완전 가상화에서 모든 시스템 요소가 에뮬레이터 안에서 돌아간다.

에뮬레이터란, 다른 프로그램이나 장치를 모방하는 "컴퓨터 프로그램 또는 전자 기기의 능력"을 의미한다. 위 사진에서 왼쪽 아래에 있는 구조로 이루어져 있다.

안드로이드 스튜디오를 사용해 봤으면 이해가 쉬운데, 안드로이드 스튜디오에서는 내가 만든 어플이 잘 돌아가는지 확인하기 위해서 가상의 스마트폰을 만들고 그 스마트폰 내에서 어플을 실행해 볼 수 있다.

즉, windows OS로 동작하는 내 컴퓨터에서 안드로이드 스튜디오를 실행하고, 안드로이드 스튜디오에서 가상의 하드웨어(갤럭시 S23+)를 만들어서 또 다른 어플리케이션을 동작해 봄으로써 갤럭시 S23 +실제로 있는 것처럼 구현하는 것이다.

· CPU, 하드디스크, 마더보드 등 모든 요소를 에뮬레이터로 구현해서 OS와 연동 한다.

· 굉장히 느리다는 단점이 있다. 왜냐하면 원래 내 컴퓨터가 아닌 가상으로 만든 하드웨어 위에서 돌리기 때문에, 내 컴퓨터의 리소스를 사용할 수 없기 때문이다.

2세대 가상화는 반가상화(Paravirtualization)이다.

vmware나 virtualbox를 떠올리면 이해하기 쉽다.

· Guest OS 즉, 각 시스템에서 동작하는 OS는하이퍼바이저와 통신한다.

· 하이퍼바이저 : OS와 하드웨어 사이에 존재하는 일종의 가상화 매니저

· 에뮬레이터보다 속도가 향상되었다.

· 하지만 모든 것을 하이퍼바이저가 지원한 것은 아니였기 때문에, 몇몇 요소의 경우 여전히 에뮬레이터가 필요했다.

3세대 가상화는 하드웨어 가상 머신(Hardware Virtual Machine)이다.

· 하드웨어에서 직접 가상화를 지원하는 방식이다.

· 하이퍼바이저를 건너 뛰고 직접 게스트 OS가 하드웨어와 통신하기 때문에 속도가 빨라졌다. 이를 near bare-metal이라고 표현한다.

가상화가 클라우드에서 중요한 이유는 AWS 클라우드 환경에서 리소스를 작은 단위로 빠르게 구성할 수 있는 원동력이기 때문이다.

AWS에서 사용자마다 컴퓨터를 할당해 주는 것이 아닌 이미 구축된 가상화 가능한 서버의 한 부분을 할당해 주는 것이다. 즉 서버에서 리소스를 쪼개서 가상화된 서버를 만들고 그 가상화된 서버를 사용자에게 할당해주는 것이다.

728x90
반응형

'Study > AWS' 카테고리의 다른 글

8. EC2 (2) - EC2의 가격 모델  (0) 2023.06.15
7. EC2 (1)  (0) 2023.06.15
5. IAM 기초  (0) 2023.06.15
3. AWS의 구조-리전, 가용영역, 엣지로케이션 등  (0) 2023.06.15
2. 클라우드 컴퓨팅의 종류  (0) 2023.06.15