- EC2란?
- 가상화
- 클라우드
- 그래서 EC2는 무엇인가?
EC2란?
Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다.
AWS의 공식문서에서 EC2를 소개하는 글이에요. 컴퓨팅 용량capacity이라는 표현이 어색하지만 넘어갈게요. 느낌 아니까
EC2라는 이름에서 'Elastic'과 'Cloud'에 눈길이 갔어요. 이 두 단어를 풀어보기 전에 먼저 가상화에 대해 짚고 넘어가야 할 것 같아요.
가상화 - Virtualization
가상화란?
가상화는 하드웨어의 자원들(CPU, 메모리, 스토리지, 네트워크 등)을 사용해 가상의 시스템, vm을 만드는 기술이에요. 그리고 이 가상화 기술의 중심에는 Hypervisor라는 게 있어요. 하이퍼바이저는 하드웨어 자원을 리소스 풀의 형태로 만들어 가상 머신에 할당하고 가상 머신을 관리하고 리소스 스케쥴링도 해요. 하이퍼바이저에는 아래와 같이 두 종류가 있어요.
- Type1 Native / Bare Metal Hypervisor
서버에 직접 설치되는 하이퍼바이저로 Underlying OS가 필요 없어요 하이퍼바이저가 OS의 기능도 함께해요. Type1 Hypervisor에는
VMware ESXi, Microsoft Hyper-V, Citrix Xen, KVM 등이 있어요.
- Type2 / Hosted Hypervisor
Host OS 위에 설치되는 하이퍼바이저로 상용 Host OS 위에 설치되기 때문에 유연하고 쉽게 구현이 가능해요. Type2 Hypervisor에는
VMware workstation, Oracle VirtualBox 등이 있어요.
Type1 형식의 하이퍼바이저는 생소할 수 있지만 Type2 형식의 하이퍼바이저는 많이 써보셨을 거라고 생각해요. 그러면 VirtualBox나 VMware, parallels와 같은 가상화 프로그램은 언제 왜 썼었나요?
가상화의 장점
서버의 하드웨어 자원들을 가상화하면 관리자가 물리 리소스를 풀링 할 수 있어서 범용 서버의 진정한 범용화가 실현된다고 할 수 있어요. 특정 기업의 특정 설루션을 사용하기 위해서 제조사로부터 검증받은 하드웨어를 강요당한 경험이 있지 않나요? 수요 예측에 실패해서 너무 작은 혹은 너무 큰 서버를 구매한 적은요? 프로덕션 환경과 동일한 구성의 테스트 베드 구축을 위해서 무리하게 투자한 경험은요?
가상화를 통해서 많은 부분 위와 같은 문제점들을 해결할 수 있어요.
그렇다면 가상화와 클라우드의 차이는 무엇일까요?
클라우드
클라우드 컴퓨팅은 가상화 기술 위에 존재하지만 분명 다른 점이 있어요. 가상화는 하드웨어에서 기능을 분리하는 기술이에요. 그렇지만 VirtualBox나 VMware로 VM을 하나 생성했다고 해서 그것을 클라우드 컴퓨팅이라고 부르지는 않아요. Amazon EC2와 비교해서 크게 다르지도 않은데 말이에요.
미국 NIST(National Institute of Standards and Technology)는 네트워크, 풀링 된 리소스, 사용자 인터페이스, 프로비저닝 기능, 자동 리소스 제어/할당과 같은 클라우드 컴퓨팅의 5가지 기능을 설명하고 있어요. 가상화에서도 네트워크와 풀링 된 리소스가 생성되긴 하지만 사용자 인터페이스를 생성하고, VM을 프로비저닝 하고, 리소스를 제어/할당하려면 관리 및 운영 체제 소프트웨어가 더 필요할 거에요.
그래서 EC2는 무엇인가?
Amazon EC2를 사용하면 하드웨어에 선 투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다.
Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다.
Amazon EC2에서는 확장 또는 축소를 통해 요구 사항 변경 또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어듭니다.
그래서 Amazon EC2는 위에서 언급하는 모든 조건들에 부합하면서 그 이상의 잠재력capacity을 가진 AWS의 대표적인 서비스예요.
그럼 앞으로 Amazon EC2의 각 컴포넌트들을 알아보도록 할게요.