AWS EC2(Elastic Compute Cloud)

Mango
6 min readApr 30, 2023

--

AWS 에서 가장 대표적인 서비스이며 우리가 대표적으로 아는 가상 머신을 빌려주는 EC2 서비스 외에도 많은 부가적인 서비스들이 있습니다. 해당 포스팅에서 자세히 다루지는 않을 거지만 대략적으로 이러한 기능을 하는 부가적인 서비스들이 있다. 정도만 우선 알아두면 좋을 것 같습니다.

  • 가상 드라이브를 제공하는 EBS(Elastic Block Storage)
  • 클라이언트의 요청을 분산 처리 해주는 ELB(Elastic Load Balancer)
  • 상황에 맞게 수평 확장을 해주는 ASG(Auto Scaling Groups)
  • 인스턴스 단위로 네트워크 접근제어를 해주는 SG(Security Groups)

EC2

가장 유명한 서비스인 EC2는 사용자가 설정한 스펙의 가상머신을 대여 해주는 서비스 입니다.

인스턴스

인스턴스 생성 단계 에서는 애플리케이션을 서비스 하기 위한 환경을 설정 합니다. 하나의 컴퓨터 / 노트북을 사는것과 같이 어떤 OS, CPU, Memory, Storage를 사용할지 등의 컴퓨터 스펙을 설정을 합니다. 부르는 명칭이나 묶여있는 단위가 조금 다를 뿐 크게 아래와 같이 나뉘어져 있습니다.

  • AMI(Amazon Machine Image) — OS, 의존성 라이브러리 등이 설치 되어있는 AWS 이미지
  • 인스턴스 유형(Instance Type) — 타입별로 묶여있는 CPU / Memory 설정이며 시간당 요금이 책정
  • Storage — 파일 저장에 사용되는 스토리지, 주로 네트워크 통신이 필요한 EBS 서비스(gp2, gp3 / io1, io2) 를 사용
  • Key Pair — OS 접근 시 사용되는 암호키(pem / ppk)
  • Network — 네트워크 통신에 대한 보안그룹(Security Group) 설정

보안그룹에 대해 모를 경우 해당 아티클을 보는것을 권장 드립니다.

인스턴스 유형

인스턴스 생성 섹션에서 보았던 인스턴스를 구성하는 스펙 중 성능에 가장 중요한 부분을 차지하는 인스턴스 유형에 대해 조금 더 자세히 알아보도록 하겠습니다.

타입 이름은 하나하나 인스턴스 유형의 특성을 담고 있으며 위 c5.large 이름을 해부해보면 아래와 같습니다. 참고

c5.large

c — 인스턴스 패밀리(Instance Family)
5 — 세대(Generation)
large — 사이즈(CPU, Memory)

각 인스턴스 유형들은 크게 아래와 같은 목적별로 나뉩니다.

범용(General Purpose Instances)

  • 범용적인 개발에 적합 합니다
  • Memory, CPU, Network 스펙이 균형있게 제공 됩니다

컴퓨팅 최적화 (Compute Optimized)

  • 컴퓨팅 성능에 최적화 되어 있는 인스턴스 유형이며 CPU 집약적인 고성능 처리가 필요한 작업에 적합 합니다
  • Use Cases
    - 게임서버, 고성능 서버 개발
    - 고성능 컴퓨팅 작업
    - 배치 프로세스 워크로드
    - 미디어 트랜스코딩

메모리 최적화 (Memory Optimized)

  • 큰 메모리 작업에 적합 합니다
  • Use Cases
    - 고성능 Relational / NoSQL DB
    - 분산된 캐시 데이터 저장(ex. Elasticache)
    - BI에 최적화된 인메모리 DB
    - 대규모 비정형 데이터 실시간 처리

스토리지 최적화 (Storage Optimized)

  • 로컬에서 대규모 데이터셋 저장이 있는 작업에 적합 합니다
  • 저장속도가 중요하기 때문에 EBS를 사용하지 않고 직접 로컬 SSD에 저장 합니다
  • Use Cases
    - 온라인 고주파 프로세싱 시스템 (OLTP)
    - Relational / No SQL DB
    - Redis와 같은 캐시 데이터 관리 작업
    - 데이터 웨어하우싱 애플리케이션
    - 분산 파일 시스템

