EC2 개념
AWS EC2는 'Elastic Compute Cloud'의 약자로, 독립된 가상의 컴퓨터를 임대해 주는 웹 서비스이다.물리적인 컴퓨터가 아닌, 리눅스, 윈도우와 같은 OS가 설치된 가상 머신을 빌려주는 것이기 때문에, 사용자는 원격으로 해당 컴퓨터를 제어하여 사용할 수 있게 된다. 이러한 가상 머신을 인스턴스(Instance)라고 부른다.
'독립된 컴퓨터를 임대해주는 서비스'로, AWS의 대표적인 서비스이자 상품이다.
쉽게 PC방에 가서 요금을 내고 컴퓨터를 이용하는 것처럼, AWS에서 컴퓨터를 대여해주는 서비스라고 생각하면 쉽다.
EC2는 컴퓨터를 주문하면 바로 1분 안에 생성되고, 삭제 역시 즉시 된다.
그냥 사용한 만큼 비용을 지불하면 된다.
또한, EC2는 복잡한 공유기 세팅없이 인터넷을 통해 자유롭게 접속할 수 있고, 이미지(AMI) 기능도 사용할 수 있다.
컴퓨터를 사용하면 프로그램도 설치하고, 파일도 저장하고, 설정도 변경하게 되는데, 이 OS상태 그대로 저장하는 기능을 이미지(AMI)라고 한다. 윈도우 백업 설정이라고 생각하면 쉽게 이해가 될 것이다.
즉, 컴퓨터를 설치할 때 반복되는 설치 작업을 하지 않고 이미지를 이용해서 새로운 컴퓨터를 만들면 이미지에 저장된 상태와 똑같은 컴퓨터를 빠르게 생성할 수 있게 된다.
이를 통해 하드웨어 구매없이 빠르게 애플리케이션을 개발하고 배포할 수 있다.
EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능하며, 요구 사항이나 갑작스러운 트래픽 증가 등 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어, 서버 트래픽 예측 필요성이 줄어든다는 장점도 있다.
EC2의 특징
컴퓨팅 요구사항의 변화에 따라 컴퓨팅 파워를 조정할 수 있다.
실제로 사용한 용량 만큼만 지불한다.
Linux/Windeows 중 OS 선택이 쉽게 가능하다.
몇 분이면 전세계에 컴퓨터 수백여대를 생성할 수 있다.
머신러닝, 웹서버, 게임서버, 이미지 처리 등 다양한 용도에 최적화된 서버를 쉽게 구성 가능
여러 다른 AWS 서비스와의 유기적인 연동 가능
EC2의 구성
일반적인 서버는 보통 컴퓨팅(CPU/RAM), 하드디스크, 랜카드로 나눠진다.
이를 EC2에 적용해보면 아래와 같다.
EC2 인스턴스?
인스턴스란, 단순하게 AWS 클라우드에서 사용하는 '가상 컴퓨터'라고 이해하면 쉽다. 가상의 컴퓨터의 CPU, 메모리, 그래픽 카드 등 연산을 위한 하드웨어 부분을 담당한다.
또한, Amazon EC2는 '사용 사례에 맞게 최적화된 다양한 인스턴스 유형'을 제공한다.
컴퓨터마다 쓰임새가 다양할 것이다. 이런걸 '인스턴스 유형'이라 한다.
즉, 애플리케이션 종류와 목적에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공하는 서비스인 것이다.
EC2 인스턴스란, '한정된 요금'으로 EC2 인스턴스의 '유형'을 고르고 '사이즈'를 골라 인스턴스별로 '사용 목적'에 따라 최적화를 시키는 것이다.
게임에서 캐릭터 직업이 있듯, 인스턴스 유형에도 '타입'이 있다.
AWS는 각 인스턴스의 사용 목적(서버용, 머신러닝용, 게임용)에 따라 타입별로 인스턴스에 이름을 부여해 구분한다. (ex) t타입, m타입, inf타입 등
인스턴스의 크기란, 인스턴스 CPU 갯수, 메모리 크기, 성능 등으로 사이즈가 결정된다.
즉, 인스턴스 사이즈가 클수록 더 많은 메모리, 더 많은 CPU, 더 많은 네트워크 대역폭을 가질 수 있는 것이다. 사이즈가 클수록 성능도 빨라진다.
EBS(Elastic Block Storage)?
인스턴스가 연산에 관한(CPU, 메모리 등) 처리를 한다면, '데이터를 저장'하는 역할은 EBS가 한다고 보면 된다.
즉, 클라우드에서 사용하는 '가상 하드디스크(HDD)'인 것이다.
EBS는 AWS 클라우드의 Amazone EC2 인스턴스에 사용할 '영구 블록 스토리지' 볼륨을 제공한다.
그리고 단 몇 분 내에 사용량을 많게 또는 적게 확장할 수 있고, 프로비저닝(빌리는 행위)한 부분에 대해서만 비용을 지불할 수 있게 한다.
EBS 볼륨 유형 타입
EBS는 아래와 같이 총 5가지 타입을 제공한다.
범용(General Purpose of GP3) : SSD
프로비저닝 된 IOPS(Provisioned IOPS or io2) :SSD
쓰루풋 최적화(Throughput Optimized HDD or st1)
콜드 HDD(SC1)
마그네틱(Standard)
※ 일반적으로 범용타입인 GP3를 선택하지만, 자신은 요금을 극도로 아끼겠다라고 하면 마그네틱을 사용할 수 있다.
AMI(Amazon Machine Image)?
AMI는 'EC2 인스턴스를 실행하기 위한 정보를 모은 단위' 이다.
'세팅정보(템플릿)를 저장한 단위'라고 생각하면 쉽다.
쉬운 이해를 위해 예를 들자면, 리눅스가 깔린 EC2가를 사용하고 싶다면,
인스턴스를 생성하고 OS를 설치해서 구성해야 하는게 아니라, '리눅스 환경 세팅이 된 리눅스 템플릿 AMI'를 EC2에 적용시켜 아주 편하게 리눅스 컴퓨터를 장만하는 원리이다.
AMI를 사용해 '현재 상태의 EC2 세팅(템플릿)을 복제해서 다른 계정이나 다른 리전에게 전달'도 가능하다.