AWS EC2 인스턴스 유형: AWS에서 애플리케이션을 호스팅하기 위한 과제 및 모범 사례

새로운 전략을 계획하는 비즈니스 파트너

Amazon Web Services(AWS)에서 애플리케이션을 호스팅할 때 가장 중요한 결정 중 하나는 어떤 Amazon Elastic Compute Cloud(EC2) 인스턴스 유형을 선택할지 결정하는 것입니다. EC2 인스턴스는 AWS에서 애플리케이션을 실행할 수 있게 해주는 가상 머신입니다. 이들은 다양한 크기와 구성, 즉 인스턴스 패밀리로 알려져 있으며, 각각 특정 목적을 위해 설계되었습니다. 애플리케이션에 적합한 인스턴스 오퍼링과 인스턴스 크기를 선택하는 것은 성능을 최적화하고 비용을 절감하는 데 매우 중요합니다. 그러나 모든 애플리케이션의 수요 프로필은 고유하고 시간이 지남에 따라 변경될 수 있기 때문에 이 작업은 말하기는 쉬워도 해결하기는 어렵습니다. 특정 제품군의 2xlarge 인스턴스는 필요하지 않을 수도 있지만, 애플리케이션 팀이 가동 시간을 유지하는 클라우드 운영 업무를 수행하면, 클라우드 비용이 급증할 때까지 더 크고 비용이 많이 드는 인스턴스 크기가 매력적입니다.

이 블로그 게시물에서는 애플리케이션에 가장 적합한 Amazon EC2 인스턴스 유형을 선택하는 데 따르는 어려움을 살펴보고 올바른 결정을 내리는 방법에 대한 모범 사례를 제공합니다. 또한, 머신 러닝, 자동 스케일링, 자동화를 사용하여 AWS 클라우드 앱의 규모를 최적화하는 데 IBM® Turbonomic과 같은 솔루션이 어떻게 도움이 되는지 설명합니다. Turbonomic에 익숙하고 지금 바로 AWS 환경 최적화를 시작하고 싶다면 지금 바로 30일 무료 체험판을 시작하세요.

Amazon EC2 인스턴스 유형 이해

EC2 인스턴스는 CPU, 메모리, 스토리지, 네트워킹 용량과 같은 특성을 기준으로 분류됩니다. 각 인스턴스 유형은 범용 컴퓨팅, 메모리 집약적 애플리케이션 또는 컴퓨팅 집약적 작업과 같은 특정 워크로드에 맞게 최적화되도록 설계되었습니다. 다음은 EC2 인스턴스 유형과 주요 사용 사례의 몇 가지 예입니다.

  • 일반 용도 인스턴스(A, T, M, C 시리즈): 일반 용도 인스턴스 유형은 웹 서버, 소규모 데이터베이스, 개발 및 테스트 환경을 포함한 다양한 워크로드에 맞게 설계되었습니다. 이 그룹에는 Intel Xeon Platinum 8175M 또는 8259CL 프로세서로 구동되는 최신 세대의 범용 인스턴스인 m5 인스턴스가 포함됩니다. 이러한 인스턴스는 컴퓨팅, 메모리 및 네트워크 리소스의 균형을 제공하며 많은 애플리케이션에 적합합니다.
  • 컴퓨팅 최적화 인스턴스(C 및 R 시리즈): 이러한 인스턴스는 고성능 컴퓨팅, 배치 처리, 과학 모델링과 같은 컴퓨팅 집약적인 워크로드에 최적화되어 있습니다. 이러한 인스턴스는 GPU와 코어 수가 많은 CPU를 사용하여 컴퓨팅 성능을 극대화합니다.
  • 메모리 최적화 인스턴스 (X, Z 및 R 시리즈): 이러한 고용량 메모리 인스턴스는 고성능 데이터베이스, 분산형 인메모리 캐시, 실시간 데이터 처리/빅데이터 분석과 같은 메모리 집약적인 워크로드에 최적화되어 있습니다.
  • 스토리지 최적화 인스턴스(I, D, H 시리즈): 빅데이터, 데이터 웨어하우징, 로그 처리 등 스토리지 집약적인 워크로드에 최적화된 인스턴스입니다. 고용량 캐싱과 SSD(Solid State Drive)를 활용하여 워크로드의 집중적인 읽기 및 쓰기 활동을 지원합니다.

올바른 EC2 인스턴스 유형을 선택할 때의 과제

