본문 바로가기

AWS Intro/AWS EC2 Intro

AWS EC2 Intro - EC2 Host Virtualization, Nitro, Bare Metal

EC2는 해당 물리 장비가 있는 Region의 서버,

그 서버 위에 올라가는 Hypervisor에서 실행되는 Guest OS 중 하나입니다.

Region등 AWS의 네트워크 개념은 Network Intro를 통해 보시면 아실 수 있습니다.

 

Hypervisor가 무엇인지 간단하게 말씀드리면,

하나의 컴퓨터에서 여러 OS를 동시에 사용할 수 있게 해주는 솔루션을 말합니다.

이런 Hypervisor의 예로 젠(Xen), VM웨어(VMware)의 ESX/ESXi, VM웨어 워크스테이션(Workstation), VM웨어 플레이어(Player), 버추얼박스(VirtualBox), 맥용 패럴랠스 데스크톱(Parallels Desktop for Mac)등이 있습니다.

 

그래서 아래와 같은 그림으로 표현할 수 있습니다.

출처 AWS

 

하지만 가상화는 시스템 자원을 많이 잡아먹습니다.

각 VM은 운영 체제의 전체 복제본 뿐만 아니라,

운영 체제가 실행해야 하는 모든 하드웨어의 가상 복제본을 구동하기 때문입니다.

이로 인해 소모되는 RAM과 CPU가 빠른 속도로 늘어나기 때문에 최적화 작업이 쉽지 않습니다.

(Docker Container 기술이 대중화 된 이유이기도 합니다.)

 

출처 AWS

 

또한 위의 그림을 보면 보통 가상화의 경우 Guest OSApplication

내부 Front Driver를 호출 -> Driver OS에 있는 Back -> Device Driver -> Network Driver를 호출 하게 됩니다.

보시다시피, Driver OS를 거쳐 호출하기 때문에 Latency가 증가할 수 밖에 없는데,

이를 해결하기 위해 AWS는 향상된 네트워크 디바이스를 제공합니다.

 

출처 AWS

Driver OS에서 Network Device를 호출하는 것이 아닌

Guest OS에서 직접 Network Device를 호출 할 수 있는 구성을 제공합니다.

 

 


 

출처 AWS

AWS 기존의 EC2는 Xen 기반의 하이퍼바이저는 기본호스트에서 리소스를 소비하기 때문에 최적화 된 리소스를 제공할 수 없었습니다.

그래서 KVM 기반 Hypervisor 커스터마이징 하여 AWS만의 Nitro System을 구축하였습니다.

 

기존의 시스템보다 EBS 최대 1.8배의 Bandwidth 성능이 늘어났으며, IOPS은 최대 1.3배가 늘어났습니다.

Nitro SystemBare Metal 형식을 지원할 수 도 있고, Bare Metal 급의 경량 HyperVisor로도 제공됩니다.

 

Bare Metal 방식을 지원하며, 원하는 Hypervisor 제품을 직접 설치하여 사용할 수 있습니다.

Bare Metal 제품으로는 Nitro SystemVMWare On AWS 통해 제공합니다.

 

여기서 잠시, Bare Metal이 무엇일까요?

 

 

하드웨어 위에 하이퍼바이저 OS 설치 없이 고객이 설치하고 싶은 OS를 직접 하드웨어 위에 설치하는 방식입니다.

즉, 하드웨어의 리소스를 공유하는 가상화 방식과는 다르게

하드웨어의 모든 성능을 사용할 수 있는 방식이 베어 메탈 방식이라고 할 수 있습니다.

 


 

이렇게 가상화라는 것이 하나의 서버에서 리소스를 공유하는 형태이다 보니, 다른 EC2에 영향을 받지 않을까? 라고 생각할 수 있습니다.

T type 서버를 제외하고는, vCPU, Memory, Network 모두 지정된 인스턴스에만 할당되어 다른 인스턴스에 대해서 영향을 받지 않습니다.

 

여기서 vCPUVirtual CPU 말하며 일반적인 하이퍼 스레드 코어입니다.

실제 코어수는 vCPU / 2를 하여 구할 수 있습니다.

 

Hyper Thread란 물리적인 CPU에 다수의 논리적인 CPU 사용하여 성능을 높여 사용하는 것을 말합니다.

Hyper 쓰레드 방식을 지원하기 때문에 최적화 된 커스텀 구성이 가능합니다.

워크로드에 따라서는 하이퍼 스레딩이 성능을 낮추는 경우도 있는데, 이러 할때는 하이퍼스레딩을

EC2서버 안에서 CLI 명령어를 통해 해당 기능을 끌 수 있습니다.

 

GiB는 그럼 정확히 어떠한 수치를 의미할까요?

  • Memory is presented as GibiBytes (GiB) and not Gigabytes (GB)
  • 256 GiB = 275 GB

제조사가 사용하는 단위는 10n승으로 제공하지만,

이를 실제로 컴퓨터가 받아들이는 단위는 2n승이기 때문에 완벽하게 인식 할 수 없습니다.

하지만 AWS는 이렇게 낭비될 수 있는 리소스들에 대해서도 GiB단위를 사용하여 제공합니다.

스토리지 역시도 독립적으로 제공되며, EBS볼륨이라는 이름으로 할당되기 때문에 콘솔에서 확인이 가능합니다.

볼륨은 최대 16TiB까지 제공됩니다.

 

이렇게 EC2 가상화의 요소들에 대해서 간단하게 알아봤습니다.

다음 포스트에서는 EC2 Type에 대하여 알아보도록 하겠습니다.