포스팅 목차
Amazon EC2
- Amazon에서 가장 인기 있는 서비스 중 하나
- EC2 (Elastic Compute Cloud)는 AWS에서 제공하는 IaaS (Infrastructure as a Service)
- EC2는 하나의 서비스가 아니라 많은 것을 포함하고 있다
- 가상머신 임대 (EC2) → EC2 인스턴스
- 가상 드라이브에 데이터 저장 (EBS)
- 로드 분산 (ELB)
- 오토 스케일링 그룹(ASG)을 통한 서비스 확장
- 클라우드 작동 방식을 이해하기 위해서는 필수적으로 EC2를 익히는 것이 필요함
EC2 Options (sizing, configuration...)
- OS : 리눅스가 가장 인기 많고 윈도우와 맥 OS 도 있음
- CPU : 컴퓨팅 성능과 코어 수 (CPU 갯수)
- RAM : 램 용량
- 저장 공간
- Network-attached : EBS, EFS
- hardware : EC2 Instance Store
- Netword Card : 네트워크 카드 속도, 공용 IP 등..
- Firewall rules : Security Group(보안 그룹) 선택
- EC2 User Data (Bootstrap script) : 부팅시 인스턴스 구성을 위한 스크립트
- 부트스트래핑 : 머신이 작동할때 실행하는 명령
- 처음 시작할때 한번만 실행되며 다시 실행되지 않음
- EC2 User Data 에 자동화 할 수 있는 작업들
- 업데이트, 소프트웨어 설치
- 인터넷을 통해 일반적인 파일 다운로드
- 기타 구성에 필요한 작업
- EC2 User Data의 명령은 root 계정으로 실행되어야 하므로 sudo 로 처리
EC2 Instance Types
- https://aws.amazon.com/ko/ec2/instance-types/
- 전체 EC2 인스턴스 비교한 사이트 (매우 유용)
- https://instances.vantage.sh
사용자의 목적에 맞게 최적화된 EC2 인스턴스 타입을 선택
- https://instances.vantage.sh
1. General Purpose (범용)
- 범용 인스턴스는 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용할 수 있습니다.
- 웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합합니다.
2. Compute Optimized (컴퓨팅 최적화)
- 컴퓨팅 최적화 인스턴스는 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합합니다.
- 배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, HPC(고성능 컴퓨팅), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션에 매우 적합합니다.
- 주로 C 로 시작
3. Memory Optimized (메모리 최적화)
- 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계되었습니다.
- 고성능, 관련/비관련 데이터베이스
- 분산 웹 스케일 캐시 저장소
- BI에 최적화된 인메모리 데이터베이스
- 빅 비정형 데이터의 실시간 처리를 수행하는 애플리케이션
- 주로 R (RAM) 로 시작, X1이나 Z1(대용량 메모리) 도 있음
4. Accelerated Computing (가속화된 컴퓨팅)
- 하드웨어 액셀러레이터 또는 코프로세서를 사용하여 부동 소수점 수 계산이나 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU에서 실행되는 소프트웨어보다 훨씬 효율적으로 수행합니다.
5. Storage Optimized (스토리지 최적화)
- 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계되었습니다. 이러한 인스턴스는 애플리케이션에 대해 지연 시간이 짧은, 수만 단위의 무작위 IOPS(초당 I/O 작업 수)를 지원하도록 최적화되었습니다.
- 매우 빈번한 온라인 트랜잭션 프로세싱(OLTP) 시스템
- Relational & NoSQL 데이터베이스
- 레디스와 같은 인메모리 데이터베이스의 캐시
- 데이터 웨어하우징 애플리케이션
- 분산된 파일 시스템
- I, G 또는 H1으로 시작
Instance Features
- Amazon EC2 인스턴스는 애플리케이션을 배포, 관리 및 확장하는 데 도움이 되는 수많은 추가 기능을 제공
- 버스트 가능한 성능 인스턴스 :고정 성능 인스턴스(예: M5, C5, R5)와 버스트 가능한 성능 인스턴스(예: T3) 중 선택할 수 있음.
- 다양한 스토리지 옵션 : 요구 사항에 따라 여러 스토리지 옵션 중 선택
- EBS 최적화 인스턴스 :
- EC2 인스턴스에서 EBS 볼륨에 프로비저닝된 IOPS를 충분히 활용
- M6g, M5, M4, C6g, C5, C4, R6g, P3, P2, G3 및 D2 인스턴스에서는 이 기능이 추가 비용 없이 기본적으로 활성화
- 클러스터 네트워킹 : 클러스터 배치 그룹은 클러스터 내 모든 인스턴스 간 지연 시간이 짧은 네트워킹을 제공
- 인텔 프로세서 기능
Measuring Instance Performance
- 인스턴스 성능 측정 이유 Amazon EC2를 사용하면 다양한 인스턴스 유형을 프로비저닝하여 CPU, 메모리, 디스크 및 네트워킹의 다양한 조합을 제공할 수 있습니다. 새 인스턴스를 실행하고 테스트를 병렬로 실행하는 것은 간단하며 적합한 인스턴스 유형을 확인하고 애플리케이션 아키텍처를 검증하기 위해 애플리케이션의 성능을 측정하는 것이 좋습니다. 또한 애플리케이션이 원하는 대로 확장할 수 있도록 엄격한 로드/확장 테스트를 하는 것이 좋습니다.
AWS Instance Naming convention (예시)
- m5.2xlarge
- m : instance class (m은 범용인스턴스라는 의미)
- 5 : generation (AWS 에서 하드웨어를 개선하여 새로운 세대의 하드웨어 출시)
- 2xlarge : size within the instance class (large, 2xlarge, 4xlarge 등 인스턴스의 크기)