

# PERF 2  컴퓨팅 솔루션을 어떻게 선택합니까?
<a name="w2aac19c11b5b7"></a>

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

**Topics**
+ [PERF02-BP01 사용 가능한 컴퓨팅 옵션 평가](perf_select_compute_evaluate_options.md)
+ [PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악](perf_select_compute_config_options.md)
+ [PERF02-BP03 컴퓨팅 관련 지표 수집](perf_select_compute_collect_metrics.md)
+ [PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인](perf_select_compute_right_sizing.md)
+ [PERF02-BP05 사용 가능한 리소스 탄력성 사용](perf_select_compute_elasticity.md)
+ [PERF02-BP06 지표를 기준으로 컴퓨팅 요구 사항 재평가](perf_select_compute_use_metrics.md)

# PERF02-BP01 사용 가능한 컴퓨팅 옵션 평가
<a name="perf_select_compute_evaluate_options"></a>

 워크로드가 인스턴스, 컨테이너 및 함수와 같은 다양한 컴퓨팅 옵션을 사용하여 어떻게 이점을 얻을 수 있는지 알아봅니다. 

 **원하는 결과:** 사용 가능한 모든 컴퓨팅 옵션을 이해하여 성능을 개선하고, 불필요한 인프라 비용을 절감하며, 워크로드를 유지하는 데 필요한 운영 노력을 줄일 기회를 파악할 수 있습니다. 또한 새로운 서비스와 기능을 배포할 때 출시 시간을 단축할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  마이그레이션 후 워크로드에 온프레미스에서 사용하던 것과 동일한 컴퓨팅 솔루션을 활용합니다. 
+  클라우드 컴퓨팅 솔루션과 이러한 솔루션이 컴퓨팅 성능을 어떻게 개선할 수 있는지를 잘 모르고 있습니다. 
+  대체 컴퓨팅 솔루션이 워크로드 특성에 보다 적절한데도 확장 또는 성능 요구 사항을 충족하려고 기존 컴퓨팅 솔루션의 규모를 과도하게 키웁니다. 

 **이 모범 사례 정립의 이점:** 비즈니스 이해관계자와 엔지니어링 팀이 컴퓨팅 요구 사항을 파악하고 사용 가능한 컴퓨팅 솔루션을 평가하여 선택한 컴퓨팅 솔루션을 사용할 경우의 이점과 한계를 이해할 수 있습니다. 선택한 컴퓨팅 솔루션은 워크로드 성능 기준에 적합해야 합니다. 주요 기준에는 처리 요구 사항, 트래픽 패턴, 데이터 액세스 패턴, 확장 요구 사항 및 지연 시간 요구 사항이 포함됩니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드에 도움이 되고 성능 요구 사항을 충족할 수 있는 가상화, 컨테이너화 및 관리 솔루션을 이해해야 합니다. 워크로드에는 여러 유형의 컴퓨팅 솔루션이 포함될 수 있는데 컴퓨팅 솔루션마다 특성이 다릅니다. 원하는 워크로드 규모와 컴퓨팅 요건에 따라 컴퓨팅 솔루션을 선택하고 구성하여 요구 사항을 충족할 수 있습니다. 클라우드 아키텍트는 인스턴스, 컨테이너 및 함수의 장점과 단점을 숙지해야 합니다. 다음 단계에서는 워크로드 특성 및 성능 요구 사항에 적합한 컴퓨팅 솔루션을 선택하는 방법에 대해 설명합니다. 