애플리케이션에 적합한 EC2 인스턴스 유형을 선택하는 것은 어려운 작업일 수 있습니다. 다음은 여러분이 직면할 수 있는 몇 가지 문제입니다.

  • 복잡성: 선택할 수 있는 인스턴스 제품이 너무 많기 때문에 애플리케이션에 가장 적합한 제품을 결정하는 것이 어려울 수 있습니다. 또한 Amazon은 서비스 카탈로그에 새로운 인스턴스 유형을 지속적으로 도입하고 있으며, 이는 현재 애플리케이션에 가장 적합한 인스턴스가 지금부터 몇 달 후에는 애플리케이션에 가장 적합하지 않을 수도 있음을 의미합니다.
    • Turbonomic이 지원하는 방식: Turbonomic은 전체 AWS 서비스 카탈로그의 사양을 지속적으로 수집하고 워크로드의 리소스 소비 프로파일(기준 및 백분위수 기반 피크 모두)을 가장 적합한 인스턴스 유형에 매핑합니다.
  • 워크로드 유형: 애플리케이션에서 실행되는 워크로드 유형은 무엇인가요? 컴퓨팅 집약적인 작업인가요, 아니면 많은 메모리나 스토리지 용량이 필요한가요? 워크로드를 명확하게 이해한 후에는 워크로드에 최적화된 인스턴스 유형으로 옵션 범위를 좁힐 수 있습니다.
  • 성능 요구 사항: 대규모 워크로드를 처리하기 위해 고성능 인스턴스 유형이 필요한가요, 아니면 가벼운 워크로드를 처리하기 위해 더 작은 인스턴스 유형이 필요한가요? 워크로드가 고객 대면, 저지연 애플리케이션 또는 내부 관리 애플리케이션을 지원하나요? 어떤 데이터 지역성 요건을 지켜야 하나요? 인스턴스 유형의 성능은 지역과 애플리케이션의 사용 패턴에 따라 달라질 수 있다는 점에 유의하세요.
    • Turbonomic의 지원 방법: 전체 호스팅 환경에서 워크로드 유형을 결정하는 것은 중요한 작업이지만 클라우드 비용 최적화 소프트웨어의 도움으로 쉽게 할 수 있습니다. Turbonomic은 워크로드의 vCPU, 메모리, 스토리지 액세스 (IOPS), 순 처리량, I/O 처리량, 스토리지 양, 예약 인스턴스 적용 범위, 데이터베이스 vMemory, 데이터베이스 vCPU, 데이터베이스 스토리지 양, 데이터베이스 I/O 처리량, RI 인벤토리 및 RI 커버리지의 현재 및 과거 사용률을 자동으로 감지하고 워크로드를 지원하는 데 가장 적합한 인스턴스 제품군 및 인스턴스 유형을 결정합니다.
  • 확장성: 트래픽과 작업 부하의 변화를 처리하기 위해 필요에 따라 선택한 인스턴스 유형을 확장하거나 축소할 수 있는지 확인해야 합니다. 또한 각 EC2 인스턴스가 호스팅할 애플리케이션이 어떻게 확장하도록 설계되었는지 알아야 합니다. 애플리케이션이 마이크로서비스로 구성된 경우 확장성과 성능 요구 사항을 함께 고려해야 합니다.
    • Turbonomic의 지원 방법: 각 애플리케이션의 확장 설계 방식에 따라 Turbonomic은 가장 경제적인 스케일 업/스케일 다운 작업을 수행할 수 있을 뿐만 아니라 스케일 아웃/스케일 인 작업이 가능한 가장 비용 효율적인 방식으로 수행되도록 보장합니다.
  • 비용: 비용: 비용은 EC2 인스턴스 유형을 선택할 때 가장 중요한 고려 사항이자 과제 중 하나입니다. 인스턴스 유형의 시간당 비용과 데이터 전송, 스토리지 및 기타 AWS 서비스에 대한 추가 요금을 고려해야 합니다. 또한 예약 인스턴스 및 절약 요금제를 포함한 다양한 요금제 모델도 비용 계산의 복잡성을 더합니다.
    • Turbonomic의 지원 방법: Turbonomic은 가능한 가장 낮은 비용으로 애플리케이션의 성능을 보장하도록 설계되었습니다. 지금 바로 30일 무료 체험을 시작하여 30분 만에 결과를 확인할 수 있습니다!

