Amazon EC2(Elastic Compute)
1. 아마존 머신 이미지(Amazon Machine Image, AMI)
정의: 아마존 일래스틱 컴퓨트 클라우드(EC2) 안에 가상 머신을 생성하기 위해 사용되는 특수한 유형의 가상 어플라이언스이다. 주로 인스턴스를 Launch할때 필요한 정보를 제공한다.
어플라이언스(Appliance)?
요약: 각종 기업용 소프트웨어를 서버와 스토리지 하드웨어에 최적화된 통합 장비. OS, 관련 소프트웨어 설치 및 설정 등을 안해도 전원을 접속하면 바로 사용할 수 있는 정보기기를 의미한다.
기존(As-is): 과거에는 하드웨어, 운영체제, 소프트웨어를 각각 구매한 후 설정하여 사용하는 것이였다.
신규(To-be): 클라우드를 통해서 하드웨어 제약을 없애고, AMI를 통해서 특정 목적에 따라 최적의 성능을 낼 수 있도록 운영체제, 소프트웨어가 다 설치된 바로 사용가능한 기기 개념
2. EC2 인스턴스 스토어(Instance Store)
- 인스턴스의 로컬 저장소
- 임시 데이터 저장소
- (Default) 데이터 복제 미 지원
- Snapshot 미 지원
- SSD OR HDD
3. Amazon EBS 볼륨
- 블록 스토리지
- API를 이용하여 생성, 연결, 수정
- 워크로드에 따라 스토리지 및 컴퓨팅을 선택 할 수 있다.
- 하나의 EBS 볼륨은 하나의 인스턴스에만 연결
- Magnetic(st1, sc1) 및 SSD(gp2, io1) 기반 볼륨 유형을 선택할 수 있다.
- Snapshot 기능 지원을 통해서 특정 시점을 백업할 수 있다.
4. EC2 Instance Life Cycle
1) Running(실행중)
- 인스턴스 동작 중 상태를 의미하며 (과금 O)
2) Stopped(정지됨)
- 인스턴스 중지 상태. EBS볼륨을 루트로 사용하는 인스턴스만 가능하다. (과금 X, But, EBS 과금)
3) Hibernated(최대절전모드) 링크
(1) RAM에 쌓인 프로세스들을 EC2와 연결된 루트 EBS 볼륨에 암호화된 상태로 저장하여 재실행시 작업을 이어서 할 수 있다. (과금X, But, EBS과금, Elastic IP 주소 과금)
- 단, 사용된 AMI, 루트 EBS 볼륨은 암호화 체크 필요
- 인메모리 상태로 프로세스를 루트 EBS 볼륨에 저장.
- 인스턴스 종료
- 인스턴스 재 실행시 작업중이던 프로세스 이어서 작업
4) Terminated(종료됨)
- 인스턴스가 완전히 제거된 상태
- 시작이나 정지가 불가능
- 과금 안됨
5. EC2 인스턴스 타입 링크
1) 인스턴스 패밀리
M | 범용 | C | 컴퓨팅 | I | 고 I/O 스토리지 | P | 범용 GPU | F | 성능 가속 |
T | 버스팅용 | R | 메모리 | D | 고밀도 스토리지 | G | 그래픽 |
2) 인스턴스 세대
마치 i7-8세대, 9세대 이런것처럼 해당 인스턴스의 세대로 보면된다.
3) 추가 기능
g | AWS Gravition 프로세서 | d | 빠른, 로컬 NVMe 스토리지 | e | Enhanced performance |
a | AMD EPYC 프로세서 | n | 최대 100 Gbps 네트워크 대역폭 | s | Reduce Power Instance |
4) 인스턴스 사이즈
c4.8xlarge
≈ 2 xc4.4xlarge
≈ 4 xc4.2xlarge
≈ 8 xc4.xlarge
- 큰 인스턴스 1개(c4.8xlarge): $1,164.43
- 작은 인스턴스 8개(c4.xlarge): $1,186.16
* 온디멘드, EBS 30gb 적용시 한달 가격
6. Amazon EC2 인스턴스 선택 요령
1) 구성 아키텍쳐 파악
(1) 구성하고자 하는 아키텍쳐가 있는가?
ex) MSA(MicroService Architecture)
각 인스턴스가 모두 고성능일 필요가 없을것이다. 그럴 경우에는 여러개의 작은 범용 인스턴스로 구성하면서 일부 고성능을 요하는 작업에만 c (고 컴퓨팅) 혹은 R(고 메모리) 인스턴스를 배치하는것이 좋을것이다.
2) 가용 비용(Price) 파악
(1) Cost Explorer
- 예를 들어, On-premise에서 Migration을 진행한다고 했을때, 같은 스펙의 CPU Core, MEM을 넣으면 알아서 알려준다. 또한 지난 n년 동안 시스템 모니터링 데이터를 통해서 월별 얼마나 리소스를 사용하는지 또한 입력하면 얼마정도 나오는지도 알려준다.
(2) AWS Compute Optimizer
- 최적의 AWS 리소스를 권장하는 ML기반 서비스
- 최적 EC2 인스턴스 및 EC2 오토스케일링 그룹 구성
3) 워크로드 주기, 특성 파악
(1) 온디맨드(On-demand)
- 초단위로 쓴만큼 비용지불(장기 약정X). 갑작스럽거나 예측할 수 없는 워크로드에 용이
(2) 예약인스턴스(Reserved Instance)
- 1,3년 약정으로 대폭할인. 예측 가능한 안정적인 워크로드에 용이
(3) 세이빙플랜(Saving Plan)
- 예약 인스턴스와 같은 할인. +a 유연성
(4) 스팟인스턴스(Spot Instance)
- 여분의 EC2 용량으로 On-demand 가격에서 최대 90% 할인 제공.
- 내결함성, 유연성, 상태 비저장 워크로드