|  **유형**  |  **서버**  |  **컨테이너**  |  **함수**  | 
| --- | --- | --- | --- | 
|  AWS 서비스  |  Amazon Elastic Compute Cloud(Amazon EC2)  |  Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Kubernetes Service(Amazon EKS)  |  AWS Lambda  | 
|  주요 특징  |  하드웨어 라이선스 요구 사항, 배치 옵션 및 컴퓨팅 지표를 기반으로 다양하게 선택할 수 있는 인스턴스 패밀리 전용 옵션이 있음  |  간편한 배포, 일관된 환경, EC2 인스턴스 위에서 실행, 확장성  |  짧은 런타임(15분 이하), 최대 메모리 및 CPU가 다른 서비스보다 높지 않음, 관리형 하드웨어 계층, 수백만 개의 동시 요청으로 확장 가능  | 
|  일반 사용 사례  |  리프트 앤드 시프트 마이그레이션, 단일 애플리케이션, 하이브리드 환경, 엔터프라이즈 애플리케이션  |  마이크로서비스, 하이브리드 환경  |  마이크로서비스, 이벤트 기반 애플리케이션  | 

 

 **구현 단계:** 

1.  섹션을 평가하여 컴퓨팅 솔루션이 상주해야 하는 위치를 선택합니다 [PERF05-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택](perf_select_network_location.md). 이 위치에서는 사용 가능한 컴퓨팅 솔루션 유형이 제한됩니다. 