최적의 EC2 인스턴스 유형을 선택하기 위한 모범 사례

이제 최고의 EC2 인스턴스를 선택하는 가장 일반적인 문제를 이해하셨으니, 고객과 파트너가 따를 것을 권장하는 몇 가지 모범 사례를 소개합니다.

1. 워크로드 이해

올바른 EC2 인스턴스 유형을 선택하는 첫 번째이자 가장 중요한 단계는 워크로드를 이해하는 것입니다. 애플리케이션마다 CPU, 메모리, 네트워크, 스토리지 측면에서 요구 사항이 다르므로 애플리케이션을 원활하게 실행하기 위해 필요한 것이 무엇인지 아는 것이 중요합니다.

예를 들어 데이터베이스 애플리케이션을 실행하는 경우 쿼리를 효율적으로 처리하려면 많은 양의 RAM이 필요할 수 있습니다. 반면에 컴퓨팅 집약적인 애플리케이션을 실행하는 경우 고성능 CPU가 필요할 수 있습니다.

워크로드를 더 잘 이해하려면 AWS CloudWatch나 서드파티 모니터링 솔루션과 같은 도구를 사용해 자원 활용 데이터를 수집할 수 있습니다. 이 데이터는 애플리케이션에 가장 적합한 인스턴스 유형을 결정하는 데 사용할 수 있습니다.

2. CPU 고려

CPU는 인스턴스의 처리 능력을 결정하므로 EC2 인스턴스의 가장 중요한 구성 요소 중 하나입니다. 애플리케이션에 높은 CPU 성능이 필요한 경우 CPU 수와 클럭 속도가 더 빠른 인스턴스 유형을 찾아야 합니다.

AWS는 성능 컴퓨팅 워크로드에 맞게 설계된 C5, M5, R5 제품군 등 다양한 CPU 최적화 인스턴스 유형을 제공합니다(ibm.com 외부 링크). 이러한 인스턴스는 최신 세대의 맞춤형 AWS Graviton3(ibm.com 외부 링크) 프로세서(Graviton2보다 크게 업그레이드됨)를 사용하며 높은 CPU 사용률이 필요한 애플리케이션에 최적화되어 있습니다. 그러나 애플리케이션에 높은 CPU 성능이 필요하지 않은 경우 T3 제품군과 같이 GPU가 없고 CPU 수가 적은 저렴한 인스턴스 유형을 선택할 수 있습니다.

3. 메모리 고려

메모리는 인스턴스가 한 번에 처리할 수 있는 데이터의 양을 결정하므로 EC2 인스턴스의 또 다른 중요한 구성 요소입니다. 애플리케이션에 많은 메모리가 필요한 경우 메모리 용량이 더 큰 인스턴스 유형을 찾아야 합니다.

그러나 애플리케이션에 많은 메모리가 필요하지 않은 경우 저렴한 인스턴스 유형인 T3 제품군과 같이 메모리 용량이 더 작고 저렴한 인스턴스 유형을 선택할 수 있습니다.

AWS는 메모리 집약적인 워크로드를 위해 설계된 X1, R4 및 z1d 제품군과 같은 다양한 메모리 최적화 인스턴스 유형(ibm.com 외부 링크)을 제공합니다. 이러한 인스턴스는 대용량의 메모리를 특징으로 하며 인메모리 데이터베이스와 같이 높은 메모리 사용률이 필요한 애플리케이션에 최적화되어 있습니다.

그러나 애플리케이션에 많은 메모리가 필요하지 않은 경우 저렴한 인스턴스 유형인 T3 제품군과 같이 메모리 용량이 더 작고 저렴한 인스턴스 유형을 선택할 수 있습니다.

4. 네트워크 고려

네트워크는 인스턴스와 데이터를 주고받는 속도를 결정하기 때문에 EC2 인스턴스의 또 다른 중요한 구성 요소입니다. 애플리케이션에 높은 네트워크 성능이 필요한 경우 네트워크 대역폭이 더 높은 인스턴스 유형을 찾아야 합니다.

AWS는 네트워크 집약적인 워크로드를 위해 설계된 C5n 및 성능 컴퓨팅 HPC 제품군과 같은 다양한 네트워크 최적화 인스턴스 유형을 제공합니다. 이러한 인스턴스는 고속 네트워크 인터페이스를 특징으로 하며 높은 네트워크 사용률이 필요한 애플리케이션에 최적화되어 있습니다.