Accelerated Computing

Accelerated Computing은 해당 아티클에서는 자세히 다루지 않습니다

인스턴스 구매 옵션

EC2 인스턴스는 고객의 목적에 맞게 비용 효율적으로 인스턴스를 구매 할 수 있도록 여러 옵션을 제공 합니다. 이에따라 필요한 작업의 워크로드 기간에 맞게 알맞은 구매 옵션을 선택 하는것이 중요합니다.

온디맨드 (On-Demand Instances)

  • 예약, 절약 인스턴스형에 비해 단기적인 워크로드에 적합

예약 인스턴스(Reserved Instances)

  • 최대 72% 할인
  • 장기 워크로드에 적합
  • 1 or 3년 약정
  • 계약은 인스턴스 유형, OS, 테넌시, 리전, 가용 영역(Optional)을 선택하여 적용 합니다
  • 컨버터블(Convertible) 유형을 선택 할 경우 중간에 타입을 변경 할 수 있지만 기본 예약 인스턴스보다 할인률이 낮습니다
  • 결제 옵션(선납에 가까울수록 할인률 up)
    - 선납
    - 부분 선납
    - 선납 없음

절약 인스턴스(Savings Plans)

  • 최대 72% 할인
  • 장기 워크로드에 적합
  • 1 or 3년 약정
  • 계약은 시간당 요금제로 약정 하며 초과 금액은 온디맨드 요금으로 결제 됩니다
  • 결제 옵션(선납에 가까울수록 할인률 up)
    - 선납
    - 부분 선납
    - 선납 없음
  • 타입
    - EC2 Instance Saving Plans (최대 72% 할인)
    ┗ EC2 인스턴스만 적용 가능
    - Compute Savings Plans (최대 66% 할인)
    ┗ 중간에 인스턴스 종류(EC2, Fargate, Lambda)를 변경 가능
    ┗ EC2 인스턴스, Fargate, Lambda 에 적용 가능
    해당 링크에서 예상 절약금액 확인 가능

스팟 인스턴스(Spot Instances)

  • 최대 90% 할인
  • 단기 워크로드에 적합
  • 특정 인스턴스를 설정한 가격 이하로 이용하는 인스턴스 유형
  • 인스턴스의 가격이 계속 변하기 때문에 설정한 가격 이상으로 올라갔을 경우엔 실행중인 인스턴스가 강제 종료된다
  • 시작 / 종료 시간이 상관 없는 작업들에 적합
  • Use Cases
    - 배치 작업
    - 데이터 분석
    - 이미지 프로세싱
    - 분산된 워크로드

기본 온디맨드 이외에 다른 구매옵션을 처음 보시는 분들은 특히 예약 인스턴스와 절약 인스턴스를 혼동 하실수도 있습니다. 둘 다 약정 기간, 결제 옵션이 동일하며 크게 다른점은 절약 인스턴스는 시간당 요금제, 예약 인스턴스는 인스턴스 유형, 리전, OS를 지정하여 적용 한다는게 큰 차이점이며 예약 인스턴스는 곧 없어질 수도 있기 때문에 AWS SAA를 준비하고 계신 분들이라면 예약 인스턴스는 신경쓰지 않아도 될 것 같고 또 지금 이 글을 보고 계시는 시점에는 예약 인스턴스가 이미 없을수도 있을 것 같습니다.

Conclusions

이번 아티클 에서는 EC2 인스턴스의 기본 구성과 목적에 맞게 비용 효율적으로 사용하기 위한 개념들을 알아 보았습니다. 하지만 현대 애플리케이션 개발 에서는 다양한 상황이나 보안을 강화하기 위한 부가적인 설정 or 연동이 필요 합니다. 다음 아티클에서는 해당 아티클 상단에서 소개 했던 부가적인 서비스들(EC2를 좀 더 안정적이고 유연하게 사용 할 수 있도록 도와주는) 에 대해 알아 보도록 하겠습니다.

--

--