본문 바로가기
  • ANALOG CODE
  • AnalogCode
인프라

AWS EC2 범용 인스턴스 타입 비교 (T vs M)

by 아날로그코더 2023. 5. 10.
반응형

처음 AWS에서 EC2 인스턴스를 하나 생성할 때 다양한 종류의 인스턴스 타입을 보고 멘붕이 온 적이 있을것이다. 보통은 프리티어가 되는 t2.micro로 시작을 하면서, 나머지는 도대체 다 뭘까라는 생각을 할 것이다. 그래서 오늘은 EC2 범용 인스턴스의 타입을 정리해서 비교해보려고 한다. 

 

 

 

 

 

EC2 범용인스턴스는 일단 방식에 따라 TM 타입으로 나뉜다. 그리고 세대가 올라갈수록 T나 M다음에 붙는 숫자가 하나씩 올라간다. 그 다음에 인스턴스의 프로세서 제품군에 따라 따라 i, g, a등이 붙는다. 그리고 마지막으로 점(.)이 붙고 small, large와 같은 크기를 나타내는 문자열이 붙는다.

 

인스턴스 이름: T/M + 세대 + 프로세서 + .크기

 

 

EC2 범용 인스턴스 네이밍 규칙

 

 

 

이것만 알면 인스턴스 이름만 봐도 대략 어떤 타입인지 알 수가 있다. 각각의 타입을 좀 더 알기 쉽게 살펴보자.

 

 


 

1. 범용 인스턴스 (T vs M)

EC2 범용 인스턴스는 컴퓨팅, 메모리 및 네트워킹 리소스를 균형있게 제공하여 범용적으로 사용할 수 있도록 제공하는 인스턴스이다. 가장 일반적인 인스턴스 타입이라고 보면 되겠다. 고성능 컴퓨팅이나 메모리가 아주 많이 필요한 아주 특수한 용도의 서비스를 만들지 않는 이상 대부분의 웹서버, 중소규모의 DB 등의 작업에서 범용 인스턴스를 사용한다. 그리고 EC2를 처음 시작하게 되면 가장 먼저 사용하게 되는 인스턴스일 것이다.

 

범용 인스턴스에는 T와 M으로 시작하는 2가지 타입이 있다. 일정기간 무료로 사용할 수 있는 프리티어로 T타입을 제공해서 대부분 T타입으로 시작을 하게 되리라 생각한다. 그럼 T와 M은 어떤 차이가 있을까?

 

 

T타입

T타입 인스턴스의 가장 큰 특징은 인스턴스 크기마다 정해진 기본 수준의 CPU 성능을 제공하고, 그 이상으로 버스트를 해서 CPU 성능을 기본 수준보다 높게 사용할 수 있게 하는 것이다. 하지만 버스트를 하는 것이 공짜가 아니다. 바로 크레딧이 있어야 버스트가 가능하다. 

크레딧은 CPU가 유휴상태일때 누적되고 활성상태일때 사용된다. 단 누적되는 크레딧은 무한이 아니라 한도가 존재한다.

 

대부분의 서비스가 24시간 항상 똑같은 성능을 필요로 하지는 않는다. 예를 들어 평상시에는 유저가 별로 없다가 특정시간이 되면 유저가 많아지는 웹서버가 있을 수가 있다. 이러한 경우 T타입 인스턴스를 사용하면 유저가 없는 시간에는 CPU가 유휴상태가 되어 크레딧을 축적하였다가 유저가 몰리는 시간에 크레딧을 사용해서 버스트를 해서 더 높은 CPU 성능을 사용하는 것이다.

 

무제한 모드

단, 주의해야할 것이 있다. 무제한 모드라는 것이 존재하여 크레딧 잔액이 0으로 부족한 상황에서도 추가로 과금이 되면서 버스트를 유지할 수가 있다. 추가로 돈을 내야되는 사항이므로 이점은 꼭 알아두는 것이 좋을 것 같다. 

 

 

아래는 내가 T3a 인스턴스에서 CPU 크레딧이 추가로 과금이 된 청구서의 내역이다.

T인스턴스 CPU 크레딧 추가 과금

 

기본적으로 T2는 표준모드, T3, T3a는 무제한 모드로 시작된다.

 

 

M타입

M타입은 T타입과 다르게 항상 고정적인 CPU 성능을 제공하는 인스턴스 타입이다. 그래서 거의 균형있게 일정한 성능이 요구되는 작업에 적당하다. 데이터베이스나 또는 거의 고정적으로 높은 처리량이 필요한 작업에는 M타입의 인스턴스가 적당하다.

 

InfluxDB를 운영하면서 내가 실수한 부분이 여기에 있었다. InfluxDB를  T3a 인스턴스로 생성해서 운영을 하였는데, 데이터를 쓰고, 쿼리하는 양이 꽤 많다보니 CPU를 굉장히 많이 사용하였다. 데이터를 쓰고, 쿼리하는 작업이 거의 일정한 비율로 유지가 되는 서비스다보니 고정적으로 높은 성능을 사용하고 있는 상태였던 것이다. 결국 t3a 인스턴스에서 크레딧 잔액이 쌓일틈 없이 계속 소모할 수 밖에 없는 상태였고, t3a 무제한 모드에서 크레딧이 부족한 상황이 발생하여 추가로 과금이 발생하게 된 것이다.