1.  위치 및 애플리케이션 요구 사항에 맞는 컴퓨팅 솔루션 유형을 식별합니다.  

   1.  [https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/) 가상 서버 인스턴스는 폭넓은 패밀리와 크기로 제공됩니다. 이러한 인스턴스는 솔리드 스테이트 드라이브(SSD) 및 그래픽 처리 장치(GPU)를 비롯하여 다양한 기능을 제공합니다. EC2 인스턴스는 인스턴스를 선택할 때 가장 큰 유연성을 제공합니다. EC2 인스턴스를 시작할 때 지정한 인스턴스 유형에 따라 인스턴스의 하드웨어가 정해집니다. 각 인스턴스 유형은 서로 다른 컴퓨팅, 메모리 및 스토리지 기능을 제공합니다. 인스턴스 유형은 이러한 기능에 따라 인스턴스 패밀리로 그룹화됩니다. 대표적인 사용 사례로는 엔터프라이즈 애플리케이션 실행, 고성능 컴퓨팅(HPC), 기계 학습 애플리케이션 훈련 및 배포, 클라우드 네이티브 애플리케이션 실행 등이 있습니다. 

   1.  [https://aws.amazon.com/ecs/](https://aws.amazon.com/ecs/) 는 AWS Fargate를 사용하여 EC2 인스턴스 또는 서버리스 인스턴스의 클러스터에서 컨테이너를 자동으로 실행하고 관리할 수 있는 완전관리형 컨테이너 오케스트레이션 서비스입니다. Amazon ECS를 Amazon Route 53, Secrets Manager, AWS Identity and Access Management(IAM), Amazon CloudWatch 등 다른 서비스와 함께 사용할 수 있습니다. 애플리케이션이 컨테이너화되어 있고 엔지니어링 팀이 도커 컨테이너를 선호하는 경우 Amazon ECS를 사용하는 것이 좋습니다. 

   1.  [https://aws.amazon.com/eks/](https://aws.amazon.com/eks/) 는 완전관리형 Kubernetes 서비스입니다. AWS Fargate를 사용하여 EKS 클러스터를 실행하도록 선택하면 서버를 프로비저닝하고 관리할 필요가 없습니다. Amazon EKS는 Amazon CloudWatch, 오토 스케일링, AWS Identity and Access Management(IAM), Amazon Virtual Private Cloud(VPC)와 같은 AWS 서비스에 통합되어 관리하기가 편리합니다. 컨테이너를 사용할 때는 계산 지표를 활용하여 EC2 또는 AWS Fargate 인스턴스 유형을 선택하는 방식과 마찬가지로 계산 지표를 통해 워크로드에 가장 적합한 유형을 선택해야 합니다. 애플리케이션이 컨테이너화되어 있고 엔지니어링 팀이 도커 컨테이너보다 Kubernetes를 선호하는 경우 Amazon EKS를 선택하는 것이 좋습니다. 

   1.  기존 파이프라인과 함께 [https://aws.amazon.com/lambda/](https://aws.amazon.com/lambda/) 를 사용하여 허용된 런타임, 메모리 및 CPU 옵션을 지원하는 코드를 실행할 수 있습니다. 코드를 업로드하기만 하면 AWS Lambda가 해당 코드를 실행하고 확장하는 데 필요한 모든 것을 관리합니다. 다른 AWS 서비스에서 자동으로 트리거하거나 직접 호출하도록 코드를 설정할 수 있습니다. Lambda는 클라우드용으로 개발된 단기 실행 마이크로서비스 아키텍처에 권장됩니다.  

1.  새로운 컴퓨팅 솔루션을 실험한 후 마이그레이션을 계획하고 성능 지표를 검증합니다. 이는 한 번으로 끝나는 과정이 아닙니다. 다음 섹션을 참조하십시오 [PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인](perf_select_compute_right_sizing.md). 

 **구현 계획의 작업 수준:** 워크로드가 한 컴퓨팅 솔루션에서 다른 컴퓨팅 솔루션으로 이동하는 경우 애플리케이션을 리팩터링하는 데 *보통* 수준의 노력이 필요할 수 있습니다.   

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [EKS 컨테이너: EKS 워커 노드 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 
+  [컨테이너 권장 가이드](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23containers&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 
+  [서버리스 권장 가이드](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23serverless&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 

 **관련 동영상:** 
+  [How to choose compute option for startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 foundations(CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Deliver high-performance ML inference with AWS Inferentia(CMP324-R1) ](https://www.youtube.com/watch?v=17r1EapAxpk&ref=wellarchitected) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1) ](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **관련 예시:** 
+  [웹 애플리케이션을 컨테이너로 마이그레이션](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [서버리스 Hello World 실행](https://aws.amazon.com/getting-started/hands-on/run-serverless-code/) 

# PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악
<a name="perf_select_compute_config_options"></a>

 각 컴퓨팅 솔루션에는 워크로드 특성을 지원하는 옵션과 구성이 있습니다. 다양한 옵션을 통해 워크로드를 보완할 수 있는 방식과 애플리케이션에 가장 적합한 구성 옵션을 알아봅니다. 이러한 옵션의 예로는 인스턴스 패밀리, 크기, 기능(GPU, I/O), 버스팅, 시간 초과, 함수 크기, 컨테이너 인스턴스 및 동시성이 있습니다. 

 **원하는 결과:** CPU, 메모리, 네트워크 처리량(throughput), GPU, IOPS, 트래픽 패턴, 데이터 액세스 패턴을 비롯한 워크로드 특성이 문서화되어 있어 워크로드 특성에 맞는 컴퓨팅 솔루션을 구성하는 데 사용됩니다. 이러한 각 지표와 워크로드별 사용자 지정 지표를 기록하여 모니터링한 후 요구 사항을 효과적으로 충족하도록 컴퓨팅 구성을 최적화하는 데 사용합니다. 

 **일반적인 안티 패턴:** 
+  온프레미스에서 사용하던 컴퓨팅 솔루션을 그대로 활용합니다. 
+  워크로드 특성에 맞게 컴퓨팅 옵션 또는 인스턴스 패밀리를 검토하지 않습니다. 
+  버스팅 기능을 보장하기 위해 컴퓨팅 규모를 과도하게 키웁니다. 
+  동일한 워크로드에 여러 컴퓨팅 관리 플랫폼을 사용합니다. 

** 이 모범 사례 수립의 이점:** 각 워크로드에 적합한 솔루션을 결정하려면 AWS 컴퓨팅 오퍼링에 대해 잘 알아야 합니다. 워크로드에 사용할 컴퓨팅 오퍼링을 선택한 후에는 이러한 컴퓨팅 오퍼링을 신속하게 실험하여 워크로드 요구 사항이 제대로 충족되는지 확인할 수 있습니다. 워크로드 특성에 맞게 최적화된 컴퓨팅 솔루션을 사용하면 성능이 향상되고 ,비용이 줄어들며, 신뢰성이 높아집니다.

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드에서 4주 이상 동일한 컴퓨팅 옵션을 사용하고 있으며 앞으로도 특성이 변하지 않을 것으로 예상되는 경우 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 사용하여 컴퓨팅 특성에 따라 권장 사항을 알아볼 수 있습니다. 지표 부족, 지원되지 않는 인스턴스 유형 또는 예측 가능한 특성 변경으로 인해 AWS Compute Optimizer를 [사용할 수 없는 경우](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-ec2-instances) 로드 테스트 및 실험을 기반으로 지표를 예측해야 합니다.  

 **구현 단계:** 

1.  EC2 시작 유형을 사용하여 EC2 인스턴스 또는 컨테이너에서 실행 중입니까? 

   1.  워크로드에서 GPU를 사용하여 성능을 높일 수 있습니까? 

      1.  [가속화된 컴퓨팅](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Accelerated_Computing) 인스턴스는 기계 학습 훈련, 추론 및 고성능 컴퓨팅에 최상의 성능을 제공하는 GPU 기반 인스턴스입니다. 

   1.  워크로드에서 기계 학습 추론 애플리케이션을 실행합니까? 

      1.  [AWS Inferentia(Inf1)](https://aws.amazon.com/ec2/instance-types/inf1/) - Inf1 인스턴스는 기계 학습 추론 애플리케이션을 지원하도록 구축되었습니다. Inf1 인스턴스를 사용하는 고객은 이미지 인식, 음성 인식, 자연어 처리, 개인화 및 사기 탐지와 같은 대규모 기계 학습 추론 애플리케이션을 실행할 수 있습니다. TensorFlow, PyTorch 또는 MXNet과 같이 널리 사용되는 기계 학습 프레임워크 중 하나에 모델을 구축하고 GPU 인스턴스를 사용하여 모델을 훈련할 수 있습니다. 요구 사항을 충족하도록 기계 학습 모델을 훈련한 후에는 Inferentia 칩의 기계 학습 추론 성능을 최적화하는 컴파일러, 런타임 및 프로파일링 도구로 구성된 특수 SDK(소프트웨어 개발 키트)인 [AWS Neuron](https://aws.amazon.com/machine-learning/neuron/)을 사용하여 Inf1 인스턴스에 모델을 배포할 수 있습니다. 

   1.  워크로드를 낮은 수준의 하드웨어와 통합하여 성능을 개선합니까?  

      1.  [FPGA(Field Programmable Gate Array)](https://aws.amazon.com/ec2/instance-types/f1/) - FPGA를 사용하면 매우 까다로운 워크로드에 사용자 지정 하드웨어 가속 실행 기능을 사용함으로써 워크로드를 최적화할 수 있습니다. C, Go 등의 지원되는 일반 프로그래밍 언어나 Verilog, VHDL 등의 하드웨어 중심 언어를 활용해 알고리즘을 정의할 수 있습니다. 

   1.  최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까? 

      1.  사용 [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다. 

   1.  CPU 지표로 인해 워크로드 성능이 제한됩니까?  

      1.  [컴퓨팅 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Compute_Optimized) 인스턴스는 고성능 프로세서가 필요한 워크로드에 이상적입니다.  

   1.  메모리 지표로 인해 워크로드 성능이 제한됩니까?  

      1.  [메모리 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Memory_Optimized) 인스턴스는 상당한 메모리를 제공하여 메모리를 많이 사용하는 워크로드를 지원합니다. 

   1.  IOPS로 인해 워크로드 성능이 제한됩니까? 

      1.  [스토리지 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Storage_Optimized) 인스턴스는 로컬 스토리지에 대한 높은 순차 읽기 및 쓰기 액세스(IOPS)가 필요한 워크로드에 적합하도록 설계되었습니다. 

   1.  워크로드 특성에 모든 지표에 걸친 균형 잡힌 요구 사항이 반영되었습니까? 

      1.  트래픽 급증을 처리하려면 워크로드 CPU를 버스트해야 합니까? 

         1.  [버스트 가능 성능](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Instance_Features) 인스턴스는 컴퓨팅 최적화 인스턴스와 유사하지만, 컴퓨팅에 최적화된 인스턴스에서 식별된 고정 CPU 기준을 초과하여 버스트할 수 있습니다. 

      1.  [범용](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#General_Purpose) 인스턴스는 모든 특성을 균형 있게 제공하여 다양한 워크로드를 지원합니다. 

   1.  컴퓨팅 인스턴스가 Linux에서 실행 중이고 네트워크 인터페이스 카드의 네트워크 처리량(throughput)으로 인해 제한을 받습니까? 

      1.  검토 ['성능 질문 5, 모범 사례 2: 사용 가능한 네트워킹 기능 평가'를 검토하여](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/network-architecture-selection.html) 성능 요구 사항을 충족하는 올바른 인스턴스 유형 및 패밀리를 찾아봅니다. 

   1.  워크로드에 1년 동안 사용할 수 있는 특정 가용 영역의 일관되고 예측 가능한 인스턴스가 필요합니까?  

      1.  [예약 인스턴스](https://aws.amazon.com/ec2/pricing/reserved-instances/) 는 특정 가용 영역에서 용량 예약을 확정합니다. 예약 인스턴스는 특정 가용 영역에서 컴퓨팅 기능이 필요한 경우에 이상적입니다.  

   1.  워크로드에 전용 하드웨어가 필요한 라이선스가 있습니까? 

      1.  [전용 호스트](https://aws.amazon.com/ec2/dedicated-hosts/) 는 기존 소프트웨어 라이선스를 지원하고 규정 준수 요구 사항을 충족할 수 있도록 합니다. 

   1.  컴퓨팅 솔루션을 버스트해야 하고 동기식 처리가 필요합니까? 

      1.  [온디맨드 인스턴스](https://aws.amazon.com/ec2/pricing/on-demand/) 를 사용하면 장기 약정 없이 시간 또는 초 단위로 컴퓨팅 용량을 이용할 수 있습니다. 이러한 인스턴스는 성능 기준 요구를 넘어서 버스팅하는 데 도움이 됩니다. 

   1.  스테이스리스, 내결함성 및 비동기식인 컴퓨팅 솔루션을 사용합니까?  

      1.  [스팟 인스턴스](https://aws.amazon.com/ec2/spot/) 를 사용하면 내결함성을 갖춘 스테이스리스 워크로드를 위해 미사용 인스턴스 용량을 활용할 수 있습니다.  

1.  컨테이너를 [Fargate에서 실행하고 있습니까](https://aws.amazon.com/fargate/)? 

   1.  메모리 또는 CPU로 인해 작업 성능이 제한됩니까? 

      1.  SAP 환경의 보안 관련 작업에 대한 지침은 [태스크 크기](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-tasksize.html) 를 사용하여 메모리 또는 CPU를 조정할 수 있습니다. 

   1.  성능이 트래픽 패턴 버스트의 영향을 받고 있습니까? 

      1.  SAP 환경의 보안 관련 작업에 대한 지침은 [Auto Scaling](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-autoscaling.html) 구성을 사용하여 트래픽 패턴을 일치시킬 수 있습니다. 

1.  컴퓨팅 솔루션이 [Lambda에 있습니까](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-features.html)? 

   1.  최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까? 

      1.  사용 [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다. 

   1.  AWS Compute Optimizer를 사용하는 데 필요한 지표가 충분하지 않습니까? 

      1.  Compute Optimizer를 사용하는 데 활용할 지표가 없는 경우 [AWS Lambda 파워 튜닝](https://docs.aws.amazon.com/lambda/latest/operatorguide/profile-functions.html) 을 통해 최적의 구성을 선택할 수 있습니다. 

   1.  메모리 또는 CPU로 인해 함수 성능이 제한됩니까? 

      1.  성능 요구 지표를 충족하도록 [Lambda 메모리](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) 를 구성합니다. 

   1.  함수 실행 시 시간이 초과되었습니까? 

      1.  시간 초과 설정을 [변경합니다.](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html) 

   1.  함수 성능이 활동 및 동시성 버스트로 인해 제한됩니까?  

      1.  성능 요구 사항을 충족하도록 [동시성 설정](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html) 을 구성합니다. 

   1.  함수가 비동기적으로 실행되며 재시도 시 실패합니까? 

      1.  비동기 구성 설정에서 이벤트의 최대 사용 기간과 [최대 재시도 제한을](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) 구성합니다. 

## 구현 계획의 작업 수준: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-compute-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-compute-option-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

이 모범 사례를 적용하려면 현재 컴퓨팅 특성과 지표를 알고 있어야 합니다. 이러한 지표를 수집하고 기준선을 설정한 다음 해당 지표를 사용하여 이상적인 컴퓨팅 옵션을 식별하는 작업은 *낮음* 수준부터 *보통* 수준의 노력을 투자하여 수행됩니다. 이는 로드 테스트 및 실험을 통해 가장 효과적으로 검증됩니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [EKS 컨테이너: EKS 워커 노드 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [AWS 컴퓨팅의 성능 및 비용 최적화(CMP323-R1) ](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 사용률을 활성화하여 적절한 크기 지정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP03 컴퓨팅 관련 지표 수집
<a name="perf_select_compute_collect_metrics"></a>

계산 리소스의 성능을 이해하려면 다양한 시스템의 활용률을 기록하고 추적해야 합니다. 이 데이터를 사용하면 리소스 요구 사항을 보다 정확하게 파악할 수 있습니다.  

 워크로드를 통해 지표, 로그 및 이벤트와 같은 대량의 데이터가 생성될 수 있습니다. 기존 스토리지, 모니터링 및 관찰성 서비스가 이렇게 만들어진 데이터를 관리할 수 있는지를 결정해야 합니다. 리소스 활용률을 반영하는 지표를 식별하고, 단일 플랫폼에서 수집 및 집계되고 상관 관계가 지정될 수 있는 지표를 파악하십시오. 이러한 지표는 모든 워크로드 리소스, 애플리케이션 및 서비스를 반영하여 시스템 전체를 한눈에 살펴보고 성능 향상 기회 및 문제를 신속하게 식별할 수 있도록 지원합니다.

 **원하는 결과:** 컴퓨팅 관련 리소스에 대한 모든 지표는 보존 기능이 구현된 단일 플랫폼에서 식별, 수집 및 집계되고 상관 관계가 지정되어 비용 및 운영 목표를 지원합니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다.  
+  지표를 내부 도구에만 게시합니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 

 

 **이 모범 사례 정립의 이점:** 워크로드의 성능을 모니터링하려면 일정 기간에 걸쳐 여러 성능 지표를 기록해야 합니다. 이러한 지표를 바탕으로 성능 이상을 감지할 수 있습니다. 비즈니스 지표를 기준으로 성능을 측정하여 워크로드 요구 사항을 충족하는지 확인할 수도 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 컴퓨팅 관련 지표를 식별, 수집 및 집계하고 상관 관계를 지정하십시오. Amazon CloudWatch와 같은 서비스를 사용하면 구현을 보다 빠르고 편리하게 유지 관리할 수 있습니다. 기록된 기본 지표 외에도 워크로드 내에서 추가 시스템 수준 지표를 식별하고 추적해야 합니다. CPU 활용률, 메모리, 디스크 I/O, 네트워크 인바운드 및 아웃바운드 지표와 같은 데이터를 기록하면 활용률 수준이나 병목 현상을 파악할 수 있습니다. 이와 같은 데이터는 워크로드의 성능과 컴퓨팅 솔루션의 활용 방법을 이해하는 데 매우 중요합니다. 데이터 기반 접근 방식의 일환으로 이 지표를 사용하면 워크로드 리소스를 능동적으로 튜닝하고 최적화할 수 있습니다.  

 **구현 단계:** 

1.  어떤 컴퓨팅 솔루션 지표를 추적해야 합니까? 

   1.  [EC2 기본 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 

   1.  [Amazon ECS 기본 지표](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html) 

   1.  [EKS 기본 지표](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/kubernetes-eks-metrics.html) 

   1.  [Lambda 기본 지표](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html) 

   1.  [EC2 메모리 및 디스크 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  현재 승인되어 사용 중인 로깅 및 모니터링 솔루션이 있습니까? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 

   1.  [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) 

   1.  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html) 

1.  보안 및 운영 목표에 맞게 데이터 보존 정책을 식별하고 구성했습니까? 

   1.  [CloudWatch 지표용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

1.  지표 및 로그 집계 에이전트를 어떻게 배포합니까? 

   1.  [AWS Systems Manager 자동화](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html?ref=wellarchitected) 

   1.  [OpenTelemetry Collector](https://aws-otel.github.io/docs/getting-started/collector) 

 **구현 계획의 작업 수준: **보통 수준의 *노력을 들여* 모든 컴퓨팅 리소스에서 지표를 식별, 추적, 수집 및 집계하고 상관 관계를 지정할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon CloudWatch 설명서](https://docs.aws.amazon.com/cloudwatch/index.html?ref=wellarchitected) 
+  [CloudWatch 에이전트를 사용하여 Amazon EC2 인스턴스 및 온프레미스 서버에서 지표 및 로그 수집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [AWS Lambda의 Amazon CloudWatch Logs 액세스](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html?ref=wellarchitected) 
+  [컨테이너 인스턴스와 CloudWatch Logs 사용](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html?ref=wellarchitected) 
+  [사용자 지정 지표 게시](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html?ref=wellarchitected) 
+  [AWS Answers: 중앙 집중식 로깅](https://aws.amazon.com/answers/logging/centralized-logging/?ref=wellarchitected) 
+  [CloudWatch 지표를 게시하는 AWS 서비스](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html?ref=wellarchitected) 
+  [AWS Fargate에서의 Amazon EKS 모니터링](https://aws.amazon.com/blogs/containers/monitoring-amazon-eks-on-aws-fargate-using-prometheus-and-grafana/) 

 

 **관련 동영상:** 
+  [AWS의 애플리케이션 성능 관리](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 
+  [모니터링 플랜 세우기](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 

 

 **관련 예시:** 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [레벨 100: CloudWatch 대시보드를 통한 Windows EC2 인스턴스 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [레벨 100: CloudWatch 대시보드를 통한 Amazon Linux EC2 인스턴스 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_linux_ec2_cloudwatch/) 

# PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인
<a name="perf_select_compute_right_sizing"></a>

 워크로드의 다양한 성능 특성, 그리고 이러한 특성과 메모리/네트워크/CPU 사용량 간의 관계를 분석합니다. 이 데이터를 사용하면 워크로드 프로필에 가장 적합한 리소스를 선택할 수 있습니다. 예를 들어 데이터베이스와 같은 메모리 집약적 워크로드는 r-패밀리 인스턴스로 처리하는 것이 가장 좋습니다. 하지만 버스트 워크로드의 경우 탄력적인 컨테이너 시스템을 사용하는 것이 더 유리할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  모든 워크로드에 사용할 수 있는 가장 큰 인스턴스를 선택합니다. 
+  관리 용이성을 위해 모든 인스턴스 유형을 한 가지 유형으로 표준화합니다. 

 **이 모범 사례 정립의 이점:** AWS 컴퓨팅 오퍼링에 익숙해지면 다양한 워크로드에 적합한 솔루션을 결정할 수 있습니다. 워크로드에 사용할 다양한 컴퓨팅 오퍼링을 선택한 후에는 이러한 컴퓨팅 오퍼링을 신속하게 실험하여 워크로드 요구 사항을 충족하는 오퍼링을 결정할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

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

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)  
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [How to choose compute option for startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 활용 지원을 통해 적절한 규모 결정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP05 사용 가능한 리소스 탄력성 사용
<a name="perf_select_compute_elasticity"></a>

 클라우드는 수요 변화에 맞춰 다양한 메커니즘을 통해 리소스를 동적으로 확장 또는 축소할 수 있는 유연성을 제공합니다. 컴퓨팅 관련 지표를 함께 활용하는 경우 워크로드가 변화에 자동으로 대응하여 목표를 달성하는 데 가장 적합한 리소스 세트를 활용할 수 있습니다. 

 수요에 가장 적합한 리소스를 공급하면 워크로드의 비용을 최대한 낮출 수 있습니다. 하지만 그와 동시에 프로비저닝 시간과 개별 리소스 장애를 고려해 리소스를 충분히 공급할 수 있는 계획도 마련해야 합니다. 수요는 고정되어 있을 수도 있고 변경될 수도 있으므로, 관리상의 부담을 방지하고 관리 작업에서 비용이 너무 많이 발생하지 않도록 하려면 적절한 지표와 자동화 기능이 필요합니다. 

 AWS에서는 다양한 방식을 사용하여 수요와 공급을 일치시킬 수 있습니다. 비용 최적화 원칙 백서에서는 다음과 같은 접근 방식을 사용하여 비용을 절감하는 방법을 설명합니다. 
+  수요 기반 방식 
+  버퍼 기반 방식 
+  시간 기반 방식 

 워크로드 배포에서 확장 및 축소 이벤트를 모두 처리할 수 있는지 확인해야 합니다. 축소 이벤트에 대한 테스트 시나리오를 생성하여 워크로드가 예상대로 작동하는지 확인하십시오. 

 **일반적인 안티 패턴:** 
+  용량을 수동으로 늘려 경보에 대응합니다. 
+  조정 이벤트 후에 다시 축소하는 대신 증가된 용량을 그대로 둡니다. 

 **이 모범 사례 정립의 이점:** 워크로드 탄력성을 구성하고 테스트하면 비용을 절감하고, 성능 벤치마크를 유지하며, 트래픽 변화에 따른 신뢰성을 높일 수 있습니다. 대부분의 비 프로덕션 인스턴스는 사용되지 않을 때 중지되어야 합니다. 미사용 인스턴스를 수동으로 종료할 수도 있지만 대규모 환경에서는 실용적이지 않습니다. 볼륨 기반 탄력성을 활용할 수도 있습니다. 탄력성을 활용하면 수요가 급증할 경우 컴퓨팅 인스턴스 수를 자동으로 늘리고 수요가 감소할 경우 용량을 줄임으로써 성능과 비용을 최적화할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

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

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 

 **관련 예시:** 
+  [Amazon EC2 Auto Scaling 그룹 예시](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Amazon EFS 튜토리얼](https://github.com/aws-samples/amazon-efs-tutorial) 

# PERF02-BP06 지표를 기준으로 컴퓨팅 요구 사항 재평가
<a name="perf_select_compute_use_metrics"></a>

 시스템 수준 지표를 사용하여 시간별 워크로드 동작 및 요구 사항을 파악합니다. 사용 가능한 리소스를 이러한 요구 사항과 비교해 워크로드 요구를 평가한 다음, 워크로드 프로필에 가장 적합하도록 컴퓨팅 환경을 변경합니다. 예를 들어 시스템을 계속 사용하다 보면 초기 예상보다 메모리가 더 많이 사용될 수 있습니다. 이 경우 다른 인스턴스 패밀리나 크기로 전환하면 성능과 효율성이 모두 개선될 수 있습니다. 

 **일반적인 안티 패턴:** 
+  시스템 수준 지표만 모니터링하여 워크로드에 대한 인스턴스를 얻습니다. 
+  피크 워크로드 요구 사항에 따라 컴퓨팅 요구 사항을 설계합니다. 
+  워크로드 특성에 맞는 새로운 컴퓨팅 솔루션으로 전환하는 경우 확장 또는 성능 요구 사항에 부응하도록 컴퓨팅 솔루션 규모를 키울 수 있습니다. 

 **이 모범 사례 수립의 이점:** 성능 및 리소스 사용률을 최적화하려면 통합된 운영 보기, 세분화된 실시간 데이터 및 기간별 참조가 필요합니다. 자동 대시보드를 생성하여 이 데이터를 시각화하고 지표 산술을 수행하여 운영 및 사용률에 관한 인사이트를 도출할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

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

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 활용 지원을 통해 적절한 규모 결정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 