AWS EC2 알아보기

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

 

 

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 등 인스턴스의 크기)