적절한 EC2 인스턴스 타입을 선정하는 방법

EC2 인스턴스 타입을 선택하는데 참고할만한 기준을 정리한 글입니다
2023.10.03

안녕하세요 클래스메소드의 수재입니다.
EC2를 도입하기 전에 어떤 인스턴스 타입이 가장 적합할지 검토하는 경우는 많습니다.
이번 글에서는 EC2 타입을 선정할 때 어떤 부분을 주의하면 좋을지에 대해 알아보도록 하겠습니다.

EC2 타입의 표기

EC2를 작성하기 위해 콘솔을 보면 c~~.xlarge, m~~.small, t~~.medium 등 많은 인스턴스 타입이 있습니다.
우선 어떤 타입이 적절한지 알기 위해서는 이 표기가 무엇을 의미하는지를 아는게 좋겠네요.(AWS 공식문서)

각 부분에 대해 설명하자면 다음과 같습니다.

  • 인스턴스 패밀리(instance family) : 인스턴스가 무엇을 특화한건지 구분하기 위한 부분
  • 인스턴스 세대(instance genereation) : 인스턴스가 릴리즈 된 세대(숫자가 클 수록 신세대)
  • 프로세서 패밀리(processor family) : 인스턴스의 프로세서를 나타내는 부분
  • 추가 기능(additional capability) : 추가 기능을 나타내는 부분
  • 인스턴스 사이즈(instance size) : vCPU, Memory 등 사양에 대한 사이즈를 나타내는 부분

제공하고 있는 인스턴스 패밀리는 대략 다음과 같습니다.

종류 특징 패밀리
범용 메모리, CPU의 밸런스가 잡혀있으며 범용적으로 사용 가능 T, M, A, Mac
컴퓨팅 최적화 vCPU 성능이 다른 패밀리에 비해 높음 C
메모리 최적화 메모리 성능이 다른 패밀리에 비해 높음 R, X, z
고속 컴퓨팅 GPU가 탑재된 모델 P, G, F, Inf
스토리지 최적화 스토리지 액세스가 빠른 모델 I, D, H
그 외 대용량 메모리, AI를 위한 고성능 컴퓨팅 등 특수 모델 Hpc, Trn, U

프로세서 패밀리는 3가지가 있습니다.

  • a : AMD 프로세서
  • g : AWS Graviton 프로세서
  • i : 인텔 프로세서

추가 기능에는 다음이 있습니다.

  • d : 인스턴스 스토어 볼륨
  • n : 네트워크 및 EBS 최적화
  • e : 추가 스토리지 또는 메모리
  • z : 고성능
  • flex : Flex 인스턴스

상세한 내용은 공식 문서에서 확인할 수 있습니다.

무엇을 기준으로 선정하는가?

필요한 사양을 체크하는 것이 우선

위에서 설명했듯이 AWS에서는 다양한 목적의 인스턴스 패밀리를 제공하고 있기 때문에 당연하지만 서비스를 운영하는데 필요한 리소스의 스펙을 먼저 파악하는 것이 우선입니다.
필요한 내용은 대략 다음과 같습니다.

  • 운영 체제
  • CPU 코어 수
  • 시스템 메모리(RAM) 용량
  • 저장 공간
  • GPU 코어
  • 네트워크 대역폭 요구 사항

이를 파악한다면 어느정도의 사이즈가 필요한지 어떤 패밀리가 필수인지 검토할 수 있게 됩니다.
인스턴스 타입 별 스펙은 다음 페이지에서 확인이 가능합니다.

가능한 타입이 많다면 우선 범용부터

채택 가능한 인스턴스 패밀리가 여러 개이고 그 중 범용이 포함되어 있다면 범용 인스턴스(M 인스턴스 패밀리)의 스펙이 다른 인스턴스 패밀리의 토대가 되어 있기 때문에 우선적으로 고려해보는 것이 좋습니다.
EC2는 인스턴스 타입의 변경이 비교적 간단하기 때문에 범용을 먼저 사용해본 후 부족한 스펙이 있다면 이를 보충해줄 수 있는 다른 인스턴스 패밀리로 바꾸는 것도 가능합니다.

되도록이면 최신 세대

AWS에서는 되도록 새로운 세대의 인스턴스 타입 사용을 권장하고 있습니다.

이전 세대 인스턴스는 여전히 완벽하게 지원되며 동일한 특징과 기능을 유지합니다. 최상의 성능을 얻으려면 최신 세대 인스턴스를 사용할 것을 권장합니다.

구세대 대비 신세대가 스펙 대비 비용 효율이 좋습니다. 그리고 오래 된 세대의 인스턴스 타입이 지원이 먼저 끊기게 되므로 되도록이면 신세대의 타입을 쓰는 것이 좋습니다.

프로세서에 따라 다른 비용

EC2에서 사용 가능한 프로세서로는 다음이 있습니다.

  • Intel Xeon processor(x86_64 arch) ~~i.~~
  • AMD EPYC processor(x86_64 arch) ~~a.~~
  • AWS Graviton Processor(64-bit Arm arch) ~~g.~~

6세대 까지는 intel xeon > amd epyc > gravition 순으로 gravition이 가장 저렴합니다.
7세대에서는 amd > intel > gravition 순으로 바뀝니다.

프로세서 세대 비용
amd 7 USD 0.11592
amd 6 USD 0.0864
intel 7 USD 0.1008
intel 6 USD 0.096
gravition 7 USD 0.0816
gravition 6 USD 0.077

따라서 같은 프로세서 내에서도 다소의 성능 감소를 감수하더라도 비용을 저렴하게 하는 편이 좋다면 낮은 세대의 사용도 검토할 수 있습니다.

마무리

인스턴스 타입을 처음 선정할 때 비교적 많은 고민을 할 것이라 생각됩니다.
하지만 클라우드 환경에서는 비교적 쉽게 인스턴스 타입을 변경할 수 있으니 범위 안의 인스턴스를 도입한 후에 그러한 장점을 제대로 누리는 것을 추천드립니다.
만약 현재 인스턴스 타입이나 사이즈를 100% 활용하고 있는지 판단하는게 불가능하다면 인스턴스 타입 추천 기능을 활용해보시는 것을 추천합니다.

참고 자료

긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.