그러나 애플리케이션에 높은 네트워크 성능이 필요하지 않은 경우 T3 제품군과 같이 네트워크 대역폭이 낮은 저렴한 인스턴스 유형을 선택할 수 있습니다.

5. 스토리지 고려

스토리지는 인스턴스에 저장할 수 있는 데이터의 양을 결정하므로 EC2 인스턴스의 마지막 중요한 구성 요소입니다. 애플리케이션에 많은 스토리지가 필요한 경우 스토리지 용량이 더 큰 인스턴스 유형(Elastic Block Store 또는 EBS)을 찾아야 합니다. 그러나 스토리지는 가장 비용이 많이 드는 클라우드 리소스 중 하나이며 유휴 상태이거나 연결되지 않은 EBS 볼륨으로 인해 불필요한 지출이 쉽게 발생할 수 있으므로 주의하여 진행해야 합니다.

AWS는 I3 및 D2 제품군 등 스토리지 집약적 워크로드에 맞게 설계된 다양한 스토리지 최적화 인스턴스 유형을 제공합니다. 이러한 인스턴스는 대량의 SSD 스토리지와 로컬 스토리지를 갖추고 있으며 높은 IOPS 처리량이 필요한 애플리케이션에 최적화되어 있습니다.

그러나 애플리케이션에 많은 스토리지가 필요하지 않은 경우 T3 제품군과 같이 HDD 기반 스토리지 용량이 더 작은 저렴한 인스턴스 유형을 선택할 수 있습니다.

6. 요금 모델 고려

AWS는 온디맨드, 예약 인스턴스, 스팟 인스턴스 등 EC2 인스턴스에 대한 여러 요금 모델을 제공합니다. 각 모델에는 고유한 장단점이 있으므로 워크로드와 예산에 가장 적합한 모델을 선택하는 것이 중요합니다.

온디맨드 인스턴스는 시간 단위로 요금이 책정되며 선불 약정이 필요하지 않습니다. 수요가 가변적이거나 단기 프로젝트가 있는 워크로드에 가장 적합합니다.

예약 인스턴스는 일회성 선불 결제로 시간당 요금을 대폭 할인받을 수 있습니다. 사용량이 예측 가능하고 장기적인 약정이 필요한 워크로드에 가장 적합합니다.

스팟 인스턴스를 사용하면 사용하지 않는 EC2 용량에 입찰할 수 있으며 상당한 비용 절감 효과를 얻을 수 있습니다. 그러나 중단을 처리할 수 있고 시작 및 종료 시간이 유연한 워크로드에 가장 적합합니다.

7. 테스트 및 최적화

EC2 인스턴스 유형을 선택한 후에는 애플리케이션이 효율적으로 실행되고 있는지 확인하기 위해 애플리케이션을 테스트하고 최적화하는 것이 필수적입니다. AWS CloudWatch 또는 IBM® Instana 같은 도구를 사용하여 애플리케이션의 성능을 모니터링하고 병목 현상이나 개선이 필요한 부분을 파악할 수 있습니다.

결론

올바른 EC2 인스턴스 유형을 선택하는 것은 AWS 인프라의 성능과 비용 효율성을 위해 매우 중요합니다. 워크로드를 이해하고, CPU, 메모리, 네트워크 및 스토리지 요구 사항을 고려하고, 올바른 요금 모델을 선택하고, 애플리케이션을 테스트 및 최적화하면 EC2 인스턴스를 최대한 활용할 수 있습니다. 

워크로드 및 인프라 요구 사항은 시간이 지남에 따라 변경될 수 있으므로 최상의 인스턴스 유형을 선택하는 것은 일회성 결정이 아니라는 점을 기억하세요. EC2 인스턴스 유형을 지속적으로 평가하고 최적화하면 AWS 인프라에 대한 최적의 성능과 비용 효율성을 달성하는 데 도움이 됩니다.

IBM Turbonomic은 AWS 애플리케이션의 리소스 요구 사항을 지속적으로 평가하고 비용을 절감하고 EC2 인스턴스의 적정 규모를 유지하는 구체적인 조치를 생성하여 이 프로세스를 자동으로 관리할 수 있도록 지원합니다. Turbonomic은 머신 러닝과 자동화 사용하여 AWSAWS 청구 계정과 쉽게 통합되며 30분 이내에 최적화 작업을 생성합니다.

작성자

Christopher Graham

WW Demand Strategy Manager

Turbonomic PLG