우리는 autoscaling
을 공부하면서 Scale Out
의 장점을 많이 들었다. 필요에 따라 인스턴스를 수평적으로 확장하면 아무리 대규모 트래픽이 들어온다고 하더라도 프로비저닝
만 잘 되어있다면 대응 가능하다. 하지만 AWS는 매번 새로운 인스턴스 타입을 내놓고 있다. 왜그런 것일까?
결론 부터 말하자면 더욱 효율적인 즉 가격 대비 성능이 좋은 인스턴스를 계속해서 개발하고 있는 것이다.
그럼에도 불구하고 레거시 인스턴스들이 아직 존재하는 것은 인스턴스를 굳이 중지 시켜가면서 까지 변화를 추구하지 않는 사용자들이 꽤 있기 때문이라고 한다.
아래 표는 거의 같은 조건의 인스턴스들을 가격별로 오름차순 정리하였다. (북미 기준 2022.11.16 작성)
cpu 8 메모리 32인 조건 | 특이사항 | 네트워크 성능 | EBS 대역폭 | 가격 (USD) |
---|---|---|---|---|
t4g.2xlarge | arm64사용, 기준성능/vCPU 40%, 획득한 CPU 크레딧/시간 192 | Up to 5 Gigabit | 최대 2780 | 0.2688 |
t3a.2xlarge | 시간당 CPU 크레딧 192, 스토리지 EBS 전용 | Up to 5 Gigabit | 0.3008 | |
m6g.2xlarge | arm64, 스토리지 EBS 전용 | Up to 10 Gigabit | 최대 4750 | 0.308 |
t3.2xlarge | 시간당 CPU 크레딧 192, 스토리지 EBS 전용 | Up to 5 Gigabit | 0.3328 | |
m5a.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 10 Gigabit | 최대 2880 | 0.344 |
m6a.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 12.5 Gigabit | 최대 6600 | 0.3456 |
m6gd.2xlarge | arm64, 인스턴스 스토리지 1 x 474 NVMe SSD | Up to 10 Gigabit | 최대 4750 | 0.3616 |
t2.2xlarge | 시간당 CPU 크레딧 81, 인스턴스 스토리지 EBS 전용 | Moderate | 0.3712 | |
m6g.2xlarge | arm64, 인스턴스 스토리지 EBS 전용 | Up to 10 Gigabit | 최대 4750 | 0.376 |
m5.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 10 Gigabit | 최대 4750 | 0.384 |
m6i.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 12.5 Gigabit | 최대 10000 | 0.384 |
m4.2xlarge | 인스턴스 스토리지 EBS 전용 | High | 1000 | 0.4 |
m5ad.2xlarge | 인스턴스 스토리지 1 x 300 NVMe SSD | Up to 10 Gigabit | 최대 2880 | 0.412 |
m5d.2xlarge | 인스턴스 스토리지 1 x 300 NVMe SSD | Up to 10 Gigabit | 최대 4750 | 0.452 |
h1.2xlarge | 인스턴스 스토리지 1x 2,000 HDD, 최대 처리량(MB/s, 128KiB I/O) 218.75, 최대 IOPS(16KiB I/O), 12000 | Up to 10 Gigabit | 최대 1750 | 0.468 |
m6id.2xlarge | 인스턴스 스토리지 1x474 NVMe SSD | Up to 12.5 Gigabit | 최대 10000 | 0.4746 |
m5n.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 25 Gigabit | 최대 4750 | 0.476 |
g4ad.2xlarge | 인스턴스 스토리지 1 x 300 NVMe SSD , GPU 1개, GPU 메모리 8GiB | Up to 10 Gigabit | 최대 3000 | 0.54117 |
m5dn.2xlarge | 인스턴스 스토리지 1 x 300 NVMe SSD | Up to 25 Gigabit | 최대 4750 | 0.544 |
m5zn.2xlarge | 인스턴스 스토리지 EBS 전용 | Up to 25 Gigabit | 3170 | 0.6607 |
im4gn.2xlarge | arm64, 인스턴스 스토리지 1 x 3,750 AWS Nitro SSD | Up to 25 Gigabit | 최대 9500 | 0.72758 |
g4dn.2xlarge | 인스턴스 스토리지 1 x 225 NVMe SSD, GPU 1개, GPU 메모리 16GiB | Up to 25 Gigabit | 최대 3500 | 0.752 |
d3en.2xlarge | 인스턴스 스토리지 4 x 14 HDD, 디스크 처리량 집계(MiB/초) 1000 | Up to 25 Gigabit | 1700 | 1.051 |
g5.2xlarge | 인스턴스 스토리지 1 x 450 NVMe SSD, GPU 1개, GPU 메모리 24GiB | Up to 10 Gigabit | 최대 3500 | 1.212 |
trn1.2xlarge | 인스턴스 스토리지 1 x 500 NVMe SSD, Trainium 액셀러레이터 1, 액셀러레이터 메모리(GB) 32 | Up to 12.5 Gigabit | 최대 20000 | 1.34375 |
인스턴스 사양 종류
- CPU
- 메모리
- 스토리지
- 네트워크 대역폭
- EBS 대역폭
- arm64인지 x86_64인지
- 디스크 처리량
- GPU
- GPU메모리
- Trainium 액셀러레이터
- 액셀러레이터 메모리
관전포인트
스토리지
존재여부, 스토리지가 존재하면 가격이 비싸진다.네트워크
성능, 네트워크 성능이 높을 수록 가격이 비싸진다.arm64
, x86_64를 지원하지 않지만 가격이 싸다. arm64는 아마존에서 자체cpu를 개발했고 최적화했기 때문에 저전력이다. 때문에 저렴하다. 하지만 x86환경에서 구성한 어플리케이션이 있다면 마이그레이션 작업이 필요하다. 설계단계부터 사용한다면 괜찮다. 또한 AWS에 종속되는 단점이 있고 아직 개발단계이기 때문에 인스턴스 선택의 폭이 좁은편이다.- 숫자옆에
a
가 들어있으면EBS 대역폭
이 조금 낮고 가격이 싸다 (최대 10% 절약형)GPU
가 들어가면 비싸다Trainium 액셀러레이터
가 들어가면 비싸다- EBS 대역폭은 최대 몇몇 보다 고정 대역폭이 비싸다
m6i
vsm5
가격이 같은데 네트워크 대역폭이나 EBS 대역폭이m6i
가 더 높다. 왜?
세대가 높아질 수록 가격 대비 성능이 좋아진다는 것을 가장 적나라하게 보여주는 예시이다.이러한 신규 인스턴스에서 최적의 네트워킹 성능을 구현하려면 Elastic Network Adapter(ENA) 드라이버 업데이트가 필요하다고 한다.
스토리지 성능을 결정하는 요소
https://performance.tistory.com/29https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-optimized.html
metal 시리즈는 베어메탈 시리즈로 OS를 원하지않고 직접적으로 하드웨어를 컨트롤하고 싶어하는 사용자에게 적합합니다. 가격의 차이는 없습니다.
중첩 가상화로 인한 성능 저하를 원치 않는 고객이 본인들의 가상화 시스템을 이용하고 싶을 경우 또는 가상환경 없이 하드웨어를 사용하고 싶은 경우 사용합니다.
범용 인스턴스는 말그대로 균형있게 구성한 인스턴스입니다. 이 인스턴스는 웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합합니다.
컴퓨팅 최적화 인스턴스는 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합합니다. 이 제품군에 속하는 인스턴스는 배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, HPC(고성능 컴퓨팅), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션에 매우 적합합니다.
메모리 최적화 인스턴스는 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계되었습니다.
가속화된 컴퓨팅 인스턴스는 하드웨어 액셀러레이터 또는 코프로세서를 사용하여 부동 소수점 수 계산이나 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU에서 실행되는 소프트웨어보다 훨씬 효율적으로 수행합니다.
스토리지 최적화 인스턴스는 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계되었습니다. 이러한 인스턴스는 애플리케이션에 대해 대기 시간이 짧은, 수만 단위의 무작위 IOPS(초당 I/O 작업 수)를 지원하도록 최적화되었습니다.
Amazon EC2
를 사용할 때는 고정 성능 인스턴스 패밀리
(예: M6, C6 및 R6)와 버스트 가능 성능 인스턴스 패밀리
(예: T3) 중에서 선택할 수 있습니다. 버스트 가능 성능 인스턴스는 기본 수준의 CPU 성능과 더불어 기본 수준 이상으로 버스트할 수 있는 기능
을 제공합니다.
T 무제한 인스턴스
는 워크로드가 필요로 하는 한
높은 CPU 성능을 유지
할 수 있습니다. 대부분의 범용 워크로드에서 T 무제한 인스턴스
는 추가 비용 없이
충분한 성능
을 제공합니다. 시간당 T 인스턴스 요금
은 24시간 동안 T 인스턴스의 평균 CPU 사용률이 기본 수준 또는 그 미만일 때 중간의 모든 사용량 스파이크
를 자동으로 보장
합니다. 인스턴스 실행에 장기간 높은 CPU 사용률
이 필요
한 경우, vCPU-시간당 5센트
의 추가 고정 요금으로 인스턴스를 실행할 수 있습니다.
T 인스턴스의 기본 성능
과 순간 성능
기능은 CPU 크레딧에 의해 좌우됩니다. 각 T 인스턴스는 인스턴스 크기를 기반으로 정해진 비율에 따라 지속적으로 CPU 크레딧
을 받습니다. T 인스턴스는 유휴 상태
일 때 CPU 크레딧을 누적
했다가 활성 상태일 때 사용
합니다. CPU 크레딧
은 1분
동안 CPU 코어의 전체 성능
을 제공합니다.
예를 들어 t2.small 인스턴스
는 시간당 CPU 크레딧 12개
라는 비율에 따라 지속적으로 크레딧을 받습니다. 이 기능은 CPU 코어의 20%
에 상응하는 기본 성능을 제공합니다(20% x 60분 = 12분). 인스턴스에 제공되는 크레딧을 이 인스턴스에서 사용하지 않는 경우
, 최대 288 CPU 크레딧
까지 CPU 크레딧 잔액에 저장됩니다. t2.small 인스턴스
에서 코어의 20%를 초과
하여 성능을 버스트
해야 하는 경우 CPU 크레딧 잔액에서 크레딧을 가져와서 순간적인 급증을 원활하게 처리합니다.
T2 무제한 기능
이 활성화된 경우 t2.small 인스턴스
는 CPU 크레딧 잔액이 0
으로 떨어지더라도 기본 성능을 초과하여 버스트
할 수 있습니다. 평균 CPU 사용률이 기존 성능 또는 그 미만인 대부분의 범용 워크로드의 경우 t2.small
의 기본 시간당 요금
으로 모든 CPU 버스트를 해결할 수 있습니다. CPU 크레딧 잔액이 0
으로 떨어진 후에 인스턴스가 24시간 기간을 넘어
평균 25%(기준의 5% 이상)의 CPU 사용률
로 실행되는 경우, 추가로 6센트
(5센트/vCPU-시간 x 1vCPU x 5% x 24시간)가 부과됩니다.
웹 서버, 개발자 환경, 소규모 데이터베이스 같은 다양한 애플리케이션에서는 높은 수준의 CPU
가 일관적으로
필요하지는 않지만 필요할 경우 매우 빠른 CPU 성능을 전체적으로 활용하면 큰 장점을 얻을 수 있습니다. T 인스턴스는 특별히 이러한 사용 사례를 위해 설계되었습니다. 동영상 인코딩, 대용량 웹 사이트
또는 HPC 애플리케이션
과 같이 높은 CPU 성능
이 일관적으로
필요한 애플리케이션의 경우 고정 성능 인스턴스
를 사용하는 것이 좋습니다. T 인스턴스는 애플리케이션에서 높은 CPU 성능이 필요할 경우 전용 고속 프로세서 코어
가 있는 것처럼 실행되도록 설계되었습니다. 뿐만 아니라 다른 환경에서 과도하게 구독할 경우 일반적으로 겪을 수 있는 일관되지 않은 성능이나 기타 흔한 부작용으로부터 보호해줍니다.
Amazon EC2
를 사용하면 요구 사항에 따라 여러 스토리지 옵션 중 선택할 수 있습니다. Amazon EBS는 실행 중인 단일 Amazon EC2 인스턴스에 연결할 수 있는 내구성이 뛰어난 블록 수준의 스토리지 볼륨
입니다. Amazon EBS를 빈번하고 세부적인 업데이트가 필요한 데이터용 기본 스토리지 디바이스로 사용할 수 있습니다. 예를 들어, Amazon EBS
는 Amazon EC2
에 데이터베이스를 실행
할 때 권장되는 스토리지 옵션입니다. Amazon EBS 볼륨은 Amazon EC2 인스턴스의 실행 주기와는 독립적으로
유지됩니다. 볼륨이 인스턴스에 연결되면 볼륨을 다른 물리적 하드 드라이브처럼 사용할 수 있습니다. Amazon EBS는 워크로드의 요구 사항을 가장 잘 충족할 수 있도록 범용(SSD)
, 프로비저닝된 IOPS(SSD)
, 마그네틱
이라는 세 가지 볼륨 유형을 제공합니다. 범용(SSD)
은 SSD로 백업되는 새로운 범용 EBS 볼륨 유형으로, 고객에게 기본
적으로 추천하는 선택 사항입니다. 범용(SSD) 볼륨은 소규모에서 중간 규모의 데이터베이스
, 개발
및 테스트 환경
, 부팅 볼륨
등 광범위한 워크로드에 적합합니다. 프로비저닝된 IOPS(SSD) 볼륨
은 일관
되고 지연 시간이 짧은
성능을 제공하며 대규모 관계형
또는 NoSQL 데이터베이스
처럼 I/O 집약적인 애플리케이션
에 맞게 설계되었습니다. 마그네틱 볼륨
은 모든 EBS 볼륨 유형 중 기가바이트당 비용이 가장 낮
습니다. 마그네틱 볼륨은 데이터 액세스가 드문
워크로드 및 저렴한 스토리지 비용
이 중요한 애플리케이션에 이상적입니다.
많은 Amazon EC2 인스턴스
에는 호스트 컴퓨터 안
에 위치하는 디바이스의 스토리지
도 포함될 수 있는데 이를 인스턴스 스토리지
라고 합니다. 인스턴스 스토리지
는 Amazon EC2 인스턴스에 블록 수준
의 임시 스토리지
를 제공합니다. 인스턴스 스토리지의 데이터는 관련 Amazon EC2 인스턴스의 수명 기간
동안만 지속됩니다.
Amazon EBS 또는 인스턴스 스토리지를 통한 블록 수준 스토리지뿐 아니라 또한 내구성
과 가용성
이 뛰어난 객체 스토리지에 Amazon S3
를 사용할 수 있습니다. Amazon EC2 스토리지 옵션에 대한 자세한 내용은 Amazon EC2 설명서를 참조하세요.
고객은 소액의 시간당 요금
을 추가로 지불
하고 일부 Amazon EC2 인스턴스 유형을 EBS 최적화 인스턴스
로 시작할 수 있습니다. EBS 최적화 인스턴스를 사용하면 EC2 인스턴스에서 EBS 볼륨에 프로비저닝된 IOPS
를 충분히 활용할 수 있습니다. EBS 최적화 인스턴스
는 Amazon EC2와 Amazon EBS 간에 전용 처리량
을 제공하며, 사용하는 인스턴스 유형에 따라 500메가비트/초(Mbps)
~80기가비트/초(Gbps)
범위에서 처리량을 선택할 수 있습니다. 전용 처리량 덕분에 Amazon EBS I/O와 EC2 인스턴스의 기타 트래픽 간에 경합이 최소화되어, EBS 볼륨의 성능이 극대화
됩니다. EBS 최적화 인스턴스는 모든 EBS 볼륨과 함께 사용하도록 설계되었습니다. 프로비저닝된 IOPS 볼륨
은 EBS 최적화 인스턴스
에 연결하는 경우 지연 시간
이 10밀리초 미만으로 감소하며, 운영 시간
의 99.9%
에 해당하는 기간 동안, 프로비저닝된 IOPS 성능
의 10%
이내를 유지하도록 설계되었습니다. 스토리지 I/O 요구 사항
이 많은 애플리케이션에 대해서는 클러스터 네트워킹
을 지원하는 인스턴스나 EBS 최적화 인스턴스
와 함께 프로비저닝된 IOPS 볼륨
을 사용하는 것이 좋습니다.
일반 클러스터 배치 그룹에서 시작되면 EC2 인스턴스 지원 클러스터 네트워킹을 선택합니다. 클러스터 배치 그룹
은 클러스터 내
모든 인스턴스 간 지연 시간이 짧은 네트워킹
을 제공합니다. EC2 인스턴스가 사용할 수 있는 대역폭은 인스턴스 유형과 네트워킹 성능 사양에 따라 다릅니다. 동일 리전 내
의 인스턴스 간 트래픽은 각각의 방향에서 싱글 플로우 트래픽
의 경우 5Gbps
, 멀티 플로우 트래픽
의 경우 100Gbps
까지 사용할 수 있습니다(전이중). 동일 리전 내
에서 S3 버킷을 왕복
는 트래픽 역시 사용 가능한 모든 인스턴스 집계 대역폭을 사용할 수 있습니다. 인스턴스가 배치 그룹에서 시작되면, 싱글 플로우 트래픽
은 최대 10Gbps
, 멀티 플로우 트래픽
은 최대 100Gbps
까지 사용할 수 있습니다. 인터넷에 대한 네트워크 트래픽은 5Gbps으로 제한
되어 있습니다(전이중). 클러스터 네트워킹은 고성능 분석 시스템
및 많은 과학 및 엔지니어링 애플리케이션
, 특히 병렬 프로그래밍
에 MPI 라이브러리 표준
을 사용하는 애플리케이션에 이상적입니다.
인텔 프로세서를 사용하는 Amazon EC2 인스턴스에서는 다음과 같은 프로세서 기능에 액세스할 수 있습니다.
인텔 AES-NI(AES New Instructions)
: 인텔 AES-NI 암호화 명령 세트
는 더 빠른
데이터 보호
와 더 강력한
보안
을 제공할 수 있도록 기존 AES(고급 암호화 표준) 알고리즘
을 개선합니다. 현재 모든 세대
의 EC2 인스턴스에서 이 프로세서 기능을 지원합니다.
인텔 Advanced Vector Extensions
(인텔 AVX, 인텔 AVX2 및 인텔 AVX-512): 인텔 AVX 및 인텔 AVX2는 256비트 그리고 인텔 AVX-512는 512비트 명령 세트 확장으로서 FP(부동 소수점) 집약적 애플리케이션
을 위해 설계되었습니다. 인텔 AVX Instructions는 이미지 및 오디오/비디오 처리, 과학 시뮬레이션, 재무 분석, 3D 모델링 및 분석과 같은 애플리케이션의 성능을 향상시킵니다. 이 기능은 HVM AMI로 실행된 인스턴스에서만 사용할 수 있습니다.
인텔 터보 부스트 기술
: 인텔 터보 부스트 기술은 필요할 때 더 뛰어난 성능을 제공합니다. 프로세서가 기본 동작 주파수
보다 더 빠르게 코어를 자동으로 실행
하므로 더 빠른 속도로 작업을 완료할 수 있습니다.
인텔 DL 부스트(인텔 딥 러닝 부스트): AI 딥 러닝 사용 사례를 가속화하도록 설계된 새로운 내장 프로세서 기술 세트입니다. 2세대 인텔 제온 확장형 프로세서는 Vector Neural Network Instruction(VNNI/INT8)을 통해 인텔 AVX-512를 확장하므로 이미지 인식/세분화, 객체 감지, 음성 인식, 언어 번역, 추천 시스템, 강화 학습 등의 경우에 이전 세대의 인텔 제온 확장형 프로세서(FP32)보다 딥 러닝 추론 성능을 대폭 강화합니다. VNNI와 호환되지 않는 Linux 배포도 있습니다. 사용하기 전에 설명서를 확인하십시오.
인스턴스 유형에 따라 일부 프로세서 기능은 지원되지 않을 수 있으므로, 인스턴스 유형 매트릭스에서 인스턴스 유형별로 제공하는 기능에 대해 자세히 알아보십시오.
이렇게 알아보면서 EC2에 대해 알면 알 수록 더 알게 많아지는 느낌이 들었다.. 이 와중에도 계속해서 새로운 인스턴스 패밀리는 개발되겠지.. 그래도 조금은 막막했던 EC2에 어느정도 깊이있게 알아보는 시간을 가진 것 같다.