오래된 콘텐츠입니다. 이 버전의 Well-Architected Framework는 현재 다음 위치에서 찾을 수 있습니다. https://docs.aws.amazon.com/ko_kr/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 2: 컴퓨팅 솔루션을 어떻게 선택합니까?

워크로드에 가장 적합한 컴퓨팅 솔루션은 애플리케이션 설계, 사용량 패턴 및 구성 설정에 따라 다릅니다. 아키텍처는 다양한 구성 요소에 대해 서로 다른 컴퓨팅 솔루션을 사용하고 다양한 기능을 활성화하여 성능을 개선할 수 있습니다. 아키텍처에 대해 잘못된 컴퓨팅 솔루션을 선택하면 성능 효율성 저하로 이어질 수 있습니다.

리소스

Amazon EC2 foundations (CMP211-R2)
Powering next-gen Amazon EC2: Deep dive into the Nitro system
Deliver high performance ML inference with AWS Inferentia (CMP324-R1)
Optimize performance and cost for your AWS compute (CMP323-R1)
Better, faster, cheaper compute: Cost-optimizing Amazon EC2 (CMP202-R1)
Cloud Compute with AWS
EC2 Instance Types
Processor State Control for Your EC2 Instance
EKS Containers: EKS Worker Nodes
ECS Containers: Amazon ECS Container Instances
Functions: Lambda Function Configuration

모범 사례:

개선 계획

사용 가능한 컴퓨팅 옵션 평가

  • 컴퓨팅 옵션 고려: 요구 사항과 일치하는 컴퓨팅 옵션을 결정합니다. 성능 측면에서는 오래 실행되는 애플리케이션, 특히 상태가 있고 계산 주기가 오래 실행되는 애플리케이션에 인스턴스를 사용하고, 이벤트로 시작되는 상태 비저장 애플리케이션에서 빠른 응답 시간이 필요한 경우 함수를 사용하며, 인스턴스의 리소스를 효율적으로 사용해야 하는 경우에는 컨테이너를 사용할 수 있습니다.
    Cloud Compute with AWS
  • 컴퓨팅 성능 요구 사항 정의: 워크로드의 주요 컴퓨팅 성능 지표를 식별하고 벤치마킹 또는 로드 테스트가 포함된 데이터 기반 접근 방식을 사용하여 요구 사항을 구현합니다. 이 데이터를 사용하여 컴퓨팅 솔루션이 제한되는 위치를 식별하고, 솔루션을 개선할 수 있는 구성 옵션을 검사합니다.
  • 사용 가능한 컴퓨팅 구성 옵션 파악

  • 사용 가능한 구성 옵션 파악: 사용 가능한 구성 옵션을 사용하여 선택한 컴퓨팅 옵션을 성능 요구 사항에 맞게 최적화합니다.AWS Nitro Systems를 활용하면 호스트 하드웨어의 컴퓨팅 및 메모리 리소스를 완전히 사용할 수 있습니다. 전용 니트로 카드를 사용하여 고속 네트워킹, 고속 EBS 및 I/O 가속화를 지원할 수 있습니다.
    AWS Nitro System
  • 컴퓨팅 관련 지표 수집

  • 컴퓨팅 관련 지표 수집: Amazon CloudWatch는 환경의 컴퓨팅 리소스 전반에서 지표를 수집할 수 있습니다. CloudWatch와 기타 지표 기록 도구를 함께 사용하면 워크로드 내의 시스템 수준 지표를 추적할 수 있습니다. CPU 사용량 수준, 메모리, 디스크 I/O, 네트워크 등의 데이터를 기록하며 사용량 수준이나 병목 현상을 파악할 수 있습니다. 워크로드의 성능 및 워크로드의 리소스 사용 효율을 파악하려면 이 데이터가 반드시 필요합니다. 데이터 기반 접근 방식의 일환으로 이 지표를 사용하면 워크로드 리소스를 능동적으로 튜닝하고 최적화할 수 있습니다.
    Amazon CloudWatch
  • 적절하게 크기를 조정하여 필요한 구성 확인

  • 적절한 크기 조정을 통해 워크로드 구성 수정: 성능과 전반적인 효율성을 모두 최적화하려면 워크로드에 필요한 리소스를 결정해야 합니다. CPU보다 메모리가 많이 필요한 시스템의 경우에는 메모리 최적화 인스턴스를 선택하고, 메모리가 많이 사용되지 않는 데이터 처리를 수행하는 구성 요소의 경우에는 컴퓨팅 최적화 인스턴스를 선택합니다. 올바른 크기 조정을 수행하면 필요한 리소스만 사용하면서 워크로드의 성능을 최대한 높일 수 있습니다.
  • 사용 가능한 리소스 탄력성 사용

  • 탄력성 활용: 탄력성은 보유한 리소스의 공급을 해당 리소스의 수요에 맞춥니다. 인스턴스, 컨테이너 및 함수를 자동 조정과 함께 사용하거나 서비스의 기능으로 사용하는 경우 탄력성 개선을 위한 메커니즘이 제공됩니다. 아키텍처에서 탄력성을 사용하여 모든 사용 규모에 대한 성능 요구 사항을 충족하기에 충분한 용량이 있는지 확인합니다. 탄력적 리소스의 확장 또는 축소에 대한 지표가 배포 중인 워크로드 유형에 대해 검증되었는지 확인합니다. 비디오 트랜스코딩 애플리케이션을 배포하는 경우 100% CPU가 예상되므로 기본 지표로 사용해서는 안 됩니다. 또는 대기 중인 트랜스코딩 작업의 대기열 깊이를 기준으로 측정하여 인스턴스 유형을 조정할 수 있습니다. 워크로드 배포에서 확장 및 축소 이벤트를 모두 처리할 수 있는지 확인합니다. 워크로드 구성 요소를 안전하게 축소하는 것은 수요에 따라 리소스를 확장하는 것만큼 중요합니다. 축소 이벤트에 대한 테스트 시나리오를 생성하여 워크로드가 예상대로 작동하는지 확인하십시오.
  • 지표를 기준으로 컴퓨팅 요구 사항 재평가

  • 데이터 기반 접근 방식을 사용하여 리소스 최적화: 성능 및 효율성을 극대화하려면 워크로드에서 시간대별로 수집된 데이터를 사용하여 리소스를 튜닝하고 최적화합니다. 워크로드의 현재 리소스 사용량 추세를 파악하고, 워크로드의 요구에 더 적합하게 리소스 사용 방식을 변경할 수 있는 영역을 확인합니다. 리소스가 너무 많이 커밋되면 시스템 성능이 저하되고, 너무 적게 커밋되면 리소스 사용 효율성이 낮아지고 비용은 높아집니다.