서버 인스턴스 비용이 고정비에서 변동비로 바뀌게 되는 지점이 발생하게 되는 것이라 불안하였고, 뭔가 자기네들 멋대로 과금을 시키는 것 같아서 기분이 좋지 않았다.

 

그래서 M타입의 인스턴스로 바꾸었다.  t3a.2xlarge에서 CPU가 40%정도를 유지했었는데, m6i.large로 테스트를 해봤는데 오히려 CPU 부하가 20~30%대로 더 낮아지는 것이었다. 2xlarge에서 large로 가격을 다운시켰는데도 성능이 더 안정적이었다. t3a와 m6i의 차이가 이 정도일 줄은 몰랐었다. 그래서 인스턴스 타입을 제대로 테스트도 안해보고 사용한 걸 무지 후회하였다. 이게 결국 돈으로 직결되는 것이라 신중히 테스트해보고 결정을 해야된다는 걸 느꼈다.

 

이렇게 부하의 변동없이 고정적으로 성능이 유지되는 경우에는 M타입의 인스턴스가 적당하다는 걸 알게 되었다.

 

 


 

2. 프로세서

EC2 인스턴스는 사용하는 프로세서에 따라 인스턴스 종류가 나뉜다. 프로세서는 크게 3가지 제품군으로 분류된다.

 

 

인텔 - 제온

인텔은 제온 시리즈가 바로 서버 및 워크스테이션용 프로세서 시리즈이다. 지금까지 다양한 시리즈를 출시하였지만, 현재는 인텔 제온 스케일러블 프로세서가 주력 제품군으로써, EC2 인스턴스에서 바로 이 인텔 제온 스케일러블 프로세서를 사용하고 있다. 

인스턴스 이름에 주로 M6i처럼 i가 붙으면 인텔 프로세스를 사용하는 타입이라고 보면 된다.

 

AMD - EPYC

AMD는 EPYC라는 이름으로 서버 프로세서를 출시하고 있다. 2017년부터 현재까지 4세대가 출시되었고 EC2에서 사용하고 있다.

M6a처럼 a가 숫자뒤에 붙으면 AMD 계열의 프로세서를 사용하는 인스턴스이다.

 

 

AWS - Graviton

AWS Graviton은 AWS에서 자체적으로 디자인하여 만든 64bit ARM 기반의 CPU이다. 2018년에 처음 출시를 하여 EC2 인스턴스에서 사용하기 시작하였다. 현재 Graviton 1, 2, 3 까지 출시하였다. M6g처럼 g가 숫자뒤에 붙으면 Graviton 계열의 프로세서를 사용하는 인스턴스이다.

 

 

 

 


 

3. 분류 및 가격

 

EC2 범용 인스턴스의 종류를 프로세서별로 M과 T타입을 보기쉽게 표로 분류해보았다.

 

 

가격 비교 기준

  • 리전 : 아시아 태평양(서울) 지역
  • 인스턴스 크기: large

 

* 가격온디맨드 시간당 요금(USD)

* M6a와 M7g는 서울 리전에 없어서 예상가격으로 계산함

 - 예상가격 = 미국 리전 가격의 23%를 더한가격 (보통 한국 리전의 가격이 미국 동부(버지니아북부) 리전의 22~25% 정도)

프로세서 T타입 M타입
인텔 제온 E5
(2015, 2016년)
T2 (0.1152 $) M4 (0.123 $)
AMD EPYC 1세대
(2018년)
T3a (0.0936 $) M5a (0.106 $)
인텔 제온 스케일러블 1, 2세대
(2017, 2019년)
T3 (0.104 $) M5 (0.118 $)
AMD EPYC 3세대
(2021년)
  M6a (0.106 $)
인텔 제온 스케일러블 3세대
(2021년)
  M6i (0.118 $)
AWS Graviton 2
(2021년)
T4g (0.0832 $) M6g (0.094 $)
AWS Graviton 3
(2022년)
  M7g (0.100 $)

 

 

4. 마무리

 

최신 타입이 더 저렴

최신 인스턴스로 올라간다고 가격이 올라가는 것이 아니다. 오히려 최신 세대의 인스턴스가 가격이 더 저렴하다. 왜 그런지는 정확히 이유를 알수는 없으나 아마도 최신 모델에 대한 수요가 많다보니 공급이 많아져서 가격이 더 낮아질 수 있는게 아닌가라고 생각한다.

 

 

인텔 > AMD > AWS

그리고 같은 급이라면 인텔 > AMD > AWS 프로세서 순으로 가격이 비싸다. AWS Graviton이 아마존에서 디자인한 것인만큼 가장 저렴하게 가격이 책정되어 있다. 그런데 왠지 약간의 비용을 더 주고 인텔 CPU를 쓰고싶은건 나만 그런건지 궁금하다.

 

 

 

 

결국은 선택의 기준은 인스턴스를 사용하는 서비스의 특성과 자금력에 달려있다.

 

 

 

반응형

댓글