

# 성능 효율성
<a name="a-performance-efficiency"></a>

성능 효율성 원칙은 컴퓨팅 리소스를 시스템 요구 사항에 맞게 효율적으로 사용하고, 수요 변화 및 기술 진화에 발맞춰 그러한 효율성을 유지할 수 있는 역량을 포함합니다. 구현 방법에 대한 선제적인 가이드는 [성능 효율성 원칙 백서](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp)단축할 수 있습니다.

**Topics**
+ [아키텍처 선택](a-selection.md)
+ [컴퓨팅 및 하드웨어](a-compute-hardware.md)
+ [데이터 관리](a-data-management.md)
+ [네트워킹 및 콘텐츠 전송](a-networking-delivery.md)
+ [프로세스 및 문화](a-process-culture.md)

# 아키텍처 선택
<a name="a-selection"></a>

**Topics**
+ [PERF 1. 워크로드에 적합한 클라우드 리소스 및 아키텍처를 어떻게 선택합니까?](perf-01.md)

# PERF 1. 워크로드에 적합한 클라우드 리소스 및 아키텍처를 어떻게 선택합니까?
<a name="perf-01"></a>

 특정 워크로드에 대한 최적의 솔루션은 다양하며, 종종 여러 접근 방식이 결합된 솔루션을 사용합니다. Well-Architected 워크로드의 경우 다수의 솔루션이 사용되며 다양한 특성을 사용하여 성능을 높일 수 있습니다. 

**Topics**
+ [PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해](perf_architecture_understand_cloud_services_and_features.md)
+ [PERF01-BP02 클라우드 제공업체 또는 적절한 파트너의 지침을 사용하여 아키텍처 패턴 및 모범 사례에 대해 알아보세요.](perf_architecture_guidance_architecture_patterns_best_practices.md)
+ [PERF01-BP03 아키텍처 결정에 비용 고려](perf_architecture_factor_cost_into_architectural_decisions.md)
+ [PERF01-BP04 절충 방안이 고객과 아키텍처 효율성에 미치는 영향 평가](perf_architecture_evaluate_trade_offs.md)
+ [PERF01-BP05 사용 정책 및 참조 아키텍처](perf_architecture_use_policies_and_reference_architectures.md)
+ [PERF01-BP06 벤치마킹을 사용하여 아키텍처 결정](perf_architecture_use_benchmarking.md)
+ [PERF01-BP07 아키텍처 선택에 데이터 기반 접근 방식 사용](perf_architecture_use_data_driven_approach.md)

# PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해
<a name="perf_architecture_understand_cloud_services_and_features"></a>

 워크로드 아키텍처에서 더 나은 아키텍처 결정을 내리고 성능 효율성을 높일 수 있도록 사용 가능한 서비스 및 구성에 대해 지속적으로 학습하고 살펴보세요. 

 **일반적인 안티 패턴:** 
+  클라우드를 코로케이션된 데이터 센터로 사용합니다. 
+  클라우드로 마이그레이션한 후에는 애플리케이션을 현대화하지 않습니다. 
+  지속해야 하는 모든 항목에 하나의 스토리지 유형만 사용합니다. 
+  현재 표준에 가장 근접한 인스턴스 유형을 사용하지만 필요한 경우 더 큰 인스턴스 유형을 사용합니다. 
+  관리형 서비스로 사용할 수 있는 기술을 배포하고 관리합니다. 

 **이 모범 사례 확립의 이점:** 새로운 서비스 및 구성을 고려하여 성능을 현저히 개선하고 비용을 절감하며 워크로드를 유지 관리하는 데 필요한 노력을 최적화할 수 있습니다. 또한 클라우드 지원 제품의 가치 실현 시간을 단축하는 데 도움이 될 수 있습니다. 

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

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

 AWS는 성능을 개선하고 클라우드 워크로드 비용을 절감할 수 있는 새로운 서비스와 기능을 지속적으로 출시하고 있습니다. 클라우드에서 성능 효율성을 유지하려면 이러한 새로운 서비스와 기능을 최신 상태로 유지해야 합니다. 또한 워크로드 아키텍처를 현대화하면 생산성을 가속화하고 혁신을 촉진하며 더 많은 성장 기회를 확보하는 데 도움이 됩니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  관련 서비스에 대한 워크로드 소프트웨어 및 아키텍처 인벤토리를 생성합니다. 자세히 알아볼 제품 범주를 결정합니다. 
+  AWS 제품 및 서비스를 탐색하여 성능을 개선하고 비용 및 운영 복잡성을 줄이는 데 도움이 되는 관련 서비스 및 구성 옵션을 식별하고 알아봅니다. 
  +  [AWS의 새로운 소식](https://aws.amazon.com/new/) 
  +  [AWS 블로그](https://aws.amazon.com/blogs/) 
  +  [AWS Skill Builder](https://skillbuilder.aws/) 
  +  [AWS 이벤트 및 웨비나](https://aws.amazon.com/events/) 
  +  [AWS 교육 및 자격증](https://www.aws.training/) 
  +  [AWS YouTube 채널](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 
  +  [AWS 워크숍](https://workshops.aws/) 
  +  [AWS 커뮤니티](https://aws.amazon.com/events/asean/community-and-events/) 
+  샌드박스(비프로덕션) 환경을 사용하여 추가 비용 없이 새로운 서비스를 알아보고 실험할 수 있습니다. 

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

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [AWS 기반의 현대적 애플리케이션 구축](https://aws.amazon.com/modern-apps/) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP02 클라우드 제공업체 또는 적절한 파트너의 지침을 사용하여 아키텍처 패턴 및 모범 사례에 대해 알아보세요.
<a name="perf_architecture_guidance_architecture_patterns_best_practices"></a>

 클라우드 회사 리소스(예: 설명서, 솔루션스 아키텍트, 전문 서비스 또는 적절한 파트너)를 의사 결정의 지침으로 사용하세요. 이러한 리소스는 최적의 성능을 위해 아키텍처를 검토하고 개선하는 데 도움이 됩니다. 

 **일반적인 안티 패턴:** 
+  AWS를 일반적인 클라우드 제공업체로 사용합니다. 
+  AWS 서비스를 설계 의도와 다른 방식으로 사용합니다. 
+  비즈니스 상황을 고려하지 않고 모든 지침을 따릅니다. 

 **이 모범 사례 확립의 이점:** 클라우드 제공업체 또는 적절한 파트너의 지침을 사용하면 워크로드에 적합한 아키텍처를 선택하고 의사 결정에 확신을 얻을 수 있습니다. 

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

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

 AWS는 효율적인 클라우드 워크로드를 구축하고 관리하는 데 도움이 되는 다양한 지침, 설명서 및 리소스를 제공합니다. AWS 설명서에는 코드 샘플, 자습서, 자세한 서비스 설명이 포함되어 있습니다. AWS는 설명서 외에도 고객이 클라우드 서비스의 다양한 측면을 탐색하고 AWS에서 효율적인 클라우드 아키텍처를 구현하는 데 도움이 되는 교육 및 인증 프로그램, 솔루션 아키텍트, 전문 서비스를 제공합니다. 

 이러한 리소스를 활용하면 유용한 지식과 모범 사례에 대한 인사이트를 얻고, 시간을 절약하고, AWS 클라우드에서 더 나은 성과를 달성할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  AWS 설명서 및 지침을 검토하고 모범 사례를 따릅니다. 이러한 리소스는 서비스를 효과적으로 선택 및 구성하고 더 나은 성능을 달성하는 데 도움이 될 수 있습니다. 
  +  [AWS 설명서](https://docs.aws.amazon.com/) (예: 사용자 가이드 및 백서) 
  +  [AWS 블로그](https://aws.amazon.com/blogs/) 
  +  [AWS 교육 및 자격증](https://www.aws.training/) 
  +  [AWS YouTube 채널](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 
+  AWS 파트너 이벤트(예: AWS Global Summits, AWS re:Invent. 사용자 그룹, 워크숍)에 참가하여 AWS 전문가로부터 AWS 서비스 사용 모범 사례에 대해 알아보세요. 
  +  [AWS 이벤트 및 웨비나](https://aws.amazon.com/events/) 
  +  [AWS 워크숍](https://workshops.aws/) 
  +  [AWS 커뮤니티](https://aws.amazon.com/events/asean/community-and-events/) 
+  추가 지침이나 제품 정보가 필요한 경우 AWS에 문의하여 도움을 받으세요. AWS 솔루션스 아키텍트 및 [AWS 전문 서비스](https://aws.amazon.com/professional-services/) 는 솔루션 구현에 대한 지침을 제공합니다. [AWS 파트너](https://aws.amazon.com/partners/) 는 비즈니스 민첩성 및 혁신을 달성하는 데 도움이 되는 AWS 전문 지식을 제공합니다. 
+  필요한 경우 [지원](https://aws.amazon.com/contact-us/) 를 사용하여 서비스를 효과적으로 사용하는 데 필요한 기술 지원을 받으십시오. [AWS Support 플랜](https://aws.amazon.com/premiumsupport/plans/) 은 성능을 최적화하고, 위험을 관리하고, 비용을 제어하면서 AWS를 성공적으로 사용할 수 있도록 적절한 도구 조합 및 전문 지식에 대한 액세스를 제공하도록 설계되었습니다. 

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

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [AWS 기업 지원](https://aws.amazon.com/premiumsupport/plans/enterprise/) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP03 아키텍처 결정에 비용 고려
<a name="perf_architecture_factor_cost_into_architectural_decisions"></a>

 클라우드 워크로드의 리소스 사용률과 성능 효율성을 개선하기 위해 비용 측면을 고려하여 아키텍처를 결정하세요. 클라우드 워크로드의 비용이 미치는 영향을 인식하면 효율적인 리소스를 활용하고 낭비적인 작업을 줄일 가능성이 높아집니다. 

 **일반적인 안티 패턴:** 
+  인스턴스 패밀리는 하나만 사용합니다. 
+  라이선스가 부여된 솔루션과 오픈 소스 솔루션을 비교 평가하지 않습니다. 
+  스토리지 수명 주기 정책을 정의하지 않습니다. 
+  AWS 클라우드의 새로운 서비스 및 기능을 검토하지 않습니다. 
+  블록 스토리지만 사용합니다. 

 **이 모범 사례 확립의 이점:** 의사 결정에 비용을 고려하면 보다 효율적인 리소스를 사용하고 다른 투자를 모색할 수 있습니다. 

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

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

 워크로드를 비용에 맞게 최적화하면 리소스 사용률을 높이고 클라우드 워크로드에서 낭비를 방지할 수 있습니다. 아키텍처 결정 시 비용을 고려하면 일반적으로 워크로드 구성 요소의 크기를 규모에 맞게 조정하고 탄력성을 활성화하여, 클라우드 워크로드 성능 효율성의 향상으로 이어집니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  클라우드 워크로드에 대한 예산 한도와 같은 비용 목표를 설정합니다. 
+  워크로드 비용을 유발하는 주요 구성 요소(인스턴스 및 스토리지 등)를 파악합니다. 이때 [AWS Pricing Calculator](https://calculator.aws/#/) 및 [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 를 사용하여 워크로드의 주요 비용 요인을 식별할 수 있습니다. 
+  잘 설계된 [비용 최적화 모범 사례를 사용하여](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html) 이러한 주요 구성 요소의 비용을 최적화합니다. 
+  지속적으로 비용을 모니터링하고 분석하여 워크로드에서 비용 최적화 기회를 파악합니다. 
  +  이때 [AWS 예산](https://aws.amazon.com/aws-cost-management/aws-budgets/) 을 사용하여 수용 불가능한 비용에 대해 알림을 받습니다. 
  +  그리고 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 또는 [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 를 사용하여 비용 최적화 권장 사항을 얻을 수 있습니다. 
  +  또한 [AWS Cost Anomaly Detection](https://aws.amazon.com/aws-cost-management/aws-cost-anomaly-detection/) 을 사용하여 자동화된 비용 이상 탐지 및 근본 원인 분석을 수행할 수 있습니다. 

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

 **관련 문서:** 
+  [Cost Intelligence Dashboard의 상세 개요](https://aws.amazon.com/blogs/aws-cloud-financial-management/a-detailed-overview-of-the-cost-intelligence-dashboard/) 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize performance and cost for your AWS compute](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [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) 

# PERF01-BP04 절충 방안이 고객과 아키텍처 효율성에 미치는 영향 평가
<a name="perf_architecture_evaluate_trade_offs"></a>

 성능 관련 개선 사항을 평가할 때는 고객 및 워크로드 효율성에 영향을 미치는 옵션을 결정합니다. 예를 들어 키 값 데이터 스토어를 사용하여 시스템 성능이 개선되는 경우, 이러한 변화의 최종적으로 일관된 특성이 고객에게 미치는 영향을 평가하는 것이 중요합니다. 

 **일반적인 안티 패턴:** 
+  구현에 대한 절충 방안이 있더라도 모든 성능 이점을 구현해야 한다고 가정합니다. 
+  성능 문제가 심각한 지점에 도달했을 때만 워크로드 변경을 평가합니다. 

 **이 모범 사례 확립의 이점:** 잠재적인 성능 관련 개선 사항을 평가할 때는 변경으로 인해 포기해야 하는 부분이 워크로드 요구 사항상 수용 가능한지 여부를 결정해야 합니다. 경우에 따라 절충을 보상하기 위해 추가 제어를 구현해야 할 수도 있습니다. 

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

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

 성능과 고객 영향 측면에서 아키텍처의 중요한 영역을 파악합니다. 성능을 개선할 수 있는 방법과 해당 개선 과정에서 트레이드-오프해야 하는 요소와 성능 개선 작업이 시스템과 사용자 환경에 미치는 영향을 확인합니다. 예를 들어 데이터 캐싱 구현 시에는 성능을 크게 개선할 수 있지만, 캐시된 데이터를 업데이트하거나 무효화할 방법 및 시기와 관련된 명확한 전략을 마련해야 잘못된 시스템 동작을 방지할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  워크로드 요구 사항과 SLA를 이해합니다. 
+  평가 요소를 명확하게 정의합니다. 평가 요소는 워크로드의 비용, 안정성, 보안 및 성능과 관련될 수 있습니다. 
+  요구 사항을 충족할 수 있는 아키텍처 및 서비스를 선택합니다. 
+  실험 및 개념 증명(POC)을 수행하여 절충 요소와 고객 및 아키텍처 효율성에 미치는 영향을 평가합니다. 일반적으로 가용성, 성능, 보안성이 높은 워크로드는 더 많은 클라우드 리소스를 소비하는 동시에 더 나은 고객 경험을 제공합니다. 

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

 **관련 문서:** 
+  [Amazon Builders’ Library](https://aws.amazon.com/builders-library) 
+  [Quick KPI](https://docs.aws.amazon.com/quicksight/latest/user/kpi.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+ [ 복원력 패턴과 절충점을 이해하여 클라우드를 효율적으로 설계하세요. ](https://aws.amazon.com/blogs/architecture/understand-resiliency-patterns-and-trade-offs-to-architect-efficiently-in-the-cloud/)

 **관련 동영상:** 
+  [모니터링 플랜 세우기](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 
+  [Amazon CloudWatch RUM을 통한 애플리케이션 최적화](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 데모](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예시:** 
+  [Amazon CloudWatch Synthetics를 활용한 페이지 로드 시간 측정](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM 웹 클라이언트](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP05 사용 정책 및 참조 아키텍처
<a name="perf_architecture_use_policies_and_reference_architectures"></a>

 워크로드를 설계하고 구현할 때 보다 효율적으로 서비스 및 구성을 선택할 수 있도록 내부 정책과 기존 참조 아키텍처를 사용하세요. 

 **일반적인 안티 패턴:** 
+  회사의 관리 오버헤드에 영향을 미칠 수 있는 다양한 기술을 허용합니다. 

 **이 모범 사례 확립의 이점:** 아키텍처, 기술 및 공급업체 선택에 대한 정책을 수립하면 신속하게 의사 결정을 내릴 수 있습니다. 

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

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

 리소스와 아키텍처를 선택할 때 내부 정책을 마련해 두면 아키텍처 선택 시 따라야 할 표준과 지침을 갖출 수 있습니다. 이러한 지침은 올바른 클라우드 서비스를 선택할 때 의사 결정 프로세스를 간소화하고 성능 효율성을 개선하는 데 도움이 될 수 있습니다. 정책 또는 참조 아키텍처를 사용하여 워크로드 배포 서비스를 클라우드 배포에 통합한 다음 성능 테스트를 사용하여 성능 요구 사항을 계속해서 충족할 수 있는지 확인합니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  클라우드 워크로드의 요구 사항을 명확하게 이해합니다. 
+  내부 및 외부 정책을 검토하여 가장 관련성이 높은 정책을 파악합니다. 
+  AWS에서 제공하는 적절한 참조 아키텍처 또는 업계 모범 사례를 사용합니다. 
+  정책, 표준, 참조 아키텍처 및 일반적인 상황에 대한 규범적 지침으로 구성된 연속체를 만듭니다. 이렇게 하면 팀이 더 빠르게 움직일 수 있습니다. 해당되는 경우 업종에 맞게 자산을 조정합니다. 
+  샌드박스 환경에서 워크로드에 대한 이러한 정책과 참조 아키텍처를 검증하세요. 
+  업계 표준 및 AWS 업데이트를 최신 상태로 유지하여 정책 및 참조 아키텍처가 클라우드 워크로드를 최적화하는 데 도움이 되도록 합니다. 

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

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP06 벤치마킹을 사용하여 아키텍처 결정
<a name="perf_architecture_use_benchmarking"></a>

 기존 워크로드의 성능을 벤치마킹하여 클라우드에서 어떻게 작동하는지 파악하고 해당 데이터를 기반으로 아키텍처 결정을 내릴 수 있습니다. 

 **일반적인 안티 패턴:** 
+  워크로드의 특성을 나타내지 않는 일반적인 벤치마크를 사용합니다. 
+  고객의 피드백과 관점을 유일한 벤치마크로 삼습니다. 

 **이 모범 사례 확립의 이점:** 현재 구현을 벤치마킹하여 성능 개선을 측정할 수 있습니다. 

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

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

 통합 테스트에서 벤치마킹을 사용하여 워크로드 구성 요소의 성능을 평가합니다. 벤치마킹은 대개 로드 테스트보다 빠르게 설정할 수 있으며, 특정 구성 요소의 기술을 평가할 때 사용됩니다. 벤치마킹은 새 프로젝트를 시작할 때 로드 테스트를 위한 완전한 솔루션이 부족한 경우 종종 사용됩니다. 

 사용자 지정 벤치마크 테스트를 직접 작성하거나 업계 표준 테스트를 사용하여(예: [TPC-DS](http://www.tpc.org/tpcds/)) 워크로드를 벤치마킹할 수 있습니다. 산업 벤치마크는 여러 환경을 비교할 때 유용합니다. 사용자 지정 벤치마크는 아키텍처 내에서 수행될 것으로 예상되는 특정 작업 유형을 타게팅하는 데 유용합니다. 

 벤치마킹을 사용할 때는 유효한 결과를 얻을 수 있도록 테스트 환경을 사전 준비하는 것이 중요합니다. 동일한 벤치마크를 여러 번 실행하여 시간대별 차이를 확인하세요. 

 벤치마크는 대개 로드 테스트보다 더 빠르게 실행되므로 배포 파이프라인 초기에 성능 편차 관련 피드백을 더 빠르게 제공하려는 경우에 사용할 수 있습니다. 구성 요소나 서비스의 큰 변화를 평가할 때 벤치마킹을 수행하면 변경 작업의 타당성을 빠르게 확인할 수 있습니다. 벤치마킹은 로드 테스트와 함께 사용해야 합니다. 로드 테스트에서 프로덕션 환경의 워크로드 성능에 대한 정보를 얻을 수 있기 때문입니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  워크로드 성능을 평가하기 위한 지표(예: CPU 사용률, 지연 시간 또는 처리량)를 정의합니다. 
+  워크로드에 적합한 벤치마킹 도구를 식별하고 설정합니다. AWS 서비스를 사용하거나(예: [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)) 워크로드와 호환되는 타사 도구를 사용할 수 있습니다. 
+  벤치마크 테스트를 수행하고 테스트 중에 지표를 모니터링합니다. 
+  벤치마킹 결과를 분석하고 문서화하여 병목 현상과 문제를 파악합니다. 
+  테스트 결과를 사용하여 아키텍처 결정을 내리고 워크로드를 조정합니다. 이 과정에는 서비스가 변경되거나 새로운 기능이 도입될 수 있습니다. 
+  조정 후 워크로드를 다시 테스트합니다. 

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

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Amazon CloudWatch RUM을 통한 애플리케이션 최적화](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 데모](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [Amazon CloudWatch Synthetics를 활용한 페이지 로드 시간 측정](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM 웹 클라이언트](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP07 아키텍처 선택에 데이터 기반 접근 방식 사용
<a name="perf_architecture_use_data_driven_approach"></a>

 아키텍처 선택에 대한 명확한 데이터 기반 접근 방식을 정의하여 특정 비즈니스 요구 사항을 충족하는 데 적합한 클라우드 서비스 및 구성이 사용되는지 확인합니다. 

 **일반적인 안티 패턴:** 
+  시간이 지나면 현재 아키텍처가 정적 아키텍처가 되고 업데이트하지 않아도 된다고 가정합니다. 
+  아키텍처는 추측과 가정을 기반으로 선택합니다. 
+  시간이 지나면 타당한 이유 없이 아키텍처 변경을 도입합니다. 

 **이 모범 사례 확립의 이점:** 아키텍처 선택에 대한 접근 방식을 잘 정의하면 데이터를 사용하여 워크로드 설계에 영향을 미치고 시간이 지남에 따라 정보에 입각한 의사 결정을 내릴 수 있습니다. 

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

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

 클라우드에 대한 내부 경험과 지식 또는 공개된 사용 사례나 백서 등의 외부 리소스를 사용하여 아키텍처에서 리소스와 서비스를 선택합니다. 워크로드에 사용할 수 있는 서비스를 실험하고 벤치마킹할 수 있는 잘 정의된 프로세스를 갖추고 있어야 합니다. 

 중요한 워크로드의 백로그는 비즈니스 및 사용자와 관련된 기능을 제공하는 사용자 스토리뿐만 아니라 워크로드의 아키텍처 런웨이를 형성하는 기술 스토리로 구성되어야 합니다. 이 런웨이는 새로운 기술 발전과 새로운 서비스에 대한 정보를 수집하고 데이터와 적절한 근거를 바탕으로 이를 채택합니다. 이를 통해 아키텍처가 미래에 대비할 수 있고 정체되지 않을 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  주요 이해 관계자와 협력하여 성능, 가용성 및 비용 고려 사항을 포함한 워크로드 요구 사항을 정의합니다. 워크로드의 사용자 수 및 사용 패턴과 같은 요소를 고려하세요. 
+  기능 백로그와 함께 우선 순위가 지정된 아키텍처 런웨이 또는 기술 백로그를 생성합니다. 
+  다양한 클라우드 서비스를 평가합니다(자세한 내용은 다음을 참조: [PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해](perf_architecture_understand_cloud_services_and_features.md)). 
+  성능 요구 사항을 충족하는 마이크로서비스 또는 서버리스와 같은 다양한 아키텍처 패턴을 탐색합니다(자세한 내용은 다음을 참조: [PERF01-BP02 클라우드 제공업체 또는 적절한 파트너의 지침을 사용하여 아키텍처 패턴 및 모범 사례에 대해 알아보세요.](perf_architecture_guidance_architecture_patterns_best_practices.md)). 
+  AWS 솔루션 아키텍트와 같은 다른 팀, 아키텍처 다이어그램 및 리소스를 참조하세요. [AWS 아키텍처 센터](https://aws.amazon.com/architecture/)및 [AWS Partner Network](https://aws.amazon.com/partners/)는 워크로드에 적합한 아키텍처를 선택하는 데 도움이 됩니다. 
+  워크로드의 성능을 평가하는 데 도움이 될 수 있는 처리량 및 응답 시간과 같은 성능 지표를 정의합니다. 
+  정의된 지표를 실험하고 사용하여 선택한 아키텍처의 성능을 검증합니다. 
+  아키텍처의 성능을 최적으로 유지하기 위해 지속적으로 모니터링하고 필요에 따라 조정합니다. 
+  선택한 아키텍처와 결정 사항을 문서화하여 향후 업데이트 및 학습을 위한 참고 자료로 활용합니다. 
+  학습한 내용, 새로운 기술, 현재 접근 방식에서 필요한 변경이나 문제를 나타내는 지표를 기반으로 아키텍처 선택 접근 방식을 지속적으로 검토하고 업데이트합니다. 

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

 **관련 문서:** 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# 컴퓨팅 및 하드웨어
<a name="a-compute-hardware"></a>

# PERF 2. 워크로드에서 컴퓨팅 리소스를 선택하고 사용하는 방법은 무엇입니까?
<a name="perf-02"></a>

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

**Topics**
+ [PERF02-BP01 워크로드에 가장 적합한 컴퓨팅 옵션 선택](perf_compute_hardware_select_best_compute_options.md)
+ [PERF02-BP02 사용 가능한 컴퓨팅 구성 및 기능 파악](perf_compute_hardware_understand_compute_configuration_features.md)
+ [PERF02-BP03 컴퓨팅 관련 지표 수집](perf_compute_hardware_collect_compute_related_metrics.md)
+ [PERF02-BP04 컴퓨팅 리소스 구성 및 규모에 맞게 크기 조정](perf_compute_hardware_configure_and_right_size_compute_resources.md)
+ [PERF02-BP05 컴퓨팅 리소스 동적 확장](perf_compute_hardware_scale_compute_resources_dynamically.md)
+ [PERF02-BP06 최적화된 하드웨어 기반 컴퓨팅 액셀러레이터 사용](perf_compute_hardware_compute_accelerators.md)

# PERF02-BP01 워크로드에 가장 적합한 컴퓨팅 옵션 선택
<a name="perf_compute_hardware_select_best_compute_options"></a>

 워크로드에 가장 적합한 컴퓨팅 옵션을 선택하면 성능을 향상하고 불필요한 인프라 비용을 줄이며 워크로드를 유지하는 데 필요한 운영 노력을 줄일 수 있습니다. 

 **일반적인 안티 패턴:** 
+  온프레미스에서 사용한 것과 동일한 컴퓨팅 옵션을 사용합니다. 
+  클라우드 컴퓨팅 옵션, 기능 및 솔루션과 이러한 솔루션이 컴퓨팅 성능을 어떻게 개선할 수 있는지 잘 모릅니다. 
+  대체 컴퓨팅 옵션이 워크로드 특성에 보다 적절한데도 스케일링 또는 성능 요구 사항을 충족하려고 기존 컴퓨팅 옵션을 과도하게 프로비저닝합니다. 

 **이 모범 사례 확립의 이점:** 컴퓨팅 요구 사항을 파악하고 사용 가능한 옵션과 비교하여 평가하면 워크로드를 보다 리소스 효율적으로 만들 수 있습니다. 

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

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

 성능 효율성을 위해 클라우드 워크로드를 최적화하려면 사용 사례 및 성능 요구 사항에 가장 적합한 컴퓨팅 옵션을 선택하는 것이 중요합니다. AWS에서는 클라우드의 다양한 워크로드에 맞는 다양한 컴퓨팅 옵션을 제공합니다. 예를 들어 다음을 사용할 수 있습니다. [Amazon EC2](https://docs.aws.amazon.com/ec2/) 가상 서버 실행 및 관리 [AWS Lambda](https://docs.aws.amazon.com/lambda/?icmpid=docs_homepage_featuredsvcs) 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행 [Amazon ECS](https://aws.amazon.com/ecs/) 또는 [Amazon EKS](https://aws.amazon.com/eks/) 컨테이너 실행 및 관리, 또는 [AWS Batch](https://aws.amazon.com/batch/) 대량의 데이터를 병렬 처리 규모와 컴퓨팅 요구 사항에 따라 상황에 맞는 최적의 컴퓨팅 솔루션을 선택하고 구성해야 합니다. 또한 각 솔루션에는 고유한 장단점이 있으므로 단일 워크로드에 여러 유형의 컴퓨팅 솔루션을 사용하는 것도 고려할 수 있습니다. 

 다음 단계에서는 워크로드 특성 및 성능 요구 사항에 맞는 올바른 컴퓨팅 옵션을 선택하는 방법을 안내합니다. 

## 구현 단계
<a name="implementation-steps"></a>

1.  워크로드 컴퓨팅 요구 사항을 이해합니다. 고려해야 할 주요 요구 사항에는 처리 요구 사항, 트래픽 패턴, 데이터 액세스 패턴, 스케일링 요구 사항, 지연 시간 요구 사항 등이 포함됩니다. 

1.  AWS에서 워크로드에 사용할 수 있는 다양한 컴퓨팅 옵션에 대해 알아봅니다(다음에 설명되어 있음) [PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해](perf_architecture_understand_cloud_services_and_features.md). 다음은 몇 가지 주요 AWS 컴퓨팅 옵션, 특성 및 일반적인 사용 사례입니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_compute_hardware_select_best_compute_options.html)

1.  각 컴퓨팅 옵션과 관련된 비용(시간당 과금 또는 데이터 전송 등) 및 관리 오버헤드(패치 및 스케일링 등)를 평가합니다. 

1.  비프로덕션 환경에서 실험 및 벤치마킹을 수행하여 워크로드 요구 사항을 가장 잘 해결할 수 있는 컴퓨팅 옵션을 파악합니다. 

1.  새로운 컴퓨팅 솔루션을 실험하고 파악한 후에는 마이그레이션을 계획하고 성능 지표를 검증합니다. 

1.  다음과 같은 AWS 모니터링 도구 사용 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 및 다음과 같은 최적화 서비스 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 실제 사용 패턴을 기반으로 컴퓨팅 리소스를 지속적으로 최적화합니다. 

 

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

 **관련 문서:** 
+  [AWS를 사용한 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Amazon EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Amazon EKS 컨테이너: Amazon 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 ](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 기초](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) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](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_compute_hardware_understand_compute_configuration_features"></a>

 컴퓨팅 서비스에 사용 가능한 구성 옵션과 기능을 이해하면 적절한 양의 리소스를 프로비저닝하고 성능 효율성을 개선하는 데 도움이 됩니다. 

 **일반적인 안티 패턴:** 
+  워크로드 특성에 대해 컴퓨팅 옵션 또는 사용 가능한 인스턴스 제품군을 평가하지 않습니다. 
+  최대 수요 요구 사항을 충족하기 위해 컴퓨팅 리소스를 과도하게 프로비저닝합니다. 

** 이 모범 사례 확립의 이점:** AWS 컴퓨팅 기능 및 구성을 숙지하여 워크로드 특성과 필요 사항에 맞게 최적화된 컴퓨팅 솔루션을 사용할 수 있습니다.

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

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

 각 컴퓨팅 솔루션에는 다양한 워크로드 특성과 요구 사항을 지원하기 위해 사용할 수 있는 고유한 구성과 기능이 있습니다. 이러한 옵션을 통해 워크로드를 보완할 수 있는 방식을 알아보고 애플리케이션에 가장 적합한 구성 옵션을 결정합니다. 이러한 옵션의 예로는 인스턴스 패밀리, 크기, 기능(GPU, I/O), 버스팅, 시간 초과, 함수 크기, 컨테이너 인스턴스 및 동시성이 있습니다. 워크로드에서 4주 이상 동일한 컴퓨팅 옵션을 사용하고 있고 앞으로도 이러한 특성이 변하지 않을 것으로 예상되는 경우 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)  를 사용하여 CPU 및 메모리 측면에서 현재 컴퓨팅 옵션이 워크로드에 적합한지 알아보세요. 

## 구현 단계
<a name="implementation-steps"></a>

1.  워크로드 요구 사항(예: CPU 필요량, 메모리, 지연 시간)을 이해합니다. 

1.  AWS 설명서 및 모범 사례를 검토하여 컴퓨팅 성능을 개선하는 데 도움이 되는 권장 구성 옵션에 대해 알아봅니다. 고려해야 할 몇 가지 주요 구성 옵션은 다음과 같습니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_compute_hardware_understand_compute_configuration_features.html)

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

 **관련 문서:** 
+  [AWS를 사용한 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [Amazon EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [Amazon EC2 인스턴스에 대한 프로세서 상태 제어 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [Amazon EKS 컨테이너: Amazon 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](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) 
+  [Optimize performance and cost for your AWS compute](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_compute_hardware_collect_compute_related_metrics"></a>

 컴퓨팅 관련 지표를 기록하고 추적하여 컴퓨팅 리소스의 성능을 더 잘 파악하고 성능과 사용률을 높입니다. 

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

 **이 모범 사례 확립의 이점:** 성능 관련 지표를 수집하면 애플리케이션 성능을 비즈니스 요구 사항에 맞게 조정하여 워크로드 필요 사항을 충족하는 데 도움이 됩니다. 또한 워크로드의 리소스 성능과 사용률을 지속적으로 개선하는 데 도움이 될 수 있습니다. 

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

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

 클라우드 워크로드를 통해 지표, 로그 및 이벤트와 같은 대량의 데이터가 생성될 수 있습니다. AWS 클라우드에서 지표 수집은 보안, 비용 효율성, 성능 및 지속 가능성을 개선하기 위한 중요한 단계입니다. AWS는 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 같은 모니터링 서비스를 통해 다양한 성능 관련 지표를 제공하여 중요한 인사이트를 제공합니다. CPU 사용률, 메모리 사용률, 디스크 I/O, 네트워크 인바운드 및 아웃바운드와 같은 지표는 사용률 수준 또는 성능 병목 현상에 대한 인사이트를 제공할 수 있습니다. 데이터 기반 접근 방식의 일환으로 이 지표를 사용하면 워크로드 리소스를 능동적으로 튜닝하고 최적화할 수 있습니다.  비용 및 운영 목표를 지원하기 위해 보존 정책이 구현된 단일 플랫폼에서 컴퓨팅 리소스와 관련된 모든 지표를 수집하는 것이 이상적입니다. 

## 구현 단계
<a name="implementation-steps"></a>

1.  워크로드와 관련된 성능 관련 지표를 파악합니다. 리소스 사용률과 클라우드 워크로드의 운영 방식(응답 시간 및 처리량 등)에 대한 지표를 수집해야 합니다. 

   1.  [Amazon 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.  [Amazon 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.  [Amazon EC2 메모리 및 디스크 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  워크로드에 적합한 로깅 및 모니터링 솔루션을 선택하고 설정합니다. 

   1.  [AWS 기본 관찰성](https://catalog.workshops.aws/observability/en-US/aws-native) 

   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.  [Amazon CloudWatch Logs 및 지표 필터를 사용하여 사용자 정의 애플리케이션 지표 정량화](https://aws.amazon.com/blogs/mt/quantify-custom-application-metrics-with-amazon-cloudwatch-logs-and-metric-filters/) 

   1.  [Amazon CloudWatch 전략적 태그 지정으로 사용자 지정 지표 수집](https://aws.amazon.com/blogs/infrastructure-and-automation/collect-custom-metrics-with-amazon-cloudwatch-strategic-tagging/) 

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.  [Amazon CloudWatch 이상 탐지를 사용하여 사용자 지정 지표에 대한 경보 생성](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/create-alarms-for-custom-metrics-using-amazon-cloudwatch-anomaly-detection.html) 

   1.  [Amazon CloudWatch RUM을 사용하여 특정 웹 페이지에 대한 지표 및 경보 생성](https://aws.amazon.com/blogs/mt/create-metrics-and-alarms-for-specific-web-pages-amazon-cloudwatch-rum/) 

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) 

 **관련 예시:** 
+  [레벨 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_compute_hardware_configure_and_right_size_compute_resources"></a>

 워크로드의 성능 요구 사항에 맞게 컴퓨팅 리소스를 구성하고 규모에 맞게 크기를 조정하여 리소스의 사용률이 부족하거나 과도하게 활용되는 것을 방지하세요. 

 **일반적인 안티 패턴:** 
+  워크로드 성능 요구 사항을 무시하여 컴퓨팅 리소스의 프로비저닝이 과도하거나 부족해지는 경우가 있습니다. 
+  모든 워크로드에 사용할 수 있는 최소 또는 최대 인스턴스만 선택합니다. 
+  관리하기 쉽도록 하나의 인스턴스 제품군만 사용합니다. 
+  규모에 맞는 크기로 조정하기 위해 AWS Cost Explorer 또는Compute Optimizer의 권장 사항을 무시합니다. 
+  새로운 인스턴스 유형의 적합성을 위해 워크로드를 재평가하지 않습니다. 
+  조직에 대해 소수의 인스턴스 구성만 인증합니다. 

 **이 모범 사례 확립의 이점:** 컴퓨팅 리소스의 크기를 규모에 맞게 적절히 조정하면 리소스의 프로비저닝이 과도하거나 부족해지는 것을 방지하여 클라우드 운영을 최적화할 수 있습니다. 일반적으로 컴퓨팅 리소스의 크기를 적절하게 조정하면 성능과 고객 경험이 향상되는 동시에 비용도 절감됩니다. 

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

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

 규모에 맞게 크기를 조정하면 조직은 비즈니스 요구 사항을 해결하면서 효율적이고 비용 효과적인 방식으로 클라우드 인프라를 운영할 수 있습니다. 클라우드 리소스를 과도하게 프로비저닝하면 추가 비용이 발생할 수 있는 반면, 과소 프로비저닝은 성능 저하와 부정적인 고객 경험으로 이어질 수 있습니다. AWS는 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 및 [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) 과 같은 도구를 제공합니다. 이러한 도구는 과거 데이터를 사용하여 컴퓨팅 리소스의 크기를 적절하게 조정하기 위한 권장 사항을 제공합니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  요구 사항을 가장 잘 충족하는 인스턴스 유형을 선택하세요 
  +  [워크로드에 적합한 Amazon EC2 인스턴스 유형을 선택하려면 어떻게 해야 하나요?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
  +  [Amazon EC2 플릿에 대한 속성 기반 인스턴스 유형 선택](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) 
  +  [속성 기반 인스턴스 유형 선택을 사용하여 Auto Scaling 그룹 생성](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) 
  +  [Karpenter 통합을 통한 Kubernetes 컴퓨팅 비용 최적화](https://aws.amazon.com/blogs/containers/optimizing-your-kubernetes-compute-costs-with-karpenter-consolidation/) 
+  워크로드의 다양한 성능 특성, 그리고 이러한 특성과 메모리/네트워크/CPU 사용량 간의 관계를 분석합니다. 이 데이터를 사용하면 워크로드 프로필 및 성과 목표에 가장 적합한 리소스를 선택할 수 있습니다. 
+  Amazon CloudWatch와 같은 AWS 모니터링 도구를 사용하여 리소스 사용량을 모니터링합니다. 
+  컴퓨팅 리소스에 적합한 구성을 선택합니다. 
  +  임시 워크로드의 경우 [인스턴스 Amazon CloudWatch 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) (예: `CPUUtilization` )를 평가하여 인스턴스의 사용률이 낮거나 높은지 식별합니다. 
  +  안정적인 워크로드를 위해 정기적으로 AWS Compute Optimizer 및 AWS Trusted Advisor 등의 AWS 적정 크기 조정 도구를 확인하여 컴퓨팅 리소스를 최적화하고 크기를 조정할 수 있는 기회를 식별합니다. 
    +  [Well-Architected 실습 - 적정 크기 조정 권장 사항 ](https://wellarchitectedlabs.com/cost/100_labs/100_aws_resource_optimization/) 
    +  [Well-Architected 실습 - Compute Optimizer로 적정 크기 조정 ](https://wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/) 
+  실제 환경에서 구현하기 전에 비프로덕션 환경에서 구성 변경 사항을 테스트합니다. 
+  새로운 컴퓨팅 오퍼링을 지속적으로 재평가하고 워크로드 요구 사항과 비교합니다. 

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

 **관련 문서:** 
+  [AWS를 사용한 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [Amazon EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS 컨테이너: Amazon 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) 
+  [Amazon EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 기초](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deploy ML models for inference at high performance and low cost](https://www.youtube.com/watch?v=4FqHt5bmS2o) 
+  [Optimize performance and cost for your AWS compute](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) 
+  [Simplifying Data Processing to Enhance Innovation with Serverless Tools](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 

 **관련 예시:** 
+  [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_compute_hardware_scale_compute_resources_dynamically"></a>

 클라우드의 탄력성을 사용하여 필요에 따라 컴퓨팅 리소스를 동적으로 확장 또는 축소하고 워크로드에 대한 프로비저닝 용량이 과도하거나 부족하지 않도록 방지할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  용량을 수동으로 늘려 경보에 대응합니다. 
+  온프레미스에서와 동일한 크기 조정 가이드라인(일반적으로 정적 인프라)을 사용합니다. 
+  조정 이벤트 후에 다시 축소하는 대신 증가된 용량을 그대로 둡니다. 

 **이 모범 사례 확립의 이점:** 컴퓨팅 리소스의 탄력성을 구성 및 테스트하면 비용을 절감하고, 성능 벤치마크를 유지하고, 트래픽 변화에 따른 안정성을 개선할 수 있습니다. 

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

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

 AWS는 다양한 스케일링 메커니즘을 통해 리소스를 동적으로 스케일링 또는 축소하여 수요 변화에 대응할 수 있는 유연성을 제공합니다. 컴퓨팅 관련 지표와 결합된 동적 스케일링을 통해 워크로드는 변경 사항에 자동으로 대응하고 최적의 컴퓨팅 리소스 세트를 사용하여 목표를 달성할 수 있습니다. 

 다양한 접근 방식을 사용하여 리소스 공급과 수요를 일치시킬 수 있습니다. 
+  **타겟 추적 접근 방식**: 스케일링 지표를 모니터링하고 필요에 따라 용량을 자동으로 늘리거나 줄입니다. 
+  **예측 규모 조정**: 일별 및 주별 추세를 고려하여 규모를 조정합니다. 
+  **일정 기반 접근 방식**: 예측 가능한 부하 변화에 따라 자체 규모 조정 일정을 설정합니다. 
+  **서비스 스케일링**: 설계상 자동으로 규모가 조정되는 서비스(예: 서버리스)를 선택합니다. 

 워크로드 배포에서 확장 및 축소 이벤트를 모두 처리할 수 있는지 확인해야 합니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  컴퓨팅 인스턴스, 컨테이너 및 함수는 Auto Scaling과 함께 또는 서비스의 기능으로 탄력성을 위한 메커니즘을 제공합니다. 자동 스케일링 메커니즘의 예시는 다음과 같습니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_compute_hardware_scale_compute_resources_dynamically.html)
+  스케일링은 대개 Amazon EC2 인스턴스나 AWS Lambda 함수 등의 컴퓨팅 서비스와 관련하여 설명하는 경우가 많습니다. 이때 [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/auto-scaling.html) 와 같은 비컴퓨팅 서비스의 구성도 수요에 맞게 고려해야 합니다. 
+  스케일링에 대한 지표가 배포 중인 워크로드의 특성과 일치하는지 확인합니다. 동영상 트랜스코딩 애플리케이션을 배포하는 경우 100%의 CPU 활용률이 예상되므로, 기본 지표로 사용해서는 안 됩니다. 대신 트랜스코딩 작업 대기열의 깊이를 사용합니다. 필요한 경우 스케일링 정책에 대해 [맞춤형 지표](https://aws.amazon.com/blogs/mt/create-amazon-ec2-auto-scaling-policy-memory-utilization-metric-linux/) 를 사용할 수 있습니다. 올바른 지표를 선택하려면 Amazon EC2에 대한 다음 지침을 고려하세요. 
  +  지표는 유효한 사용률 지표여야 하며 인스턴스가 얼마나 많이 사용되는지를 설명해야 합니다. 
  +  지표 값은 Auto Scaling 그룹 내 인스턴스 수에 비례하여 늘거나 줄어야 합니다. 
+  이때 [수동 스케일링](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) 대신 [동적 스케일링](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) 을 Auto Scaling 그룹에 사용합니다. 또한 동적 스케일링에 [대상 추적 스케일링 정책](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) 을 사용하는 것이 좋습니다. 
+  워크로드 배포가 스케일링 이벤트(확장 및 축소)를 모두 처리할 수 있는지 확인합니다. 예를 들어 [활동 기록](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html) 을 사용하여 Auto Scaling 그룹에 대한 스케일링 활동을 확인할 수 있습니다. 
+  워크로드의 예측 가능한 패턴을 평가하고 예측 및 계획된 수요 변화에 따라 사전 예방적으로 확장합니다. 예측 스케일링에서는 용량을 과도하게 프로비저닝할 필요가 없습니다. 자세한 내용은 [Amazon EC2 Auto Scaling으로 예측 스케일링](https://aws.amazon.com/blogs/compute/introducing-native-support-for-predictive-scaling-with-amazon-ec2-auto-scaling/)단축할 수 있습니다. 

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

 **관련 문서:** 
+  [AWS를 사용한 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [Amazon EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [Amazon EKS 컨테이너: Amazon 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) 
+  [Amazon EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 
+  [심층 분석: Amazon ECS 클러스터 Auto Scaling](https://aws.amazon.com/blogs/containers/deep-dive-on-amazon-ecs-cluster-auto-scaling/) 
+  [Introducing Karpenter - An Open-Source, High-Performance Kubernetes Cluster Autoscaler(Karpenter - 고성능 오픈 소스 Kubernetes Cluster Autoscaler 소개)](https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) 

 **관련 동영상:** 
+  [Amazon EC2 기초](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Optimize performance and cost for your AWS compute](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) 
+  [Build a cost-, energy-, and resource-efficient compute environment(비용, 에너지, 리소스 효율적인 컴퓨팅 환경 구축)](https://www.youtube.com/watch?v=8zsC5e1eLCg) 

 **관련 예시:** 
+  [Amazon EC2 Auto Scaling 그룹 예시](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Karpenter로 오토스케일링 구현](https://www.eksworkshop.com/beginner/085_scaling_karpenter/) 

# PERF02-BP06 최적화된 하드웨어 기반 컴퓨팅 액셀러레이터 사용
<a name="perf_compute_hardware_compute_accelerators"></a>

 하드웨어 액셀러레이터를 사용하면 CPU 기반 대안보다 특정 기능을 더 효율적으로 수행할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  워크로드에서 범용 인스턴스와 더 높은 성능과 더 낮은 비용을 제공할 수 있는 목적별 인스턴스를 비교하여 벤치마킹하지 않았습니다. 
+  CPU 기반 대안을 사용하는 것이 더 효율적일 수 있는 작업에 하드웨어 기반 컴퓨팅 액셀러레이터를 사용합니다. 
+  GPU 사용을 모니터링하지 않습니다. 

**이 모범 사례 확립의 이점:** 그래픽 처리 장치(GPU) 및 Field Programmable Gate Array(FPGA)와 같은 하드웨어 기반 액셀러레이터를 사용하면 특정 프로세싱 기능을 보다 효율적으로 수행할 수 있습니다. 

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

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

 가속 컴퓨팅 인스턴스는 GPU 및 FPGA와 같은 하드웨어 기반 컴퓨팅 가속기에 대한 액세스를 제공합니다. 이러한 하드웨어 액셀러레이터는 CPU 기반 대안보다 더 효율적인 그래픽 처리 또는 데이터 패턴 일치와 같은 특정 기능을 수행합니다. 렌더링, 트랜스코딩, 기계 학습 등 많은 가속 워크로드는 리소스 사용 면에서 매우 가변적입니다. 이 하드웨어는 필요한 시간 동안만 실행하고 필요하지 않은 경우 자동화를 통해 해제하여 전반적인 성능 효율성을 향상합니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  요구 사항을 해결할 수 있는 [가속 컴퓨팅 인스턴스를](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html) 식별합니다. 
+  기계 학습 워크로드의 경우 [AWS Trainium](https://aws.amazon.com/machine-learning/trainium/), [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/)및 [Amazon EC2 DL1](https://aws.amazon.com/ec2/instance-types/dl1/)단축할 수 있습니다. Inf2 인스턴스와 같은 AWS Inferentia 인스턴스는 [동급 Amazon EC2 인스턴스에 비해 와트당 최대 50% 더 뛰어난 성능을 제공합니다](https://aws.amazon.com/machine-learning/inferentia/). 
+  가속 컴퓨팅 인스턴스의 사용량 지표를 수집합니다. 예를 들어 GPU의 경우 CloudWatch 에이전트를 사용하여 `utilization_gpu` 및 `utilization_memory` 같은 지표를 수집할 수 [있습니다(Amazon CloudWatch를 사용하여 NVIDIA GPU 지표 수집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html)참조). 
+  코드, 네트워크 운영, 하드웨어 액셀러레이터 설정을 최적화하여 기본 하드웨어가 반드시 제대로 활용되도록 해야 합니다. 
  +  [GPU 설정 최적화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/optimize_gpu.html) 
  +  [딥 러닝 AMI에서 GPU 모니터링 및 최적화](https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-gpu.html) 
  +  [Amazon SageMaker AI에서 딥 러닝 훈련의 GPU 성능 튜닝을 위한 I/O 최적화](https://aws.amazon.com/blogs/machine-learning/optimizing-i-o-for-gpu-performance-tuning-of-deep-learning-training-in-amazon-sagemaker/) 
+  최신 고성능 라이브러리 및 GPU 드라이버를 사용합니다. 
+  자동화를 사용하여 사용하지 않는 GPU 인스턴스 사용을 해제합니다. 

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

 **관련 문서:** 
+  [GPU 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#gpu-instances) 
+  [AWS Trainium을 사용하는 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-trainium-instances) 
+  [AWS Inferentia를 사용하는 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#aws-inferentia-instances) 
+  [아키텍트를 시작하겠습니다\$1 맞춤형 칩과 액셀러레이터를 사용한 아키텍팅](https://aws.amazon.com/blogs/architecture/lets-architect-custom-chips-and-accelerators/) 
+  [가속화된 컴퓨팅](https://aws.amazon.com/ec2/instance-types/#Accelerated_Computing) 
+  [Amazon EC2 VT1 인스턴스](https://aws.amazon.com/ec2/instance-types/vt1/) 
+  [워크로드에 적합한 Amazon EC2 인스턴스 유형을 선택하려면 어떻게 해야 하나요?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-choose-type-for-workload/) 
+  [Amazon SageMaker AI을 통해 컴퓨터 비전 추론을 위한 최고의 AI 액셀러레이터 및 모델 컴파일 선택](https://aws.amazon.com/blogs/machine-learning/choose-the-best-ai-accelerator-and-model-compilation-for-computer-vision-inference-with-amazon-sagemaker/) 

 **관련 동영상:** 
+  [딥 러닝을 위한 Amazon EC2 GPU 인스턴스 선택 방법](https://www.youtube.com/watch?v=4bVrIbgGWEA&ab_channel=AWSEvents) 
+  [비용 효과적인 딥 러닝 추론 배포](https://www.youtube.com/watch?v=WiCougIDRsw&ab_channel=AWSOnlineTechTalks) 

# 데이터 관리
<a name="a-data-management"></a>

# PERF 3. 워크로드의 데이터를 어떻게 저장, 관리, 액세스합니까?
<a name="perf-03"></a>

 특정 시스템에 대한 최적의 스토리지 솔루션은 접근 방법의 종류(블록, 파일, 객체), 접근 패턴(랜덤 또는 순차), 필요한 처리량, 접근 빈도(온라인, 오프라인, 보관), 업데이트 빈도(WORM, 동적) 및 가용성과 내구성 제약 사항에 따라 다릅니다. 잘 설계된 워크로드는 용도에 맞게 구축된 데이터 저장소를 사용하므로 다양한 기능을 통해 성능을 개선할 수 있습니다. 

**Topics**
+ [PERF03-BP01 데이터 액세스 및 스토리지 요구 사항을 가장 잘 지원하는 목적별 데이터 스토어 사용](perf_data_use_purpose_built_data_store.md)
+ [PERF03-BP02 데이터 스토어에 사용 가능한 구성 옵션 평가](perf_data_evaluate_configuration_options_data_store.md)
+ [PERF03-BP03 데이터 스토어 성능 지표 수집 및 기록](perf_data_collect_record_data_store_performance_metrics.md)
+ [PERF03-BP04 데이터 스토어에서 쿼리 성능을 개선하기 위한 전략 구현](perf_data_implement_strategies_to_improve_query_performance.md)
+ [PERF03-BP05 캐싱을 활용하는 데이터 액세스 패턴 구현](perf_data_access_patterns_caching.md)

# PERF03-BP01 데이터 액세스 및 스토리지 요구 사항을 가장 잘 지원하는 목적별 데이터 스토어 사용
<a name="perf_data_use_purpose_built_data_store"></a>

 데이터 특성(공유 가능 여부, 크기, 캐시 크기, 액세스 패턴, 지연 시간, 처리량, 데이터 지속성 등)을 이해하여 워크로드에 적합한 목적별 데이터 스토어(스토리지 또는 데이터베이스)를 선택해야 합니다. 

 **일반적인 안티 패턴:** 
+  하나의 특정 데이터베이스 솔루션에 대한 내부 경험과 지식만 갖춘 탓에 하나의 데이터 스토어만 고수합니다. 
+  모든 워크로드의 데이터 스토리지 및 액세스 요구 사항이 비슷하다고 가정합니다. 
+  데이터 자산의 인벤토리 등록을 위한 데이터 카탈로그를 구현하지 않았습니다. 

 **이 모범 사례 확립의 이점:** 데이터 특성과 요구 사항을 파악하면 워크로드 요구 사항을 충족하는 가장 효율적이고 성능이 뛰어난 스토리지 기술을 결정할 수 있습니다. 

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

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

 데이터 스토리지를 선택하고 구현할 때는 쿼리, 스케일링 및 스토리지 특성이 워크로드 데이터 요구 사항을 지원하는지 확인해야 합니다. AWS는 블록 스토리지, 객체 스토리지, 스트리밍 스토리지, 파일 시스템, 관계형, 키-값, 문서, 인메모리, 그래프, 시계열, 원장 데이터베이스를 포함한 다양한 데이터 스토리지 및 데이터베이스 기술을 제공합니다. 각 데이터 관리 솔루션에는 사용 사례 및 데이터 모델을 지원하는 옵션과 구성이 있습니다. 데이터 특성과 요구 사항을 이해하면 모놀리식 스토리지 기술과 제한적인 획일적 접근 방식에서 벗어나 데이터를 적절하게 관리하는 데 집중할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  워크로드에 존재하는 다양한 데이터 유형의 인벤토리를 수행합니다. 
+  다음과 같은 데이터 특성 및 요구 사항을 이해하고 문서화합니다. 
  +  데이터 형식(비정형, 반정형, 관계형) 
  +  데이터 볼륨 및 증가 
  +  데이터 내구성: 영구, 임시, 일시적 
  +  ACID(원자성, 일관성, 격리, 내구성) 요구 사항 
  +  데이터 액세스 패턴(읽기 중심 또는 쓰기 중심) 
  +  지연 시간 
  +  처리량 
  +  IOPS(초당 입/출력 연산 수) 
  +  데이터 보존 기간 
+  데이터 특성을 충족할 수 있는 AWS의 워크로드에 사용할 수 있는 다양한 데이터 스토어에 대해 알아보세요(참조: [PERF01-BP01 사용 가능한 클라우드 서비스 및 기능 학습 및 이해](perf_architecture_understand_cloud_services_and_features.md)). 다음은 AWS 스토리지 기술의 몇 가지 예와 주요 특성입니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_data_use_purpose_built_data_store.html)
+  데이터 플랫폼을 구축하는 경우 [현대적 데이터 아키텍처](https://aws.amazon.com/big-data/datalakes-and-analytics/modern-data-architecture/) 를 AWS에서 활용하여 데이터 레이크, 데이터 웨어하우스 및 목적별 데이터 스토어를 통합할 수 있습니다. 
+  워크로드에 맞는 데이터 스토어를 선택할 때 고려해야 할 주요 질문은 다음과 같습니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_data_use_purpose_built_data_store.html)
+  비프로덕션 환경에서 실험 및 벤치마킹을 수행하여 워크로드 요구 사항을 가장 잘 해결할 수 있는 데이터 스토어를 파악합니다. 

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

 **관련 문서:** 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS 성능](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 성능](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 성능](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/) 
+  [Amazon EBS I/O 특성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 
+  [Amazon EC2 및 Amazon RDS 중에서 선택](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/comparison.html) 
+ [ Amazon ElastiCache 구현 모범 사례 ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/BestPractices.html)

 **관련 동영상:** 
+  [Amazon EBS 심층 분석](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Amazon S3를 사용하여 스토리지 성능 최적화](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [목적별 데이터베이스로 앱 현대화](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ Amazon Aurora 스토리지 상세 설명: 작동 방식 ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB 심층 분석: 고급 설계 패턴 ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 드라이버](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 유틸리티](https://github.com/aws/efs-utils) 
+  [Amazon EBS 오토 스케일링](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 예시](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+  [Amazon Redshift 데이터 공유를 사용하여 데이터 패턴 최적화](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [데이터베이스 마이그레이션](https://github.com/aws-samples/aws-database-migration-samples) 
+  [MS SQL 서버 - AWS Database Migration Service(AWS DMS) 복제 데모](https://github.com/aws-samples/aws-dms-sql-server) 
+  [데이터베이스 현대화 실습 워크숍](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon Neptune 샘플](https://github.com/aws-samples/amazon-neptune-samples) 

# PERF03-BP02 데이터 스토어에 사용 가능한 구성 옵션 평가
<a name="perf_data_evaluate_configuration_options_data_store"></a>

 데이터 스토어에 사용할 수 있는 다양한 기능과 구성 옵션을 이해하고 평가하여 워크로드에 맞는 스토리지 공간과 성능을 최적화하세요. 

 **일반적인 안티 패턴:** 
+  모든 워크로드에 Amazon EBS와 같은 하나의 스토리지 유형만 사용합니다. 
+  모든 스토리지 계층을 기준으로 한 실제 테스트 없이 워크로드 전체에 프로비저닝된 IOPS를 사용합니다. 
+  선택한 데이터 관리 솔루션의 구성 옵션을 알지 못합니다. 
+  다른 사용 가능한 구성 옵션을 고려하지 않고 인스턴스 크기만 늘립니다. 
+  데이터 스토어의 스케일링 특성을 테스트하고 있지 않습니다. 

 **이 모범 사례 확립의 이점:** 데이터 스토어 구성을 탐색하고 실험하여 인프라 비용을 절감하고, 성능을 향상하고, 워크로드를 유지하는 데 들여야 하는 수고를 줄일 수 있습니다. 

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

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

 워크로드에는 데이터 스토리지 및 액세스 요구 사항에 따라 하나 이상의 데이터 스토어가 사용될 수 있습니다. 성능 효율성과 비용을 최적화하려면 데이터 액세스 패턴을 평가하여 적절한 데이터 스토어 구성을 결정해야 합니다. 데이터 스토어 옵션을 탐색하는 동안 스토리지 옵션, 메모리, 컴퓨팅, 읽기 복제본, 일관성 요구 사항, 연결 풀링 및 캐싱 옵션과 같은 다양한 측면을 고려하세요. 이러한 다양한 구성 옵션을 실험하여 성능 효율성 지표를 개선해 보세요. 

### 구현 단계
<a name="implementation-steps"></a>
+  데이터 스토어의 현재 구성(인스턴스 유형, 스토리지 크기, 데이터베이스 엔진 버전 등)을 파악합니다. 
+  AWS 설명서 및 모범 사례를 검토하여 데이터 스토어의 성능을 개선하는 데 도움이 되는 권장 구성 옵션에 대해 알아보세요. 다음과 같은 주요 데이터 스토어 옵션을 고려해야 합니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_data_evaluate_configuration_options_data_store.html)
+  비프로덕션 환경에서 실험 및 벤치마킹을 수행하여 워크로드 요구 사항을 해결할 수 있는 구성 옵션을 파악합니다. 
+  실험을 마친 후에는 마이그레이션을 계획하고 성능 지표를 검증합니다. 
+  AWS 모니터링(예: [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)) 및 최적화(예: [Amazon S3 Storage Lens](https://aws.amazon.com/s3/storage-lens/)) 도구로 실제 사용 패턴을 사용하여 데이터 스토어를 지속적으로 최적화할 수 있습니다. 

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

 **관련 문서:** 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS 성능](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 성능](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 성능](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS I/O 특성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 **관련 동영상:** 
+  [Amazon EBS 심층 분석](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Amazon S3를 사용한 스토리지 성능 최적화](https://www.youtube.com/watch?v=54AhwfME6wI) 
+ [목적별 데이터베이스로 앱 현대화](https://www.youtube.com/watch?v=V-DiplATdi0)
+ [ Amazon Aurora 스토리지 상세 설명: 작동 방식 ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB 심층 분석: 고급 설계 패턴 ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 드라이버](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 유틸리티](https://github.com/aws/efs-utils) 
+  [Amazon EBS 오토 스케일링](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 예시](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+  [Amazon DynamoDB 예시](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [AWS 데이터베이스 마이그레이션 샘플](https://github.com/aws-samples/aws-database-migration-samples) 
+  [데이터베이스 현대화 워크숍](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon RDS for Postgress DB에서 파라미터를 사용한 작업](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 

# PERF03-BP03 데이터 스토어 성능 지표 수집 및 기록
<a name="perf_data_collect_record_data_store_performance_metrics"></a>

 데이터 스토어에 대한 관련 성능 지표를 추적하고 기록하여 데이터 관리 솔루션의 성능을 파악할 수 있습니다. 이러한 지표는 데이터 스토어를 최적화하고, 워크로드 요구 사항이 충족되는지 확인하고, 워크로드 성능에 대한 명확한 개요를 제공하는 데 도움이 될 수 있습니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다. 
+  팀에서 사용하는 내부 도구에만 지표를 게시하고 워크로드를 종합적으로 바라보고 있지 않습니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 
+  시스템 수준 지표만 모니터링하며 데이터 액세스나 사용량 지표는 캡처하지 않습니다. 

 **이 모범 사례 확립의 이점:** 성능 기준선을 설정하면 워크로드의 정상적인 동작과 요구 사항을 이해하는 데 도움이 됩니다. 비정상적인 패턴을 더 빨리 식별하고 디버깅할 수 있어 데이터 스토어의 성능과 신뢰성이 향상됩니다. 

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

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

 데이터 스토어의 성능을 모니터링하려면 일정 기간에 걸쳐 여러 성능 지표를 기록해야 합니다. 이를 통해 이상 징후를 탐지할 수 있을뿐더러 비즈니스 지표를 기준으로 성능을 측정하여 워크로드 요구 사항을 충족하는지 확인할 수 있습니다. 

 지표에는 데이터 스토어를 지원하는 기본 시스템과 데이터베이스 지표가 모두 포함되어야 합니다. 기본 시스템 지표에는 CPU 사용률, 메모리, 사용 가능한 디스크 스토리지, 디스크 I/O, 캐시 적중률, 네트워크 인바운드 및 아웃바운드 지표가 포함될 수 있습니다. 데이터베이스 지표는 초당 트랜잭션, 상위 쿼리, 평균 쿼리 속도, 응답 시간, 인덱스 사용량, 테이블 잠금, 쿼리 시간 초과 및 열린 연결 수로 구성 가능합니다. 이 데이터는 워크로드의 성능과 데이터 관리 솔루션의 사용 방법을 이해하는 데 중요합니다. 이러한 지표를 데이터 중심 전략에 포함시켜 워크로드의 리소스를 조정하고 최적화할 수 있습니다.  

 데이터베이스 성능과 관련된 성능 측정값을 기록하는 도구, 라이브러리 및 시스템을 사용합니다. 

## 구현 단계
<a name="implementation-steps"></a>

1.  추적할 데이터 스토어의 주요 성능 지표를 식별하세요. 

   1.  [Amazon S3 지표 및 차원](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-dimensions.html) 

   1.  [Amazon RDS 인스턴스의 지표 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [Monitoring DB load with Performance Insights on Amazon RDS(Amazon RDS의 성능 개선 도우미로 DB 로드 모니터링)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [향상된 모니터링 개요](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [DynamoDB 지표 및 차원](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [DynamoDB Accelerator 모니터링](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [Amazon CloudWatch를 통한 Amazon MemoryDB 모니터링](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [어떤 지표를 모니터링해야 합니까?](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 

   1.  [Amazon Redshift 클러스터 성능 모니터링](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [Timestream 지표 및 차원](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Amazon Aurora용 Amazon CloudWatch 지표](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMonitoring.Metrics.html) 

   1.  [Amazon Keyspaces (for Apache Cassandra) 로깅 및 모니터링](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [Amazon Neptune 리소스 모니터링](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  승인된 로깅 및 모니터링 솔루션을 사용하여 이러한 지표를 수집합니다. [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다. 

1.  데이터 스토어 모니터링에 성능 이상을 탐지하는 기계 학습 솔루션의 이점을 활용할 수 있는지 확인합니다. 

   1.  [Amazon RDS용 Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.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) 

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

 **관련 문서:** 
+  [AWS 데이터베이스 캐싱](https://aws.amazon.com/caching/database-caching/) 
+  [Amazon Athena 10가지 성능 향상 팁](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+  [Amazon Aurora 모범 사례](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+  [DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [Amazon Redshift Spectrum 모범 사례](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+  [Amazon Redshift 성능](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [AWS를 사용한 클라우드 데이터베이스](https://aws.amazon.com/products/databases/) 
+  [Amazon RDS 성능 개선 도우미](https://aws.amazon.com/rds/performance-insights/) 

 **관련 동영상:** 
+  [AWS 목적별 데이터베이스](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora 스토리지 상세 설명: 작동 방식](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB 심층 분석: 고급 설계 패턴](https://www.youtube.com/watch?v=6yqfmXiZTlM) 
+  [Amazon ElastiCache의 Redis 워크로드 모니터링 모범 사례](https://www.youtube.com/watch?v=c-hTMLN35BY&ab_channel=AWSOnlineTechTalks) 

 **관련 예시:** 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS 데이터 모으기 지표 수집 프레임워크](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS 모니터링 워크숍](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 

# PERF03-BP04 데이터 스토어에서 쿼리 성능을 개선하기 위한 전략 구현
<a name="perf_data_implement_strategies_to_improve_query_performance"></a>

 데이터를 최적화하고 데이터 쿼리를 개선하는 전략을 구현하여 워크로드에 대한 확장성과 효율적인 성능을 향상할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  데이터 스토어에서는 데이터를 파티션하지 않습니다. 
+  데이터 스토어에 하나의 파일 형식으로만 데이터를 저장합니다. 
+  데이터 스토어에서 인덱스를 사용하지 않습니다. 

 **이 모범 사례 확립의 이점:** 데이터 및 쿼리 성능을 최적화하면 효율성이 향상되고 비용이 절감되며 사용자 경험이 향상됩니다. 

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

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

데이터 최적화 및 쿼리 튜닝은 전체 클라우드 워크로드의 성능과 응답성에 영향을 미치기 때문에 데이터 스토어의 성능 효율성에 있어 매우 중요한 측면입니다. 쿼리가 최적화되지 않으면 리소스 사용량과 병목 현상이 증가하여 데이터 스토어의 전반적인 효율성이 저하될 수 있습니다. 

데이터 최적화는 효율적인 데이터 스토리지와 액세스를 위한 여러 기술을 포함합니다. 또한 데이터 저장소의 쿼리 성능을 개선하는 데도 도움이 됩니다. 주요 전략에는 데이터 파티셔닝, 데이터 압축, 데이터 비정규화가 포함되며, 이는 스토리지와 액세스 모두에 대해 데이터를 최적화하는 데 도움이 됩니다.

### 구현 단계
<a name="implementation-steps"></a>
+  데이터 스토어에서 수행되는 중요한 데이터 쿼리를 이해하고 분석합니다. 
+  데이터 스토어에서 느린 쿼리를 식별하고 쿼리 계획을 사용하여 현재 상태를 파악합니다. 
  +  [Amazon Redshift에서 쿼리 계획 분석](https://docs.aws.amazon.com/redshift/latest/dg/c-analyzing-the-query-plan.html) 
  +  [Athena에서 설명 및 분석 설명 사용](https://docs.aws.amazon.com/athena/latest/ug/athena-explain-statement.html) 
+  쿼리 성능을 개선하기 위한 전략을 구현합니다. 몇 가지 주요 전략은 다음과 같습니다. 
  +  보존 기간이 단축된 [컬럼 파일 형식](https://docs.aws.amazon.com/athena/latest/ug/columnar-storage.html) (예: Parquet 또는 ORC) 
  + 데이터 스토어의 데이터를 압축하여 스토리지 공간 및 I/O 작업을 축소
  +  데이터를 더 작은 부분으로 분할하고 데이터 스캔 시간을 줄이기 위한 데이터 파티셔닝. 
    + [ Athena에서의 데이터 파티셔닝 ](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)
    + [ 파티션 및 데이터 배포 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html)
  +  쿼리의 공통 열에 대한 데이터 인덱싱. 
  +  쿼리에 적합한 조인 작업을 선택 두 테이블을 조인하는 경우 조인 왼쪽에 큰 테이블을 지정하고 조인 오른쪽에 작은 테이블을 지정합니다. 
  +  지연 시간을 개선하고 데이터베이스 I/O 작업 횟수를 줄이기 위한 분산 캐싱 솔루션. 
  +  통계 실행과 같은 정기적인 유지 관리 
+  비운영 환경에서의 실험 및 테스트 전략 

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

 **관련 문서:** 
+  [Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10가지 성능 향상 팁](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon ElastiCache 구현 모범 사례](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 
+  [Athena에서의 데이터 파티셔닝](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) 

 **관련 동영상:** 
+  [Amazon Redshift 데이터 공유를 사용하여 데이터 패턴 최적화](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [새로운 쿼리 분석 도구로 Amazon Athena 쿼리 최적화 ](https://www.youtube.com/watch?v=7JUyTqglmNU&ab_channel=AmazonWebServices) 

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 

# PERF03-BP05 캐싱을 활용하는 데이터 액세스 패턴 구현
<a name="perf_data_access_patterns_caching"></a>

 자주 액세스하는 데이터를 빠르게 검색하기 위해 데이터를 캐싱하여 이점을 얻을 수 있는 액세스 패턴을 구현하세요. 

 **일반적인 안티 패턴:** 
+  자주 변경되는 데이터를 캐시합니다. 
+  캐시된 데이터가 마치 영구적으로 저장되고 항상 사용 가능한 것처럼 의존합니다. 
+  캐시된 데이터의 일관성은 고려하지 않습니다. 
+  캐싱 구현의 효율성을 모니터링하지 않습니다. 

 **이 모범 사례 확립의 이점:** 캐시에 데이터를 저장하면 읽기 지연 시간, 읽기 처리량, 사용자 경험 및 전반적인 효율성을 개선하고 비용을 절감할 수 있습니다. 

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

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

 캐시는 동일한 데이터에 대한 향후 요청을 더 빠르고 효율적으로 처리할 수 있도록 데이터를 저장하는 것을 목적으로 하는 소프트웨어 또는 하드웨어 구성 요소입니다. 캐시에 저장된 데이터는 이전 계산을 반복하거나 다른 데이터 저장소에서 가져와서 손실된 경우 재구성할 수 있습니다. 

 데이터 캐싱은 전체 애플리케이션 성능을 개선하고 기본 데이터 소스의 부담을 줄이는 가장 효과적인 전략 중 하나가 될 수 있습니다. 데이터를 클라이언트 측 캐싱이라고 하는 원격 호출을 수행하는 *애플리케이션 내에서*또는 원격 캐싱이라고 하는 빠른 보조 서비스를 사용하여 데이터를 저장하는 등 애플리케이션의 여러 수준에서 데이터를 *캐싱할 수 있습니다*. 

 **클라이언트측 캐싱** 

 클라이언트측 캐싱을 사용하면 각 클라이언트(백엔드 데이터 스토어를 쿼리하는 애플리케이션 또는 서비스)가 고유한 쿼리 결과를 지정된 시간 동안 로컬에 저장할 수 있습니다. 이렇게 하면 로컬 클라이언트 캐시를 먼저 확인하여 네트워크를 통해 데이터 스토어에 대한 요청 수를 줄일 수 있습니다. 결과가 없는 경우 애플리케이션은 데이터 스토어를 쿼리하고 해당 결과를 로컬에 저장할 수 있습니다. 이 패턴을 사용하면 각 클라이언트가 가능한 가장 가까운 위치(클라이언트 자체)에 데이터를 저장할 수 있으므로 지연 시간을 최소화할 수 있습니다. 또한 클라이언트는 백엔드 데이터 스토어를 사용할 수 없는 경우에도 일부 쿼리를 계속 제공하여 전체 시스템의 가용성을 높일 수 있습니다. 

 이 접근 방식의 한 가지 단점은 여러 클라이언트가 관련된 경우 동일한 캐시된 데이터를 로컬에 저장할 수 있다는 것입니다. 이로 인해 클라이언트 간에 중복 스토리지 사용과 데이터 불일치가 모두 발생합니다. 한 클라이언트가 쿼리 결과를 캐시하고 1분 후에 다른 클라이언트가 동일한 쿼리를 실행하여 다른 결과를 얻을 수 있습니다. 

 **원격 캐싱** 

 클라이언트 간 데이터 중복 문제를 해결하기 위해 빠른 외부 서비스 또는 *원격 캐시를*사용하여 쿼리된 데이터를 저장할 수 있습니다. 각 클라이언트는 로컬 데이터스토어를 확인하는 대신 백엔드 데이터스토어를 쿼리하기 전에 원격 캐시를 확인합니다. 이 전략을 사용하면 클라이언트와 독립적으로 스토리지 공간이 확장되므로 클라이언트 간 응답 일관성이 향상되고 저장된 데이터의 효율성이 향상되며 캐시된 데이터의 볼륨이 커집니다. 

 원격 캐시의 단점은 원격 캐시를 확인하기 위해 추가 네트워크 홉이 필요하기 때문에 전체 시스템의 지연 시간이 더 길어질 수 있다는 것입니다. 클라이언트 측 캐싱은 다중 레벨 캐싱을 위한 원격 캐싱과 함께 사용하여 지연 시간을 개선할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>

1.  캐싱의 이점을 누릴 수 있는 데이터베이스, API 및 네트워크 서비스를 식별합니다. 읽기 워크로드가 많거나 읽기/쓰기 비율이 높거나 확장 비용이 많이 드는 서비스는 캐싱의 대상입니다. 
   +  [데이터베이스 캐싱](https://aws.amazon.com/caching/database-caching/) 
   +  [응답 개선을 위해 API 캐싱 활성화](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) 

1.  액세스 패턴에 가장 적합한 유형의 캐싱 전략을 식별하세요. 
   +  [캐싱 전략](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Strategies.html) 
   +  [AWS 캐싱 솔루션](https://aws.amazon.com/caching/aws-caching/) 

1.  데이터 스토어를 위해서 [캐싱 모범 사례를](https://aws.amazon.com/caching/best-practices/) 따르세요. 

1.  데이터의 최신 상태를 유지하고 백엔드 데이터스토어에 대한 부담을 줄이는 모든 데이터에 대해 TTL(time-to-live)과 같은 캐시 무효화 전략을 구성하세요. 

1.  자동 연결 재시도, 지수 백오프, 클라이언트 측 시간 제한, 연결 풀링과 같은 기능을 클라이언트에서 활성화하여 성능과 안정성을 개선할 수 있습니다. 
   +  [모범 사례: Redis 클라이언트 및 Amazon ElastiCache (Redis OSS)](https://aws.amazon.com/blogs/database/best-practices-redis-clients-and-amazon-elasticache-for-redis/) 

1.  모니터 캐시 적중률을 80% 이상 목표로 합니다. 값이 낮으면 캐시 크기가 충분하지 않거나 액세스 패턴이 캐싱의 이점을 얻지 못한다는 의미일 수 있습니다. 
   +  [어떤 지표를 모니터링해야 합니까?](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 
   +  [Amazon ElastiCache의 Redis 워크로드 모니터링 모범 사례](https://www.youtube.com/watch?v=c-hTMLN35BY) 
   +  [Amazon CloudWatch 사용을 통한 Amazon ElastiCache (Redis OSS)모범 사례 모니터링](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/) 

1.  데이터 복제를 [구현하여](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis.Groups.html) 여러 인스턴스로 읽기를 오프로드하고 데이터 읽기 성능과 가용성을 개선하세요. 

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

 **관련 문서:** 
+  [Amazon ElastiCache Well-Architected Lens](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WellArchitechtedLens.html) 
+  [Amazon CloudWatch 사용을 통한 Amazon ElastiCache (Redis OSS)모범 사례 모니터링](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/) 
+  [어떤 지표를 모니터링해야 합니까?](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html) 
+  [Amazon ElastiCache 백서를 통한 규모에 따른 성능](https://docs.aws.amazon.com/whitepapers/latest/scale-performance-elasticache/scale-performance-elasticache.html) 
+  [캐싱 관련 당면 과제 및 전략](https://aws.amazon.com/builders-library/caching-challenges-and-strategies/) 

 **관련 동영상:** 
+  [Amazon ElastiCache 학습 경로](https://pages.awscloud.com/GLB-WBNR-AWS-OTT-2021_LP_0003-DAT_AmazonElastiCache.html) 
+  [Amazon ElastiCache 모범 사례를 통한 성공 설계](https://youtu.be/_4SkEy6r-C4) 

 **관련 예시:** 
+  [Amazon ElastiCache (Redis OSS)를 사용하여 MySQL 데이터베이스 성능 향상](https://aws.amazon.com/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/) 

# 네트워킹 및 콘텐츠 전송
<a name="a-networking-delivery"></a>

# PERF 4. 워크로드에서 네트워킹 리소스를 어떻게 선택하고 구성합니까?
<a name="perf-04"></a>

 시스템에 대한 가장 효과적인 데이터베이스 솔루션은 가용성, 일관성, 파티션 허용 오차, 지연 시간, 내구성, 확장성, 쿼리 기능에 대한 요구 사항에 따라 다릅니다. 여러 시스템은 다양한 하위 시스템에 서로 다른 데이터베이스 솔루션을 사용하고 다양한 기능을 활성화하여 성능을 개선할 수 있습니다. 시스템에 대해 잘못된 데이터베이스 솔루션 및 기능을 선택하면 성능 효율성이 저하될 수 있습니다. 

**Topics**
+ [PERF04-BP01 네트워킹이 성능에 미치는 영향 파악](perf_networking_understand_how_networking_impacts_performance.md)
+ [PERF04-BP02 사용 가능한 네트워킹 기능 평가](perf_networking_evaluate_networking_features.md)
+ [PERF04-BP03 워크로드에 적합한 전용 연결 또는 VPN 선택](perf_networking_choose_appropriate_dedicated_connectivity_or_vpn.md)
+ [PERF04-BP04 로드 밸런싱을 사용하여 여러 리소스에 트래픽을 분산합니다.](perf_networking_load_balancing_distribute_traffic.md)
+ [PERF04-BP05 성능을 개선할 수 있는 네트워크 프로토콜 선택](perf_networking_choose_network_protocols_improve_performance.md)
+ [PERF04-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택](perf_networking_choose_workload_location_network_requirements.md)
+ [PERF04-BP07 지표를 기준으로 네트워크 구성 최적화](perf_networking_optimize_network_configuration_based_on_metrics.md)

# PERF04-BP01 네트워킹이 성능에 미치는 영향 파악
<a name="perf_networking_understand_how_networking_impacts_performance"></a>

 네트워크 관련 의사 결정이 워크로드에 미치는 영향을 분석하고 이해하여 효율적인 성능과 향상된 사용자 경험을 제공합니다. 

 **일반적인 안티 패턴:** 
+  모든 트래픽이 기존 데이터 센터를 통과합니다. 
+  클라우드 네이티브 네트워크 보안 도구를 사용하는 대신 중앙 방화벽을 통해 모든 트래픽을 라우팅합니다. 
+  실제 사용 요구 사항을 이해하지 않고 AWS Direct Connect 연결을 프로비저닝합니다. 
+  네트워킹 솔루션을 정의할 때 워크로드 특성과 암호화 오버헤드를 고려하지 않습니다. 
+  클라우드의 네트워킹 솔루션에 온프레미스 개념과 전략을 적용합니다. 

 **이 모범 사례 확립의 이점:** 네트워킹이 워크로드 성능에 미치는 영향을 이해하면 잠재적인 병목 현상을 식별하고, 사용자 경험을 개선하고, 신뢰성을 높이고, 워크로드 변화에 따라 운영 유지 관리 작업을 줄이는 데 도움이 됩니다. 

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

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

 네트워크는 애플리케이션 구성 요소, 클라우드 서비스, 엣지 네트워크 및 온프레미스 데이터 간의 연결을 담당하므로, 워크로드 성능에 큰 영향을 미칠 수 있습니다. 사용자 경험은 워크로드 성능 외에 네트워크 지연 시간, 대역폭, 프로토콜, 위치, 네트워크 정체, 지터, 처리량 및 라우팅 규칙에도 영향을 받습니다. 

 지연 시간, 패킷 크기, 라우팅 규칙, 프로토콜 및 지원 트래픽 패턴을 포함한 워크로드의 네트워킹 요구 사항 목록을 문서화합니다. 사용 가능한 네트워킹 솔루션을 검토하고 워크로드 네트워킹 특성을 충족하는 서비스를 파악합니다. 클라우드 기반 네트워크는 빠르게 재구축될 수 있으므로 성능 효율성을 개선하려면 네트워크 아키텍처를 지속적으로 변경해야 합니다. 

### 구현 단계:
<a name="implementation-steps"></a>

1.  네트워크 지연 시간, 대역폭, 프로토콜, 위치, 트래픽 패턴(급증 및 빈도), 처리량, 암호화, 검사 및 라우팅 규칙과 같은 지표를 포함한 네트워킹 성능 요구 사항을 정의하고 문서화하세요. 

1.  다음과 같은 주요 AWS 네트워킹 서비스에 대해 알아보세요. [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html), [AWS Direct Connect](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-direct-connect.html), [Elastic Load Balancing(ELB)](https://aws.amazon.com/elasticloadbalancing/)및 [Amazon Route 53](https://aws.amazon.com/r53/). 

1.  다음과 같은 주요 네트워킹 특성을 파악하세요.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_networking_understand_how_networking_impacts_performance.html)

1.  네트워크 성능을 벤치마크하고 테스트합니다. 

   1.  [벤치마크](https://aws.amazon.com/premiumsupport/knowledge-center/network-throughput-benchmark-linux-ec2/) 네트워크 처리량(인스턴스가 동일한 VPC에 있는 경우 일부 요인이 Amazon EC2 네트워크 성능에 영향을 미칠 수 있음) 동일한 VPC에 있는 Amazon EC2 Linux 인스턴스 간의 네트워크 대역폭을 측정합니다. 

   1.  부하 테스트를 [수행하여](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 네트워킹 솔루션과 옵션을 실험해 보세요. 

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

 **관련 문서:** 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+  [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Amazon EC2 인스턴스의 네트워크 성능 최적화](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [애플리케이션의 글로벌 네트워크 성능 향상](https://youtu.be/vNIALfLTW9M) 
+  [EC2 인스턴스 및 성능 최적화 모범 사례](https://youtu.be/W0PKclqP3U0) 
+  [Amazon EC2 인스턴스의 네트워크 성능 최적화](https://youtu.be/DWiwuYtIgu0) 
+  [Well-Architected Framework의 네트워킹 모범 사례 및 팁](https://youtu.be/wOMNpG49BeM) 
+  [대규모 마이그레이션의 AWS 네트워킹 모범 사례](https://youtu.be/qCQvwLBjcbs) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF04-BP02 사용 가능한 네트워킹 기능 평가
<a name="perf_networking_evaluate_networking_features"></a>

클라우드에서 성능을 높일 수 있는 네트워킹 기능을 평가합니다. 테스트, 지표 및 분석을 통해 이러한 기능의 영향을 측정할 수 있습니다. 예를 들어 지연 시간, 네트워크 거리 또는 지터를 줄이는 데 사용할 수 있는 네트워크 수준 기능을 활용합니다.

 **일반적인 안티 패턴:** 
+ 본사가 물리적으로 위치한 한 리전 내에 머무릅니다.
+ 트래픽 필터링에 보안 그룹 대신 방화벽을 사용합니다.
+ 보안 그룹, 엔드포인트 정책 및 기타 클라우드 네이티브 기능에 의존하지 않고 트래픽 검사를 위해 TLS를 중단합니다.
+ 보안 그룹 대신 서브넷 기반 조각화만 사용합니다.

 **이 모범 사례 확립의 이점:** 모든 서비스 기능 및 옵션을 평가하면 워크로드 성능을 개선하고 인프라 비용을 줄이고 워크로드를 유지 관리하는 데 필요한 작업을 줄이며 전반적인 보안 상태를 개선할 수 있습니다. 전 세계의 AWS 백본을 사용하여 고객에게 최상의 네트워킹 환경을 제공할 수 있습니다. 

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

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

 AWS다음과 같은 서비스를 제공합니다 [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 및 [Amazon CloudFront는](https://aws.amazon.com/cloudfront/) 네트워크 성능을 개선하는 데 도움이 될 수 있습니다. 하지만 대부분의 AWS 서비스는 [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 와 같은 제품 기능을 사용하여 네트워크 트래픽을 최적화합니다. 

 사용 가능한 네트워크 관련 구성 옵션과 이러한 옵션이 워크로드에 미치는 영향을 검토합니다. 성능 최적화는 이러한 옵션이 아키텍처와 상호 작용하는 방식과 측정된 성능 및 사용자 경험 모두에 미치는 영향을 이해하는 데 달려 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  워크로드 구성 요소 목록을 만듭니다. 
  +  통합 글로벌 네트워크를 구축할 때 조직의 네트워크를 구축, 관리 및 모니터링하는 데 [AWS 클라우드 WAN을](https://aws.amazon.com/cloud-wan/) 사용하는 것을 고려하세요. 
  +  글로벌 및 코어 네트워크 모니터링에 [Amazon CloudWatch Logs 지표를 이용하세요](https://docs.aws.amazon.com/network-manager/latest/tgwnm/monitoring-cloudwatch-metrics.html). 사용자의 디지털 경험을 식별하고, 이해하고, 개선하는 데 도움이 되는 인사이트를 제공하는 [Amazon CloudWatch RUM을](https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-cloudwatch-rum-applications-client-side-performance/)활용하세요. 
  +  AWS Network Manager를 사용하여 애플리케이션 성능이 [기본 AWS 네트워크의 성능과 어떤 관계가 있는지 파악할 수 있도록](https://aws.amazon.com/transit-gateway/network-manager/) AWS 리전와 가용 영역 및 각 가용 영역 간의 총 네트워크 지연 시간을 확인할 수 있습니다. 
  +  기존 구성 관리 데이터베이스(CMDB) 도구를 사용하거나 [AWS Config](https://aws.amazon.com/config/) 등과 같은 도구를 사용하여 워크로드 인벤토리 또는 구성 방식을 생성합니다. 
+  기존 워크로드인 경우에는 성능 지표의 벤치마크를 식별하고 문서화하여 병목 현상과 개선해야 할 부분에 집중적으로 살펴봅니다. 성능 관련 네트워킹 지표는 비즈니스 요구 사항 및 워크로드 특성을 기준으로 워크로드에 따라 다릅니다. 무엇보다 대역폭, 지연 시간, 패킷 손실, 지터 및 재전송 등과 같은 지표가 워크로드 검토에 중요할 수 있습니다. 
+  새로운 워크로드인 경우 [로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 를 수행하여 성능 병목 현상을 파악합니다. 
+  파악한 성능 병목 현상에 대해 솔루션의 구성 옵션을 검토하여 성능 개선 기회를 파악합니다. 다음과 같은 주요 네트워킹 옵션 및 기능을 확인해 보십시오.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_networking_evaluate_networking_features.html)

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

 **관련 문서:** 
+ [Amazon EBS - 최적화 인스턴스 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [Linux 기반 EC2 향상된 네트워킹 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html)
+ [Windows의 EC2 향상된 네트워킹 ](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html)
+ [EC2 배치 그룹 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
+ [Linux 인스턴스에서 Elastic Network Adapter(ENA)를 사용하여 향상된 네트워킹 활성화 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html)
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/)
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+ [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html)
+ [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html)
+ [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)

 **관련 동영상:** 
+ [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결](https://www.youtube.com/watch?v=eqW6CPb58gs)
+ [Amazon EC2 인스턴스의 네트워크 성능 최적화](https://www.youtube.com/watch?v=DWiwuYtIgu0)
+ [AWS Global Accelerator](https://www.youtube.com/watch?v=Docl4julOQw)

 **관련 예시:** 
+ [AWS Transit Gateway 및 확장 가능한 보안 솔루션 ](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions)
+ [AWS 네트워킹 워크숍](https://catalog.workshops.aws/networking/en-US)

# PERF04-BP03 워크로드에 적합한 전용 연결 또는 VPN 선택
<a name="perf_networking_choose_appropriate_dedicated_connectivity_or_vpn"></a>

 온프레미스 및 클라우드 리소스를 연결하는 데 하이브리드 연결이 필요한 경우 성능 요구 사항을 충족할 수 있는 충분한 대역폭을 프로비저닝해야 합니다. 하이브리드 워크로드에 대한 대역폭 및 지연 시간 요구 사항을 예측하십시오. 이 수치는 사이즈 요구 사항을 결정합니다. 

 **일반적인 안티 패턴:** 
+  네트워크 암호화 요구 사항에 대해서만 VPN 솔루션을 평가합니다. 
+  백업 또는 이중화된 연결 옵션은 평가하지 않습니다. 
+  모든 워크로드 요구 사항(암호화, 프로토콜, 대역폭 및 트래픽 요구 사항)을 식별할 수는 없습니다. 

 **이 모범 사례 확립의 이점:** 적절한 연결 솔루션을 선택하고 구성하면 워크로드의 안정성이 향상되고 성능이 극대화됩니다. 워크로드 요구 사항을 파악하고, 미리 계획하고, 하이브리드 솔루션을 평가하여 비용이 많이 드는 물리적 네트워크 변경과 운영 오버헤드를 최소화하는 동시에 가치 실현 시간을 단축할 수 있습니다. 

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

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

 대역폭 요구 사항을 기반으로 하이브리드 네트워킹 아키텍처를 개발합니다. [Direct Connect](https://aws.amazon.com/directconnect/) AWS로 온-프레미스 네트워크를 비공개로 연결할 수 있습니다. 일관된 성능을 달성하면서 고대역폭 그리고 짧은 지연 시간이 필요할 때 적합합니다. VPN 연결은 인터넷을 통해 보안 연결을 설정합니다. 임시 연결만 필요한 경우, 비용이 중요한 경우 또는 Direct Connect를 사용 시 복원력이 뛰어난 물리적 네트워크 연결이 설정되기를 기다리는 동안 비상용으로 사용됩니다. 

 대역폭 요구 사항이 높으면 여러 서비스 Direct Connect 또는 VPN 서비스를 고려할 수 있습니다. 트래픽은 서비스 간에 부하를 분산할 수 있지만 지연 시간과 대역폭 차이 때문에 Direct Connect와 VPN 간의 부하 분산을 권장하지 않습니다. 

### 구현 단계
<a name="implementation-steps"></a>

1.  기존 애플리케이션의 대역폭 및 지연 시간 요구 사항을 추정합니다. 

   1.  AWS로 이동하는 기존 앱의 경우 내부 네트워크 모니터링 시스템의 데이터를 활용합니다. 

   1.  모니터링 데이터가 없는 새로운 또는 기존 워크로드의 경우 제품 소유자에게 문의하여 적절한 성능 지표를 결정하고 우수한 사용자 경험을 제공합니다. 

1.  연결 옵션으로 전용 연결 또는 VPN을 선택합니다. 모든 워크로드 요구 사항(암호화, 대역폭 및 트래픽 요구)을 기반으로 AWS Direct Connect 또는 [Site-to-Site VPN을](https://aws.amazon.com/vpn/) (또는 둘 다) 선택할 수 있습니다. 다음 다이어그램은 적절한 연결 유형을 선택하는 데 도움이 됩니다. 

   1.  [AWS Direct Connect](https://aws.amazon.com/directconnect/) 전용 연결 또는 호스팅된 연결을 사용하여 50Mbps에서 최대 100Gbps까지 AWS 환경에 대한 전용 연결을 제공합니다. 이렇게 하면 지연 시간을 관리 및 제어하고 대역폭을 프로비저닝할 수 있으므로 워크로드를 다른 환경에 효율적으로 연결할 수 있습니다. AWS Direct Connect 파트너를 사용하면 여러 환경에 엔드 투 엔드로 연결할 수 있으며 일관된 성능을 갖춘 확장 네트워크를 제공할 수 있습니다. AWS는 기본 100Gbps, link aggregation group(LAG) 또는 BGP equal-cost multipath(ECMP)를 사용하여 확장된 Direct Connect 대역폭을 제공합니다. 

   1.  AWS [Site-to-Site VPN](https://aws.amazon.com/vpn/) 인터넷 프로토콜 보안(IPsec) 프로토콜을 지원하는 관리형 VPN 서비스를 제공합니다. VPN 연결이 생성되면 각 VPN 연결에는 고가용성을 위해 두 개의 터널이 포함됩니다. 

1.  AWS 설명서에 따라 적절한 연결 옵션을 선택하십시오. 

   1.  Direct Connect을 사용하기로 결정한 경우 연결에 적합한 대역폭을 선택하십시오. 

   1.  여러 위치에서 AWS Site-to-Site VPN을 사용하여 AWS 리전에 연결하는 경우에는 [가속화된 Site-to-Site VPN 연결을 사용해](https://docs.aws.amazon.com/vpn/latest/s2svpn/accelerated-vpn.html) 네트워크 성능을 개선하세요. 

   1.  네트워크 설계가 AWS Direct Connect를 통한 [IPSec VPN 연결로 구성된 경우,](https://aws.amazon.com/directconnect/)보안을 강화하고 세분화를 달성하기 위해 사설 IP VPN을 사용하는 것을 고려하세요. [AWS 사이트 간 사설 IP VPN은](https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-site-to-site-vpn-private-ip-vpns/) 전송 가상 인터페이스(VIF) 위에 배포됩니다. 

   1.  [AWS Direct Connect 사이트링크는](https://aws.amazon.com/blogs/aws/new-site-to-site-connectivity-with-aws-direct-connect-sitelink/) 가장 빠른 경로로 데이터를 전송하여 전 세계 데이터 센터 간에 지연 시간이 짧고 중복 연결을 만들어줍니다. [AWS 리전를 우회하는](https://aws.amazon.com/directconnect/locations/)AWS Direct Connect 위치. 

1.  프로덕션에 배포하기 전에 연결 설정을 확인하세요. 보안 및 성능 테스트를 수행하여 대역폭, 안정성, 지연 시간 및 규정 준수 요구 사항을 충족하는지 확인하세요. 

1.  연결 성능 및 사용량을 정기적으로 모니터링하고 필요한 경우 최적화하세요. 

![\[네트워킹에서 결정론적 성능이 필요한지 여부를 결정할 때 고려해야 하는 옵션을 설명하는 순서도.\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/images/deterministic-networking-flowchart.png)


 

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

 **관련 문서:** 
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [AWS의 네트워킹 제품 ](https://aws.amazon.com/products/networking/)
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+ [ Amazon Route 53에서 지연 시간 기반 라우팅으로 전환 ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html)
+ [ VPC 엔드포인트 ](https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html)
+  [Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 
+  [확장 가능하고 안전한 멀티 VPC AWS 네트워크 인프라 구축](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) 
+  [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 
+  [클라이언트 VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html) 

 **관련 동영상:** 
+ [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결(NET317-R1)) ](https://www.youtube.com/watch?v=eqW6CPb58gs)
+ [ Amazon EC2 인스턴스의 네트워크 성능 최적화 ](https://www.youtube.com/watch?v=DWiwuYtIgu0)
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 
+  [Direct Connect](https://www.youtube.com/watch?v=DXFooR95BYc&t=6s) 
+  [AWS Transit Gateway 연결](https://www.youtube.com/watch?v=_MPY_LHSKtM&t=491s) 
+  [VPN 솔루션](https://www.youtube.com/watch?v=qmKkbuS9gRs) 
+  [VPN 솔루션을 사용한 보안](https://www.youtube.com/watch?v=FrhVV9nG4UM) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF04-BP04 로드 밸런싱을 사용하여 여러 리소스에 트래픽을 분산합니다.
<a name="perf_networking_load_balancing_distribute_traffic"></a>

 클라우드의 탄력성을 워크로드에 활용할 수 있도록 여러 리소스 또는 서비스에 트래픽을 분산합니다. 로드 밸런싱을 사용하여 암호화 종료를 오프로드하면 성능과 신뢰성을 개선하고 트래픽을 효율적으로 관리 및 라우팅할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  로드 밸런서 유형을 선택할 때 워크로드 요구 사항을 고려하지 않습니다. 
+  성능 최적화 시 로드 밸런서 기능을 활용하지 않습니다. 
+  워크로드는 로드 밸런서 없이 인터넷에 직접 노출됩니다. 
+  기존 로드 밸런서를 통해 모든 인터넷 트래픽을 라우팅합니다. 
+  일반 TCP 로드 밸런싱을 사용하고 각 컴퓨팅 노드에서 SSL 암호화를 처리하도록 합니다. 

 **이 모범 사례 확립의 이점:** 로드 밸런서는 단일 가용 영역 또는 여러 가용 영역에서 애플리케이션 트래픽의 다양한 부하를 처리하고 고가용성, 자동 확장, 워크로드 활용도 향상을 지원합니다. 

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

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

 로드 밸런서는 워크로드의 진입점 역할을 하며 여기에서 트래픽을 컴퓨팅 인스턴스나 컨테이너와 같은 백엔드 대상으로 분산하여 사용률을 개선합니다. 

 아키텍처를 최적화하는 첫 번째 단계는 적절한 로드 밸런서 유형을 선택하는 것입니다. 먼저 프로토콜(예: TCP, HTTP, TLS 또는 WebSockets), 대상 유형(예: 인스턴스, 컨테이너 또는 서버리스), 애플리케이션 요구 사항(장기간 실행되는 연결, 사용자 인증 또는 고정성 등) 및 배치(예: 리전, 로컬 영역, Outpost 또는 영역 격리)와 같은 워크로드 특성을 나열해 봅니다. 

 AWS는 애플리케이션이 로드 밸런싱을 사용할 수 있도록 여러 모델을 제공합니다. [HTTP 및 HTTPS 트래픽을 로드 밸런싱하는 데 가장 적합한 Application Load Balancer는](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 마이크로서비스 및 컨테이너를 비롯한 최신 애플리케이션 아키텍처를 제공할 때 사용할 수 있는 고급 요청 라우팅 기능을 제공합니다. 

 [Network Load Balancer는](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 성능이 매우 우수해야 하는 TCP 트래픽 로드 밸런싱을 수행하려는 경우에 사용하면 가장 효율적입니다. 또한 지연 시간을 매우 짧게 유지하면서 초당 수백만 개의 요청을 처리할 수 있으며, 예상치 못한 휘발성 트래픽 패턴도 처리할 수 있도록 최적화되어 있습니다. 

 [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/) 이 제공하는 통합 인증서 관리 및 SSL/TLS 복호화를 활용하면 로드 밸런서의 SSL 설정을 중앙에서 유연하게 관리하고 CPU 집약적인 작업을 워크로드에서 오프로드할 수 있습니다. 

 적절한 로드 밸런서를 선택한 후 해당 기능을 활용하면 백엔드가 트래픽을 처리하는 데 필요한 노력을 줄일 수 있습니다. 

 예를 들어 Application Load Balancer(ALB)와 Network Load Balancer(NLB)를 모두 사용하면 SSL/TLS 암호화 오프로딩을 수행할 수 있습니다. 이를 통해 대상에서 완료되는 CPU 집약적 TLS 핸드셰이크를 방지하고 인증서 관리를 개선할 수 있습니다. 

 로드 밸런서에서 SSL/TLS 오프로딩을 구성하면 백엔드에 암호화되지 않은 트래픽을 전달하고 백엔드 리소스를 확보하고 클라이언트에 대한 응답 시간을 개선하는 동시에 클라이언트에서 들어오고 나가는 트래픽의 암호화를 담당하게 됩니다. 

 Application Load Balancer도 대상에서 지원할 필요 없이 HTTP2 트래픽을 처리할 수 있습니다. HTTP2가 TCP 연결을 보다 효율적으로 사용하므로 이렇게 간단한 결정이 애플리케이션 응답 시간을 개선할 수 있습니다. 

 아키텍처를 정의할 때 워크로드 지연 시간 요구 사항도 고려해야 합니다. 예를 들어 지연 시간에 민감한 애플리케이션이 있는 경우 지연 시간이 매우 짧은 Network Load Balancer를 사용하기로 결정할 수 있습니다. 또는 AWS Outposts 로컬 영역 또는 AWS Outposts에서 Application Load Balancer를 [활용하여 워크로드를](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 고객에게 더 가까이  [가져갈 수도 있습니다](https://aws.amazon.com/outposts/rack/). 

 지연 시간에 민감한 워크로드에 대한 또 다른 대응책은 교차 영역 로드 밸런싱입니다. 교차 영역 로드 밸런싱을 활용하면 각 로드 밸런서 노드를 사용하도록 설정된 모든 가용 영역의 등록된 대상에 트래픽을 분산합니다. 

 로드 밸런서와 통합된 Auto Scaling을 사용합니다. 성능 효율적인 시스템의 주요 측면 중 하나는 백엔드 리소스의 크기를 적절하게 조정하는 것과 관련이 있습니다. 이를 위해서는 백엔드 대상 리소스에 대한 로드 밸런서 통합을 활용할 수 있습니다. Auto Scaling 그룹과 로드 밸런서 통합을 사용하면 수신 트래픽에 대한 응답으로 필요에 따라 로드 밸런서에서 대상이 추가되거나 제거됩니다. 로드 밸런서는 컨테이너식 워크로드를 위해서 [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) 및 [Amazon EKS와](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) 통합할 수도 있습니다. 
+  [Amazon ECS - 서비스 로드 밸런싱](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) 
+  [Amazon EKS에서 애플리케이션 로드 밸런싱](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) 
+  [Amazon EKS에서 네트워크 로드 밸런싱](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html) 

### 구현 단계
<a name="implementation-steps"></a>
+  뛰어난 볼륨, 가용성 및 애플리케이션 확장성을 포함한 로드 밸런싱 요구 사항을 정의하세요. 
+  애플리케이션에 적합한 로드 밸런서 유형을 선택하세요. 
  +  HTTP/HTTPS 워크로드에 Application Load Balancer를 사용합니다. 
  +  TCP 또는 UDP에서 실행되는 비 HTTP 워크로드에 Network Load Balancer를 사용합니다. 
  +  두 제품의 기능을 모두 활용하려는 경우([NLB의 타겟으로서의 ALB](https://aws.amazon.com/blogs/networking-and-content-delivery/application-load-balancer-type-target-group-for-network-load-balancer/)) 두 가지를 조합하여 사용하세요. 예를 들어 ALB의 HTTP 헤더 기반 라우팅과 함께 NLB의 고정 IP를 사용하려는 경우 또는 HTTP 워크로드를 [AWS PrivateLink에 노출하려는 경우 이를 수행할 수 있습니다](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html). 
  +  로드 밸런서의 전체 비교를 위해서 [ELB 제품 비교를 참조하세요](https://aws.amazon.com/elasticloadbalancing/features/). 
+  가능하면 SSL/TLS 오프로딩을 사용하세요. 
  +  HTTPS/TLS 리스너를 AWS Certificate Manager과 통합된 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html) 및 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html) 모두 사용하여 [구성하세요](https://aws.amazon.com/certificate-manager/). 
  +  일부 워크로드는 규정 준수상의 이유로 엔드 투 엔드 암호화가 필요할 수 있습니다. 이 경우 대상에서 암호화를 사용하도록 설정해야 합니다. 
  +  보안 모범 사례는 다음을 참조하세요. [SEC09-BP02 전송 중 데이터 암호화 적용](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_protect_data_transit_encrypt.html). 
+  적절한 라우팅 알고리즘(ALB만)을 선택합니다. 
  +  라우팅 알고리즘에 따라 백엔드 대상에서의 활용도 및 성능에 미치는 영향에 차이를 만들 수 있습니다. 예를 들어, ALB는 다음을 제공합니다. [라우팅 알고리즘을 위한 두 가지 옵션](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm): 
  +  **가장 적은 미해결 요청:** 애플리케이션에 대한 요청의 복잡성이 다양하거나 대상의 처리 능력이 다양한 경우 백엔드 대상에 로드를 더 효율적으로 분산하기 위해 사용합니다. 
  +  **라운드 로빈:** 요청과 대상이 유사하거나 대상 간에 요청을 균등하게 분산해야 하는 경우에 사용합니다. 
+  교차 영역 또는 영역 격리를 고려합니다. 
  +  지연 시간 개선 및 영역 장애 도메인을 위해 교차 영역 끔(영역 격리)을 사용합니다. NLB에서는 기본적으로 꺼져 있습니다. [ALB는 대상 그룹별로 끌 수 있습니다](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/disable-cross-zone.html). 
  +  가용성과 유연성 향상을 위해 교차 영역을 사용합니다. 기본적으로 ALB에서는 교차 영역이 켜져 있습니다. [NLB는 대상 그룹별로 켤 수 있습니다](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-cross-zone.html). 
+  HTTP 워크로드(ALB만)에 대해 HTTP 연결 유지를 활성화합니다. 이 기능을 사용하면 로드 밸런서는 연결 유지 제한 시간이 만료될 때까지 백엔드 연결을 재사용하여 HTTP 요청 및 응답 시간을 개선하고 백엔드 대상의 리소스 사용률을 줄일 수 있습니다. Apache 및 Nginx에서 이 작업을 수행하는 방법에 대한 자세한 내용은 다음을 참조하세요. [Apache 또는 NGINX를 ELB의 백엔드 서버로 사용하기 위한 최적의 설정은 무엇인가요?](https://aws.amazon.com/premiumsupport/knowledge-center/apache-backend-elb/) 
+  로드 밸런서에 대한 모니터링을 켜세요. 
  +  다음을 위한 액세스 로그를 켜세요. [HTTP 및 HTTPS 트래픽을 로드 밸런싱하는 데 가장 적합한 Application Load Balancer는](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/enable-access-logging.html) 및 [Network Load Balancer는](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html). 
  +  ALB에 대해 고려해야 할 주요 필드는 `request_processing_time`, `request_processing_time`및 `response_processing_time`. 
  +  NLB에 대해 고려해야 할 주요 필드는 `connection_time` 및 `tls_handshake_time`. 
  +  필요할 때 로그를 쿼리할 준비합니다. Amazon Athena를 사용하여 [ALB 로그](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html) 및 [NLB 로그 모두 쿼리할 수 있습니다](https://docs.aws.amazon.com/athena/latest/ug/networkloadbalancer-classic-logs.html). 
  +  성능 관련 지표에 대한 경보, [`예를 들어 ALB를 위한 TargetResponseTime을` 생성합니다](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html). 

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

 **관련 문서:** 
+  [ELB 제품 비교를 참조하세요 ](https://aws.amazon.com/elasticloadbalancing/features/) 
+  [AWS 글로벌 인프라 ](https://aws.amazon.com/about-aws/global-infrastructure/) 
+  [가용 영역 선호도를 사용하여 성능 개선 및 비용 절감 ](https://aws.amazon.com/blogs/architecture/improving-performance-and-reducing-cost-using-availability-zone-affinity/) 
+  [Amazon Athena를 사용한 단계별 로그 분석 ](https://github.com/aws/elastic-load-balancing-tools/tree/master/amazon-athena-for-elb) 
+  [Application Load Balancer 로그 쿼리](https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html) 
+  [Application Load Balancers 모니터링](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-monitoring.html) 
+  [Network Load Balancer 모니터링](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-monitoring.html) 
+  [Elastic Load Balancing을 사용하여 Auto Scaling 그룹의 인스턴스 간에 트래픽 분산](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) 

 **관련 동영상:** 
+  [AWS re:Invent 2018: Elastic Load Balancing: Deep Dive and Best Practices](https://www.youtube.com/watch?v=VIgAT7vjol8) 
+  [AWS re:Invent 2021 - How to choose the right load balancer for your AWS workloads ](https://www.youtube.com/watch?v=p0YZBF03r5A) 
+  [AWS re:Inforce 2022 - How to use Elastic Load Balancing to enhance your security posture at scale](https://www.youtube.com/watch?v=YhNc5VSzOGQ) 
+  [AWS re:Invent 2019: Get the most from Elastic Load Balancing for different workloads](https://www.youtube.com/watch?v=HKh54BkaOK0) 

 **관련 예시:** 
+  [Amazon Athena를 사용한 로그 분석을 위한 CDK 및 CloudFormation 샘플 ](https://github.com/aws/elastic-load-balancing-tools/tree/master/log-analysis-elb-cdk-cf-template) 

# PERF04-BP05 성능을 개선할 수 있는 네트워크 프로토콜 선택
<a name="perf_networking_choose_network_protocols_improve_performance"></a>

 워크로드 성능에 미치는 영향을 기준으로 시스템과 네트워크 간의 통신에 사용할 프로토콜을 결정합니다. 

 원하는 처리량을 달성하려면 지연 시간과 대역폭 간의 관계를 고려해야 합니다. 파일 전송이 전송 제어 프로토콜(TCP)을 사용하는 경우 지연 시간이 길수록 전체 처리량이 줄어들 가능성이 높습니다. 이 문제는 TCP 튜닝 및 최적화된 전송 프로토콜을 사용하여 해결되지만 한 가지 해결 방법은 사용자 데이터그램 프로토콜(UDP)을 사용하는 것입니다. 

 **일반적인 안티 패턴:** 
+  성능 요구 사항과 관계없이 모든 워크로드에 TCP를 사용합니다. 

 **이 모범 사례 확립의 이점:** 사용자와 워크로드 구성 요소 간의 통신에 적절한 프로토콜이 사용되는지 확인하면 애플리케이션의 전반적인 사용자 경험을 개선하는 데 도움이 됩니다. 예를 들어, 연결 없는 UDP는 빠른 속도를 허용하지만 재전송 기능 또는 높은 안정성을 제공하지 않습니다. TCP는 모든 기능을 갖춘 프로토콜이지만 패킷 처리에 더 많은 오버헤드가 필요합니다. 

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

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

 애플리케이션에 맞는 다양한 프로토콜을 선택할 수 있고 이 분야에 대한 전문 지식이 있다면 다른 프로토콜을 사용하여 애플리케이션과 최종 사용자 경험을 최적화하세요. 이 접근 방식은 상당히 어려우므로 먼저 다른 방법으로 애플리케이션을 최적화한 경우에만 시도해야 합니다. 

 워크로드의 성능을 향상하기 위한 주요 고려 사항은 지연 시간 및 처리량 요구 사항을 이해한 다음 성능을 최적화하는 네트워크 프로토콜을 선택하는 것입니다. 

 **TCP 사용을 고려해야 할 시기** 

 TCP는 신뢰할 수 있는 데이터 전달을 제공하며 신뢰성과 보장된 데이터 전달이 중요한 워크로드 구성 요소 간의 통신에 사용될 수 있습니다. 많은 웹 기반 애플리케이션은 HTTP 및 HTTPS와 같은 TCP 기반 프로토콜을 사용하여 구성 요소 간 통신하기 위한 TCP 소켓을 열어줍니다. 이메일 및 파일 데이터 전송은 TCP를 사용하는 일반적인 애플리케이션입니다. TCP는 애플리케이션 구성 요소 간의 간단하고 안정적인 전송 메커니즘이기 때문입니다. TCP와 함께 TLS를 사용하면 통신에 약간의 오버헤드가 추가되어 대기 시간이 증가하고 처리량이 감소할 수 있지만 보안상의 이점이 있습니다. 오버헤드는 주로 완료하는 데 여러 번의 왕복이 필요할 수 있는 핸드셰이크 프로세스의 추가 오버헤드에서 발생합니다. 핸드셰이크가 완료되면 데이터 암호화 및 복호화의 오버헤드는 비교적 작습니다. 

 **UDP 사용을 고려해야 할 시기** 

 UDP는 연결이 필요 없는 프로토콜이므로 로그, 모니터링 및 VOIP 데이터와 같이 빠르고 효율적인 전송이 필요한 애플리케이션에 적합합니다. 또한 워크로드의 최적 성능을 보장하기 위해 많은 클라이언트의 작은 쿼리에 응답하는 워크로드 구성 요소가 있는 경우 UDP를 사용하는 것이 좋습니다. 데이터그램 전송 계층 보안(DTLS)은 전송 계층 보안 전송 계층 보안(TLS)과 동일한 UDP입니다. UDP와 함께 DTLS를 사용하면 핸드셰이크 프로세스가 간소화되므로 오버헤드가가 데이터를 암호화하고 복호화할 때 발생합니다. DTLS는 또한 보안 파라미터를 나타내고 변조를 감지하기 위한 추가 필드를 포함하기 때문에 UDP 패킷에 소량의 오버헤드를 추가합니다. 

 **SRD 사용을 고려해야 할 시기** 

 Scalable Reliable Datagram(SRD)은 여러 경로에 걸쳐 트래픽을 로드 밸런싱할 수 있어 고처리량 워크로드에 최적화된 네트워크 전송 프로토콜이며 패킷 감소 또는 연결 장애에서 빠르게 복구합니다. 따라서 SRD는 컴퓨팅 노드 간에 처리량이 많고 지연 시간이 짧은 통신이 필요한 고성능 컴퓨팅(HPC) 워크로드에 가장 효과적입니다. 여기에는 노드 간에 대량의 데이터 전송을 수반하는 시뮬레이션, 모델링 및 데이터 분석과 같은 병렬 처리 작업이 포함될 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>

1.  최대 트래픽을 생성하거나 예상 증가율로 워크로드를 테스트할 수 있도록 [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 및 [AWS Transfer Family](https://aws.amazon.com/aws-transfer-family/) 서비스를 사용하여 온라인 파일 전송 애플리케이션의 처리량을 향상합니다. AWS Global Accelerator 서비스를 사용하면 클라이언트 디바이스와 AWS 워크로드 간에 지연 시간을 단축하는 데 도움이 됩니다. AWS Transfer Family를 사용하면 Secure Shell File Transfer Protocol(SFTP) 및 File Transfer Protocol over SSL(FTPS)과 같은 TCP 기반 프로토콜을 사용하여 파일 전송을 AWS 스토리지 서비스로 안전하게 확장하고 관리할 수 있습니다. 

1.  네트워크 지연 시간을 사용하여 TCP가 워크로드 구성 요소 간의 통신에 적합한지 확인합니다. 클라이언트 애플리케이션과 서버 간의 네트워크 지연 시간이 길면 TCP 3방향 핸드셰이크에 시간이 걸릴 수 있습니다. 그렇게 되면 애플리케이션의 응답성에 영향을 줄 수 있습니다. 첫 번째 바이트까지의 시간(TTFB) 및 왕복 시간(RTT)과 같은 지표를 사용하여 네트워크 지연 시간을 측정할 수 있습니다. 워크로드가 사용자에게 동적 콘텐츠를 제공하는 경우, 각 클라이언트 요청을 느리게 하는 연결 설정 시간을 제거하기 위해 동적 콘텐츠에 대한 각 원본에 영구 연결을 설정하는 [Amazon CloudFront를](https://aws.amazon.com/cloudfront/)사용하는 것이 좋습니다. 

1.  TCP 또는 UDP와 함께 TLS를 사용하면 암호화 및 복호화의 영향으로 인해 지연 시간이 증가하고 워크로드에 대한 처리량이 감소합니다. 이러한 워크로드의 경우, 백엔드 인스턴스가 SSL/TLS 암호화 및 복호화 프로세스를 처리하는 대신 로드 밸런서가 처리하도록 허용하여 워크로드 성능을 개선하기 위해 [Elastic Load Balancing에서](https://aws.amazon.com/elasticloadbalancing/) SSL/TLS 오프로딩을 고려하세요. 이를 통해 백엔드 인스턴스의 CPU 사용률을 줄여 성능을 향상시키고 용량을 늘릴 수 있습니다. 

1.  워크로드의 성능과 신뢰성을 개선할 수 있도록 [Network Load Balancer(NLB)를](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) 사용하여 인증 및 권한 부여, 로깅, DNS, IoT, 스트리밍 미디어 등 UDP 프로토콜에 의존하는 서비스를 배포하세요. NLB는 여러 대상에 걸쳐 수신되는 UDP 트래픽을 배포하여 워크로드를 수평 확장하고 용량을 늘리고 단일 대상의 오버헤드를 줄일 수 있습니다. 

1.  고성능 컴퓨팅(HPC) 워크로드의 경우 SRD 프로토콜을 사용하는 [Elastic Network Adapter(ENA) Express](https://aws.amazon.com/about-aws/whats-new/2022/11/elastic-network-adapter-ena-express-amazon-ec2-instances/) 기능을 사용하여 EC2 인스턴스 간의 네트워크 트래픽에 대해 더 높은 단일 흐름 대역폭(EC2)과 더 짧은 꼬리 지연 시간(25 백분위수)을 제공하여 네트워크 성능을 개선하는 것이 좋습니다. 

1.  최대 트래픽을 생성하거나 예상 증가율로 워크로드를 테스트할 수 있도록 [Application Load Balancer(ALB)를](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 사용하여 워크로드 구성 요소 간에 또는 gRPC 지원 클라이언트와 서비스 간에 gRPC(원격 프로시저 호출) 트래픽을 라우팅하고 부하를 분산합니다. gRPC는 전송에 TCP 기반 HTTP/2 프로토콜을 사용하며 더 가벼운 네트워크 공간, 압축, 효율적인 이진 직렬화, 다양한 언어 지원, 양방향 스트리밍과 같은 성능상의 이점을 제공합니다. 

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

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+  [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Amazon EC2 인스턴스의 네트워크 성능 최적화](https://www.youtube.com/watch?v=DWiwuYtIgu0) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF04-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택
<a name="perf_networking_choose_workload_location_network_requirements"></a>

리소스 배치 옵션을 평가하여 네트워크 지연 시간을 줄이고 처리량을 향상시켜 페이지 로드 및 데이터 전송 시간을 줄임으로써 최적의 사용자 경험을 제공합니다.

 **일반적인 안티 패턴:** 
+  모든 워크로드 리소스를 하나의 지리적 위치로 통합합니다. 
+  워크로드 최종 사용자가 아니라 본인과 가장 가까운 리전을 선택했습니다. 

 **이 모범 사례 확립의 이점:** 사용자 경험은 사용자와 애플리케이션 간의 지연 시간에 크게 영향을 받습니다. 적절한 AWS 리전와 AWS 사설 글로벌 네트워크를 사용하면 대기 시간을 줄이고 원격 사용자에게 더 나은 경험을 제공할 수 있습니다. 

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

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

 Amazon EC2 인스턴스와 같은 리소스는 [AWS 리전](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [AWS 로컬 영역과,](https://aws.amazon.com/about-aws/global-infrastructure/localzones/), [AWS Outposts](https://aws.amazon.com/outposts/)또는 [AWS Wavelength](https://aws.amazon.com/wavelength/) 영역에 배치됩니다. 이 위치를 선택하면 주어진 사용자 위치의 네트워크 지연 시간 및 처리량에 영향을 미칩니다. 다음과 같은 엣지 서비스 [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 및 [AWS Global Accelerator는](https://aws.amazon.com/global-accelerator/) 엣지 로케이션의 콘텐츠를 캐싱하거나 AWS 글로벌 네트워크를 통해 워크로드에 대한 최적의 경로를 사용자에게 제공하여 네트워크 성능을 향상시키는 데 사용될 수 있습니다. 

 Amazon EC2는 네트워킹용 배치 그룹을 제공합니다. 배치 그룹은 지연 시간을 줄이기 위한 인스턴스의 논리적 그룹입니다. 지원되는 인스턴스 유형이 포함된 배치 그룹과 ENA(Elastic Network Adapter)를 사용하면 지연 시간이 짧고 지터가 감소된 25Gbps 네트워크에 워크로드를 연결할 수 있습니다. 네트워크 지연 시간이 짧거나 처리량이 높은 경우 또는 두 조건을 모두 충족하는 경우 성능이 개선되는 워크로드에는 배치 그룹을 사용하는 것이 좋습니다. 

 지연 시간에 민감한 서비스는 다음과 같은 AWS 글로벌 네트워크를 사용하여 엣지 로케이션에서 제공됩니다. [Amazon CloudFront](https://aws.amazon.com/cloudfront/). 이러한 엣지 로케이션에서는 보통 콘텐츠 전송 네트워크(CDN) 및 도메인 이름 시스템(DNS)과 같은 서비스를 제공합니다. 엣지에서 이러한 서비스를 사용함으로써 워크로드 지연 시간을 짧게 유지하면서 콘텐츠 또는 DNS 확인 요청에 응답할 수 있습니다. 이러한 서비스는 지리적 콘텐츠 타게팅(최종 사용자의 위치를 기준으로 각기 다른 콘텐츠 제공) 등의 지리적 서비스나 최종 사용자를 가장 가까운 리전으로 라우팅하는 지연 시간 기반 라우팅(지연 시간이 최소화됨)도 제공합니다. 

 지연 시간을 줄이고 콘텐츠 캐싱을 활성화하려면 엣지 서비스를 사용합니다. 이러한 방식의 이점을 최대한 활용하려면 DNS 및 HTTP/HTTPS용으로 캐시 제어를 올바르게 구성하세요. 

### 구현 단계
<a name="implementation-steps"></a>
+  네트워크 인터페이스를 오가는 IP 트래픽에 대한 정보를 캡처합니다. 
  + [ VPC 흐름 로그를 사용한 IP 트래픽 로깅 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)
  + [AWS Global Accelerator에 클라이언트 IP 주소가 보존되는 방식 ](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.headers.html)
+  워크로드의 네트워크 액세스 패턴을 분석하여 사용자가 애플리케이션을 사용하는 방법을 식별합니다. 
  +  예를 들어 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 및 [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)같은 모니터링 도구를 사용하여 네트워크 활동에 대한 데이터를 수집합니다. 
  +  데이터를 분석하여 네트워크 액세스 패턴을 식별합니다. 
+  다음과 같은 주요 요소를 토대로 하여 워크로드 배포용 리전을 선택합니다. 
  +  **데이터 위치:** 데이터를 많이 사용하는 애플리케이션의 경우(예: 빅 데이터 및 기계 학습) 애플리케이션 코드는 최대한 데이터와 가까운 위치에서 실행되어야 합니다. 
  +  **사용자의 위치**: 사용자가 직접 사용하는 애플리케이션의 경우 워크로드의 사용자와 가까운 리전(또는 리전들)을 선택합니다. 
  +  **기타 제약 조건**: 워크로드에 대한 지역을 선택할 때 고려해야 할 사항에 설명된 대로 [보안 및 규정 준수 등의 제약을 고려해야 합니다](https://aws.amazon.com/blogs/architecture/what-to-consider-when-selecting-a-region-for-your-workloads/)
+  AWS 로컬 영역을 [사용하여](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 비디오 렌더링과 같은 워크로드를 실행합니다. 로컬 영역에서는 최종 사용자와 가까운 위치에 컴퓨팅 및 스토리지 리소스를 배치함으로써 이점을 얻을 수 있습니다. 
+  온프레미스에 남아 있어야 하고 해당 워크로드를 [AWS의](https://aws.amazon.com/outposts/) 나머지 워크로드와 함께 원활하게 실행하려는 워크로드에 대해 AWS Outposts를 사용합니다. 
+  고해상도 라이브 비디오 스트리밍, 고음질 오디오 및 증강 현실/가상 현실(AR/VR)과 같은 5G 디바이스용 애플리케이션은 지연 시간이 매우 짧아야 합니다. 이러한 응용 프로그램의 경우 [AWS Wavelength을 고려하세요](https://aws.amazon.com/wavelength/). AWS Wavelength는 5G 네트워크 내에 AWS 컴퓨팅 및 스토리지 서비스를 포함하여 지연 시간이 짧은 애플리케이션을 개발, 배포 및 확장하기 위한 모바일 엣지 컴퓨팅 인프라를 제공합니다. 
+  자주 사용되는 자산에 로컬 캐싱 또는 [AWS 캐싱 솔루션을](https://aws.amazon.com/caching/aws-caching/) 사용하여 성능을 개선하고 데이터 이동을 줄이며 환경에 미치는 영향을 줄입니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_networking_choose_workload_location_network_requirements.html)
+  워크로드 사용자에게 더 가까운 위치에서 코드를 실행할 수 있는 서비스를 사용합니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_networking_choose_workload_location_network_requirements.html)
+  일부 애플리케이션은 첫 번째 바이트까지의 지연 시간과 지터를 줄이고 처리량을 늘려 고정 진입 지점 또는 그 이상의 성능이 필요합니다. 이러한 애플리케이션은 엣지 로케이션에서 정적 애니캐스트 IP 주소 및 TCP 종료를 제공하는 네트워킹 서비스를 활용할 수 있습니다. [AWS Global Accelerator은](https://aws.amazon.com/global-accelerator/) 애플리케이션의 성능을 최대 60%까지 향상시키고 다중 리전 아키텍처에 빠른 장애 조치를 제공합니다. AWS Global Accelerator는 하나 이상의 AWS 리전에서 호스팅되는 애플리케이션의 고정 진입 지점으로 사용되는 정적 애니캐스트 IP 주소를 제공합니다. 이 IP 주소를 사용하면 가능한 한 사용자와 가까운 AWS 글로벌 네트워크으로 트래픽이 유입될 수 있습니다. AWS Global Accelerator는 클라이언트와 클라이언트와 가장 가까운 AWS 엣지 로케이션 간에 TCP 연결을 설정하여 초기 연결 설정 시간을 줄입니다. AWS Global Accelerator를 검토하여 TCP/UDP 워크로드의 성능을 향상시키고 다중 리전 아키텍처에 빠른 장애 조치를 제공합니다. 

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

 **관련 모범 사례:** 
+ [ COST07-BP02 비용을 기준으로 리전 구현 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_pricing_model_region_cost.html)
+ [ COST08-BP03 데이터 전송 비용을 줄이기 위한 서비스 구현 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_data_transfer_implement_services.html)
+ [ REL10-BP01 워크로드를 여러 위치에 배포 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_multiaz_region_system.html)
+ [ REL10-BP02 다중 위치 배포에 적합한 위치 선택 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_fault_isolation_select_location.html)
+ [ SUS01-BP01 비즈니스 요구 사항과 지속 가능성 목표를 기준으로 리전 선택 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_region_a2.html)
+ [ SUS02-BP04 네트워킹 요구 사항에 따라 워크로드의 지리적 배치 최적화 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_user_a5.html)
+ [ SUS04-BP07 네트워크 간 데이터 이동 최소화 ](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_data_a8.html)

 **관련 문서:** 
+ [AWS 글로벌 인프라 ](https://aws.amazon.com/about-aws/global-infrastructure/)
+ [AWS 로컬 영역 및 AWS Outposts, 엣지 워크로드에 적합한 기술 선택 ](https://aws.amazon.com/blogs/compute/aws-local-zones-and-aws-outposts-choosing-the-right-technology-for-your-edge-workload/)
+ [ 배치 그룹 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
+ [AWS 로컬 영역 ](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)
+ [AWS의 ](https://aws.amazon.com/outposts/)
+ [AWS Wavelength을 고려하세요 ](https://aws.amazon.com/wavelength/)
+ [ Amazon CloudFront ](https://aws.amazon.com/cloudfront/)
+ [AWS Global Accelerator은 ](https://aws.amazon.com/global-accelerator/)
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/)
+ [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/site-to-site-vpn/)
+ [ Amazon Route 53 ](https://aws.amazon.com/route53/)

 **관련 동영상:** 
+ [AWS Local Zones Explainer Video ](https://www.youtube.com/watch?v=JHt-D4_zh7w)
+ [AWS Outposts: Overview and How it Works ](https://www.youtube.com/watch?v=ppG2FFB0mMQ)
+ [AWS re:Invent 2021 - AWS Outposts: Bringing the AWS experience on premises ](https://www.youtube.com/watch?v=FxVF6A22498)
+ [AWS re:Invent 2020: AWS Wavelength: Run apps with ultra-low latency at 5G edge ](https://www.youtube.com/watch?v=AQ-GbAFDvpM)
+ [AWS re:Invent 2022 - AWS Local Zones: Building applications for a distributed edge ](https://www.youtube.com/watch?v=bDnh_d-slhw)
+ [AWS re:Invent 2021 - Building low-latency websites with Amazon CloudFront ](https://www.youtube.com/watch?v=9npcOZ1PP_c)
+ [AWS re:Invent 2022 - Improve performance and availability with AWS Global Accelerator](https://www.youtube.com/watch?v=s5sjsdDC0Lg)
+ [AWS re:Invent 2022 - Build your global wide area network using AWS](https://www.youtube.com/watch?v=flBieylTwvI)
+ [AWS re:Invent 2020: Global traffic management with Amazon Route 53 ](https://www.youtube.com/watch?v=E33dA6n9O7I)

 **관련 예시:** 
+ [AWS Global Accelerator 워크숍 ](https://catalog.us-east-1.prod.workshops.aws/workshops/effb1517-b193-4c59-8da5-ce2abdb0b656/en-US)
+ [ 에지 함수를 사용하여 다시 작성 및 리디렉션 처리 ](https://catalog.us-east-1.prod.workshops.aws/workshops/814dcdac-c2ad-4386-98d5-27d37bb77766/en-US)

# PERF04-BP07 지표를 기준으로 네트워크 구성 최적화
<a name="perf_networking_optimize_network_configuration_based_on_metrics"></a>

 수집 및 분석된 데이터가 제공하는 정보를 사용하여 네트워크 구성 최적화를 결정합니다. 

 **일반적인 안티 패턴:** 
+  모든 성능 관련 문제가 애플리케이션 관련 문제라고 가정합니다. 
+  워크로드를 배포한 위치와 가까운 위치에서만 네트워크 성능을 테스트합니다. 
+  모든 네트워크 서비스에 기본 구성을 사용합니다. 
+  충분한 용량을 제공하려고 네트워크 리소스를 과도하게 프로비저닝합니다. 

 **이 모범 사례 확립의 이점:** AWS 네트워크와 관련된 필수 지표를 수집하고 네트워크 모니터링 도구 구현을 통해 네트워크 성능을 이해하고 네트워크 구성을 최적화할 수 있습니다. 

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

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

 VPC, 서브넷 또는 네트워크 인터페이스를 오가는 트래픽을 모니터링하는 것은 AWS 네트워크 리소스를 활용하는 방법과 네트워크 구성을 최적화하는 방법을 이해하는 데 중요합니다. 다음 AWS 네트워킹 도구를 사용하면 트래픽 사용, 네트워크 액세스 및 로그에 대한 정보를 추가로 검사할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  수집할 대기 시간 또는 패킷 손실과 같은 주요 성능 지표를 식별합니다. AWS는 이러한 지표를 수집하는 데 도움이 되는 몇 가지 도구를 제공합니다. 다음 도구를 사용하면 트래픽 사용, 네트워크 액세스 및 로그에 대한 정보를 추가로 검사할 수 있습니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_networking_optimize_network_configuration_based_on_metrics.html)
+  VPC 및 AWS Transit Gateway Flow Logs를 사용하여 상위 발화자와 애플리케이션 트래픽 패턴을 식별합니다. 
+  VPC, 서브넷, 라우팅을 포함한 현재 네트워크 아키텍처를 평가하고 최적화합니다. 예를 들어, 다양한 VPC 피어링 또는 AWS Transit Gateway이 아키텍처의 네트워킹을 개선하는 데 어떻게 도움이 되는지 평가할 수 있습니다. 
+  네트워크의 라우팅 경로를 평가하여 대상 간 최단 경로가 항상 사용되는지 확인하세요. 작업을 수행하는 데 Network Access Analyzer가 도움이 될 수 있습니다. 

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

 **관련 문서:** 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [퍼블릭 DNS 쿼리 로깅](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html) 
+  [IPAM란 무엇인가요?](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html) 
+  [Reachability Analyzer란 무엇인가요?](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 
+  [Network Access Analyzer란 무엇인가요?](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html) 
+  [VPC의 CloudWatch 지표](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cloudwatch.html) 
+  [Apache Parquet 형식의 VPC 흐름 로그를 사용하여 네트워크 분석을 위한 성능 최적화 및 비용 절감 ](https://aws.amazon.com/blogs/big-data/optimize-performance-and-reduce-costs-for-network-analytics-with-vpc-flow-logs-in-apache-parquet-format/) 
+  [Amazon CloudWatch 지표를 통한 글로벌 및 코어 네트워크 모니터링](https://docs.aws.amazon.com/vpc/latest/tgwnm/monitoring-cloudwatch-metrics.html) 
+  [지속적인 네트워크 트래픽 및 리소스 모니터링](https://docs.aws.amazon.com/whitepapers/latest/security-best-practices-for-manufacturing-ot/continuously-monitor-network-traffic-and-resources.html) 

 **관련 동영상:** 
+  [AWS Well-Architected Framework의 네트워킹 모범 사례 및 팁 ](https://www.youtube.com/watch?v=wOMNpG49BeM) 
+  [네트워크 트래픽 모니터링 및 문제 해결 ](https://www.youtube.com/watch?v=Ed09ReWRQXc) 

 **관련 예시:** 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 
+  [AWS 네트워크 모니터링](https://github.com/aws-samples/monitor-vpc-network-patterns) 

# 프로세스 및 문화
<a name="a-process-culture"></a>

# PERF 5. 조직의 관행과 문화가 워크로드의 성과 효율성에 어떻게 기여합니까?
<a name="perf-05"></a>

 워크로드를 설계할 때는 효율적인 고성능 클라우드 워크로드를 더 잘 실행하는 데 도움이 되도록 채택할 수 있는 원칙과 관행이 있습니다. 클라우드 워크로드의 성능 효율성을 촉진하는 문화를 채택하려면 다음과 같은 주요 원칙과 관행을 고려하십시오. 

**Topics**
+ [PERF05-BP01 워크로드 상태 및 성능을 측정하기 위한 핵심 성과 지표(KPI) 수립](perf_process_culture_establish_key_performance_indicators.md)
+ [PERF05-BP02 모니터링 솔루션을 사용하여 성능이 가장 중요한 영역 파악](perf_process_culture_use_monitoring_solutions.md)
+ [PERF05-BP03 워크로드 성능 개선을 위한 프로세스 정의](perf_process_culture_workload_performance.md)
+ [PERF05-BP04 워크로드 로드 테스트](perf_process_culture_load_test.md)
+ [PERF05-BP05 자동화를 사용하여 성능 관련 문제 사전 해결](perf_process_culture_automation_remediate_issues.md)
+ [PERF05-BP06 워크로드 및 서비스 최신 상태 유지](perf_process_culture_keep_workload_and_services_up_to_date.md)
+ [PERF05-BP07 정기적으로 지표 검토](perf_process_culture_review_metrics.md)

# PERF05-BP01 워크로드 상태 및 성능을 측정하기 위한 핵심 성과 지표(KPI) 수립
<a name="perf_process_culture_establish_key_performance_indicators"></a>

 워크로드 성능을 양적 및 질적으로 측정하는 KPI를 파악하십시오. KPI는 비즈니스 목표와 관련된 워크로드의 상태와 성과를 측정하는 데 도움이 됩니다. 

 **일반적인 안티 패턴:** 
+  시스템 수준 지표를 모니터링하여 워크로드에 대한 인사이트를 얻고, 해당 지표에 대한 비즈니스 영향을 이해하지 못합니다. 
+  KPI가 이미 표준 지표 데이터로 게시 및 공유되고 있다고 가정합니다. 
+  정량적이고 측정 가능한 KPI를 정의하지 않습니다. 
+  KPI를 비즈니스 목표나 전략에 맞추지 않습니다. 

 **이 모범 사례 확립의 이점:** 워크로드 상태 및 성능을 나타내는 특정 KPI를 식별하면 팀의 우선 순위를 조정하고 성공적인 비즈니스 결과를 정의하는 데 도움이 됩니다. 이러한 지표를 모든 부서와 공유하면 임계값, 기대치 및 비즈니스에 미치는 영향을 파악하고, 이에 따른 조정이 가능해집니다. 

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

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

 KPI를 통해 비즈니스 및 엔지니어링 팀은 목표 측정과 전략 그리고 이러한 요인을 조합하여 비즈니스 성과를 도출하는 방법에 대해 협의할 수 있습니다. 예를 들어, 웹 사이트 워크로드에는 전체 성능을 나타내는 지표로 페이지 로드 시간을 사용할 수 있습니다. 이 지표는 사용자 경험을 측정하는 여러 데이터 포인트 중 하나입니다. 페이지 로드 시간 임계값을 파악하는 것 말고도 이상적인 성능이 충족되지 않을 경우 예상되는 결과나 비즈니스 위험도 문서화해야 합니다. 페이지 로드 시간이 길면 최종 사용자에게 직접적인 영향을 주고, 사용자 경험 수준이 떨어져 고객이 이탈하는 결과가 발생할 수 있습니다. KPI 임계값을 정의할 때는 업계 벤치마크와 최종 사용자 기대치를 모두 고려해야 합니다. 가령 현재 업계 벤치마크에 따르면 웹 페이지를 2초 안에 로드하면 되지만 최종 사용자는 웹 페이지가 1초 안에 로드될 것으로 기대한다면, 이러한 데이터 포인트를 모두 고려해서 KPI를 설정해야 합니다. 

 팀은 참조용으로 실시간 세분화된 데이터와 기록 데이터를 사용하여 워크로드 KPI를 평가하고, KPI 데이터에 대한 지표 산술을 수행하여 운영 및 사용률 인사이트를 도출하는 대시보드를 만들어야 합니다. KPI는 문서화되어야 하며 비즈니스 목표와 전략을 지원하는 임계값을 포함해야 하고 모니터링 중인 지표에 매핑되어야 합니다. 비즈니스 목표, 전략 또는 최종 사용자 요구 사항이 변경되면 KPI를 다시 검토해야 합니다.   

## 구현 단계
<a name="implementation-steps"></a>

1.  주요 비즈니스 이해 관계자를 식별하고 문서화합니다. 

1.  이러한 이해 관계자들과 협력하여 워크로드의 목표를 정의하고 문서화합니다. 

1.  업계 모범 사례를 검토하여 워크로드 목표에 부합하는 관련 KPI를 파악합니다. 

1.  업계 모범 사례와 워크로드 목표를 사용하여 워크로드 KPI의 목표를 설정합니다. 이 정보를 사용하여 심각도 또는 경보 수준에 대한 KPI 임계값을 설정합니다. 

1.  KPI가 충족되지 않을 경우의 위험과 영향을 파악하고 문서화합니다. 

1.  KPI를 설정하는 데 도움이 될 수 있는 지표를 식별하고 문서화합니다. 

1.  예를 들어 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 또는 [AWS Config](https://aws.amazon.com/config/) 같은 모니터링 도구를 사용하여 지표를 수집하고 KPI를 측정합니다. 

1.  대시보드를 사용하여 KPI를 시각화하고 이해 관계자에게 전달합니다. 

1.  정기적으로 지표를 검토하고 분석하여 개선이 필요한 워크로드 영역을 파악합니다. 

1.  비즈니스 목표 또는 워크로드 성능이 변경되면 KPI를 다시 검토합니다. 

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

 **관련 문서:** 
+  [CloudWatch 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [모니터링, 로깅 및 성능 AWS Partner](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Amazon CloudWatch 대시보드 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html?ref=wellarchitected) 
+  [Quick KPI](https://docs.aws.amazon.com/quicksight/latest/user/kpi.html) 

 **관련 동영상:** 
+  [AWS re:Invent 2019: 첫 1,000만 사용자로 확장](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected) 
+  [혼란을 헤쳐 나가기: 운영 가시성을 확보하고 인사이트를 얻으세요](https://www.youtube.com/watch?v=nLYGbotqHd0&ref=wellarchitected) 
+  [모니터링 플랜 세우기](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 

 **관련 예시:** 
+  [Quick로 대시보드 생성](https://github.com/aws-samples/amazon-quicksight-sdk-proserve) 

# PERF05-BP02 모니터링 솔루션을 사용하여 성능이 가장 중요한 영역 파악
<a name="perf_process_culture_use_monitoring_solutions"></a>

 워크로드 성능을 개선하여 효율성을 높이고 고객 환경을 개선할 수 있는 영역을 파악합니다. 예를 들어, 많은 양의 고객 상호 작용이 수행되는 웹 사이트에서는 엣지 서비스를 사용하여 콘텐츠 전송 위치를 고객과 더 가까운 곳으로 이동하는 방법으로 성능을 개선할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  CPU 사용률 또는 메모리 압력과 같은 표준 컴퓨팅 지표로 성능 문제를 파악하기에 충분하다고 가정합니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 

 **이 모범 사례 확립의 이점:** 성능의 중요 영역을 이해함으로써 워크로드 소유자가 KPI를 모니터링하고 큰 영향을 미치는 개선에 우선순위를 지정할 수 있습니다. 

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

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

 트래픽 패턴, 지연 시간 및 중요한 성능 영역을 파악할 수 있는 엔드 투 엔드 추적을 설정합니다. 데이터 액세스 패턴을 모니터링하여 쿼리 속도가 느리거나 데이터 조각이 잘못되거나 잘못 분할된 데이터를 찾습니다. 로드 테스트 또는 모니터링을 사용하여 워크로드의 제한된 영역을 파악합니다. 

 아키텍처, 트래픽 패턴 및 데이터 액세스 패턴을 이해하여 성능 효율성이 향상되고 지연 시간 및 처리 시간을 파악합니다. 워크로드가 증가하면서 고객 환경에 영향을 미칠 수 있는 잠재적 병목 현상을 파악합니다. 이러한 영역을 조사한 후에는 이러한 성능 문제를 해결하기 위해 어떤 솔루션을 배포할 수 있는지 살펴보세요. 

### 구현 단계
<a name="implementation-steps"></a>

1.  엔드 투 엔드 모니터링을 설정하여 모든 워크로드 구성 요소 및 지표를 캡처합니다. 다음은 AWS에 대한 모니터링 솔루션의 예입니다.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/2023-10-03/framework/perf_process_culture_use_monitoring_solutions.html)

1.  지표를 생성하고 트래픽 패턴, 병목 현상 및 중요한 성능 영역을 파악하기 위한 테스트를 수행합니다. 다음은 테스트를 수행하는 방법에 대한 몇 가지 예입니다. 
   +  시간이 지남에 따라 일관된 지표를 생성하기 위해 Linux 크론 작업 또는 비율 표현식을 사용하여 프로그래밍 방식으로 브라우저 기반 사용자 활동을 모방하도록 [CloudWatch Synthetic Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 를 설정합니다. 
   +  최대 트래픽을 생성하거나 예상 증가율로 워크로드를 테스트할 수 있도록 [AWS 분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 솔루션을 사용합니다. 

1.  지표 및 텔레메트리를 평가하여 중요한 성능 영역을 파악합니다. 팀과 함께 이러한 영역을 검토하여 병목 현상을 방지할 수 있는 모니터링 및 솔루션을 논의합니다. 

1.  성능 개선을 실험하고 데이터로 이러한 변경 사항을 측정합니다. 예를 들어 [CloudWatch Evidently](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently.html) 를 사용하여 워크로드에 대한 새로운 개선 사항 및 성능 영향을 테스트합니다. 

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

 **관련 문서:** 
+  [Amazon Builders’ Library](https://aws.amazon.com/builders-library) 
+  [X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) 

 **관련 동영상:** 
+  [Amazon Builders' Library: 25년간의 Amazon 운영 우수성](https://www.youtube.com/watch?v=DSRhgBd_gtw) 
+  [Amazon CloudWatch Synthetics로 애플리케이션을 시각적으로 모니터링](https://www.youtube.com/watch?v=_PCs-ucZz7E) 

 **관련 예시:** 
+  [Amazon CloudWatch Synthetics를 활용한 페이지 로드 시간 측정](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM 웹 클라이언트](https://github.com/aws-observability/aws-rum-web) 
+  [X-Ray SDK for Node.js](https://github.com/aws/aws-xray-sdk-node) 
+  [X-Ray SDK for Python](https://github.com/aws/aws-xray-sdk-python) 
+  [X-Ray SDK for Java](https://github.com/aws/aws-xray-sdk-java) 
+  [X-Ray SDK for .Net](https://github.com/aws/aws-xray-sdk-dotnet) 
+  [X-Ray SDK for Ruby](https://github.com/aws/aws-xray-sdk-ruby) 
+  [X-Ray 대몬(daemon)](https://github.com/aws/aws-xray-daemon) 
+  [AWS에서의 분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF05-BP03 워크로드 성능 개선을 위한 프로세스 정의
<a name="perf_process_culture_workload_performance"></a>

 새 서비스, 설계 패턴, 리소스 유형 및 구성을 사용할 수 있게 되면 평가를 위한 프로세스를 정의해야 합니다. 예를 들어 새로운 인스턴스 오퍼링에서 기존 성능 테스트를 실행하여 워크로드 개선 가능성을 결정합니다. 

 **일반적인 안티 패턴:** 
+  시간이 지나면 현재 아키텍처가 정적 아키텍처가 되고 업데이트되지 않는다고 가정합니다. 
+  시간이 지나면 타당한 지표 없이 아키텍처 변경을 도입합니다. 

 **이 모범 사례 확립의 이점:** 아키텍처 변경을 위한 프로세스를 정의하면 수집된 데이터를 사용하여 워크로드 설계에 지속적으로 영향을 줄 수 있습니다. 

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

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

 워크로드의 성능에는 몇 가지 주요 제약 사항이 있습니다. 워크로드의 성능을 향상시킬 수 있는 혁신이 어떤 것인지 파악할 수 있도록 이러한 내용을 문서화합니다. 새 서비스나 기술을 사용할 수 있게 되면 해당 서비스/기술을 습득할 때 이 정보를 사용하여 제약 조건이나 병목 현상을 완화하는 방법을 파악합니다. 

 워크로드에 대한 주요 성능 제약 파악 워크로드의 성능 제약을 문서화하면 어떤 종류의 혁신이 워크로드의 성능을 개선할 수 있는지 알 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  다음에 설명된 대로 워크로드 성능 KPI를 확인하여 [PERF05-BP01 워크로드 상태 및 성능을 측정하기 위한 핵심 성과 지표(KPI) 수립](perf_process_culture_establish_key_performance_indicators.md) 워크로드의 기준을 정하세요. 
+  이때 [AWS 관찰성 도구](https://docs.aws.amazon.com/wellarchitected/latest/management-and-governance-guide/aws-observability-tools.html) 를 사용하여 성과 지표를 수집하고 KPI를 측정합니다. 
+  심층 분석을 수행하여 다음에 설명된 대로 워크로드에서 성능이 저조한 영역(예: 구성 및 애플리케이션 코드)을 식별합니다 [PERF05-BP02 모니터링 솔루션을 사용하여 성능이 가장 중요한 영역 파악](perf_process_culture_use_monitoring_solutions.md). 
+  분석 및 성능 도구를 사용하여 성능 최적화 전략을 파악합니다. 
+  샌드박스 또는 사전 프로덕션 환경을 사용하여 전략의 유효성을 검증합니다. 
+  프로덕션 환경에서 변경 사항을 구현하고 워크로드의 성능을 지속적으로 모니터링합니다. 
+  개선 사항을 문서화하고 이를 이해 관계자에게 전달합니다. 

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

 **관련 문서:** 
+  [AWS 블로그](https://aws.amazon.com/blogs/) 
+  [AWS의 새로운 소식](https://aws.amazon.com/new/?ref=wellarchitected) 

 **관련 동영상:** 
+  [AWS Events YouTube 채널](https://www.youtube.com/channel/UCdoadna9HFHsxXWhafhNvKw) 
+  [AWS Online Tech Talks YouTube 채널](https://www.youtube.com/user/AWSwebinars) 
+  [Amazon Web Services YouTube 채널](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 

 **관련 예시:** 
+  [AWS Github](https://github.com/aws) 
+  [AWS Skill Builder](https://explore.skillbuilder.aws/learn) 

# PERF05-BP04 워크로드 로드 테스트
<a name="perf_process_culture_load_test"></a>

 워크로드 로드 테스트를 통해 프로덕션 로드를 처리할 수 있는지 확인하고 성능 병목 현상을 파악할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  전체 워크로드가 아니라 워크로드의 개별 부분을 로드 테스트를 수행합니다. 
+  프로덕션 환경과 동일하지 않은 인프라에서 로드 테스트를 수행합니다. 
+  향후 문제가 발생할 수 있는 위치를 예측할 때 예상 로드에 대해서만 로드 테스트를 수행합니다. 
+  그리고 [Amazon EC2 테스트 정책](https://aws.amazon.com/ec2/testing/) 참고 및 시뮬레이션 이벤트 양식 제출 없이 로드 테스트를 수행합니다. 이는 서비스 거부 이벤트처럼 보이기 때문에 테스트 실행이 실패하게 됩니다. 

 **이 모범 사례 확립의 이점:** 로드 테스트에서 성능을 측정하면 로드 증가의 영향을 받게 될 위치를 알 수 있습니다. 이렇게 하면 워크로드에 영향을 미치기 전에 필요한 변경 사항을 예상할 수 있습니다. 

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

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

 클라우드에서의 로드 테스트는 예상되는 사용자 부하가 있는 실제 조건에서 클라우드 워크로드의 성능을 측정하는 프로세스입니다. 이 프로세스에는 프로덕션과 유사한 클라우드 환경을 프로비저닝하고, 로드 테스트 도구를 사용하여 로드를 생성하고, 지표를 분석하여 실제 워크로드 처리 능력을 평가하는 작업이 포함됩니다. 로드 테스트는 프로덕션 데이터의 통합 또는 제거 버전(민감한 정보 또는 식별 정보 제거)을 사용하여 실행되어야 합니다. 전송 파이프라인의 일부로 로드 테스트를 자동으로 수행하고 결과를 미리 정의된 KPI 및 임계값과 비교합니다. 이 프로세스를 통해 필요한 성능을 계속해서 달성할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  프로덕션 환경에 따라 테스트 환경을 설정합니다. AWS 서비스를 사용하면 프로덕션 규모의 환경을 실행하여 아키텍처를 테스트할 수 있습니다. 
+  워크로드에 적합한 로드 테스트 도구를 선택하고 구성합니다. 
+  로드 테스트 시나리오 및 파라미터(테스트 기간 및 사용자 수 등)를 정의합니다. 
+  규모에 맞게 테스트 시나리오를 수행합니다. AWS 클라우드를 활용하여 워크로드를 테스트하여 확장에 실패하거나 비선형적인 방식으로 확장되는 부분을 발견하세요. 예를 들어, 스팟 인스턴스를 사용하여 저렴한 비용으로 로드를 생성하고 프로덕션 환경에서 발생하기 전에 병목 현상을 발견할 수 있습니다. 
+  성능 지표(처리량 및 응답 시간 등)를 모니터링하고 기록합니다. Amazon CloudWatch는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. 
+  결과를 분석하여 성능 병목 현상과 개선이 필요한 영역을 파악합니다. 
+  로드 테스트 프로세스 및 결과를 문서화하고 보고합니다. 

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

 **관련 문서:** 
+  [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [AWS에서의 분산 로드 테스트](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/welcome.html) 

 **관련 동영상:** 
+  [AWS 솔루션을 사용한 해결: 분산 로드 테스트](https://www.youtube.com/watch?v=Y-2rk0sSyOM) 
+  [Amazon CloudWatch RUM을 통한 애플리케이션 최적화](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 데모](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예시:** 
+  [AWS에서의 분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF05-BP05 자동화를 사용하여 성능 관련 문제 사전 해결
<a name="perf_process_culture_automation_remediate_issues"></a>

 KPI(핵심 성능 지표)를 모니터링 및 경보 시스템과 함께 사용하여 성능 관련 문제를 선제적으로 해결합니다. 

 **일반적인 안티 패턴:** 
+  워크로드에 대한 운영 변경을 수행할 수 있는 기능을 운영 직원에게만 허용합니다. 
+  사전 조치 없이 모든 경보를 운영 팀으로 필터링합니다. 

 **이 모범 사례 확립의 이점:** 경보 작업을 사전에 해결하면 지원 직원이 자동으로 실행할 수 없는 항목에 집중할 수 있습니다. 이를 통해 운영 담당자는 모든 알람을 처리하는 데 부담을 느끼지 않고 중요한 경보에만 집중할 수 있습니다. 

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

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

 경보를 사용하여 가능한 경우 문제를 해결하는 자동화 작업을 트리거합니다. 자동 대응이 불가능한 경우 대응을 수행할 수 있는 담당자에게 경보를 에스컬레이션합니다. 예를 들어 필요한 핵심 성과 지표(KPI) 값을 예측하고 해당 값이 특정 임계값을 초과하는 경우 경보를 생성할 수 있는 시스템이나, KPI가 필요한 값의 범위를 벗어나는 경우 배포를 자동으로 중지하거나 롤백할 수 있는 도구가 있습니다. 

 워크로드가 실행 중일 때 성능을 확인할 수 있는 프로세스를 구현합니다. 워크로드가 최적의 상태로 작동하고 있는지를 확인할 수 있도록 성능 기대치 관련 기준을 설정하고 모니터링 대시보드를 구축합니다. 

### 구현 단계
<a name="implementation-steps"></a>
+  자동으로 해결할 수 있는 성능 문제를 식별하고 이해합니다. 다음과 같은 AWS 모니터링 솔루션 사용: [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 또는 AWS X-Ray를를 사용하면 문제의 근본 원인을 더 잘 이해하는 데 도움이 됩니다. 
+  문제를 자동으로 해결하는 데 사용할 수 있는 단계별 해결 계획 및 프로세스를 만듭니다. 
+  자동으로 문제 해결 프로세스를 시작하도록 트리거를 구성합니다. 예를 들어 CPU 사용률이 특정 임계값에 도달하면 인스턴스를 자동으로 다시 시작하도록 트리거를 정의할 수 있습니다. 
+  AWS 서비스 및 기술을 사용하여 문제 해결 프로세스를 자동화합니다. 예: [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 문제 해결 프로세스를 자동화할 수 있는 안전하고 확장 가능한 방법을 제공합니다. 
+  사전 프로덕션 환경에서 자동화된 수정 프로세스를 테스트합니다. 
+  테스트 후 프로덕션 환경에서 수정 프로세스를 구현하고 지속적으로 모니터링하여 개선이 필요한 부분을 파악합니다. 

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

 **관련 문서:** 
+  [CloudWatch 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [모니터링, 로깅 및 성능 AWS Partner Network 파트너](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [CloudWatch에서 경보 및 경보 작업 사용](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/cw-example-using-alarm-actions.html) 

 **관련 동영상:** 
+  [지능적으로 클라우드 운영 자동화](https://www.youtube.com/watch?v=m0S8eAF0l54) 
+  [AWS 환경에서 대규모로 제어 설정](https://www.youtube.com/watch?v=NkE9_okfPG8) 
+  [AWS를 사용하여 패치 관리 및 규정 준수 자동화](https://www.youtube.com/watch?v=gL3baXQJvc0) 
+  [Amazon이 웹사이트 성능 개선을 위해 더 나은 지표를 사용하는 방법](https://www.youtube.com/watch?v=_uaaCiyJCFA&ab_channel=AWSEvents) 

 **관련 예시:** 
+  [CloudWatch Logs 경보 사용자 지정](https://github.com/awslabs/cloudwatch-logs-customize-alarms) 

# PERF05-BP06 워크로드 및 서비스 최신 상태 유지
<a name="perf_process_culture_keep_workload_and_services_up_to_date"></a>

 새로운 클라우드 서비스 및 기능에 대한 최신 정보를 파악하여 효율적인 기능을 채택하고 문제를 제거하며 워크로드의 전반적인 성능 효율성을 개선할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  시간이 지나면 현재 아키텍처가 정적 아키텍처가 되고 업데이트되지 않는다고 가정합니다. 
+  업데이트된 소프트웨어 및 패키지가 워크로드와 호환되는지 평가하는 시스템 또는 정기적인 주기가 없습니다. 

 **이 모범 사례 확립의 이점:** 새로운 서비스 및 제품에 대한 최신 정보를 파악하는 프로세스를 구축하면 새로운 기능을 채택하고 문제를 해결하며 워크로드 성능을 개선할 수 있습니다. 

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

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

 새로운 서비스, 설계 패턴 및 제품 기능이 제공되면 성능을 개선할 방법을 평가합니다. 평가, 내부 논의 또는 외부 분석을 통해 워크로드의 효율성을 높이고 성능을 개선할 수 있는 방법을 결정합니다. 워크로드 관련 업데이트, 새 기능 및 서비스를 평가하는 프로세스를 정의합니다. 새 기술을 사용하는 개념 증명 작성, 내부 그룹과의 상담 등을 그 예로 들 수 있습니다. 새 아이디어나 서비스를 시도할 때는 성능 테스트를 실행하여 해당 아이디어나 서비스가 워크로드의 성능에 주는 영향을 측정합니다. 

## 구현 단계
<a name="implementation-steps"></a>
+  워크로드 소프트웨어 및 아키텍처를 조사하여 업데이트하는 데 필요한 구성 요소를 식별합니다. 
+  워크로드 구성 요소 관련 뉴스 및 업데이트 소스를 파악합니다. 예를 들어 워크로드 구성 요소에 적합한 제품에 관한 [‘새로운 소식’ AWS 블로그](https://aws.amazon.com/new/) 를 구독할 수 있습니다. RSS 피드를 구독하거나 [이메일 구독](https://pages.awscloud.com/communication-preferences.html)단축할 수 있습니다. 
+  워크로드에 대한 새로운 서비스 및 기능을 평가할 일정을 정의할 수 있습니다. 
  +  이때 [AWS Systems Manager 인벤토리](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) 를 사용하여 Amazon EC2 인스턴스에서 운영 체제(OS), 애플리케이션, 인스턴스 메타데이터를 수집하고 소프트웨어를 실행 중인 인스턴스, 소프트웨어 정책에 필요한 구성, 업데이트해야 할 인스턴스를 신속하게 파악합니다. 
+  워크로드 구성 요소의 업데이트 방법을 파악합니다. 클라우드에서 민첩성을 활용하여 새 기능으로 워크로드를 개선하는 방법을 신속하게 테스트하고 성능 효율성을 높입니다. 
+  업데이트 프로세스에 자동화를 사용하여 새 기능 배포에 필요한 작업 수준을 줄이고 수동 프로세스로 인한 오류를 제한합니다. 
  +  이때 [CI/CD](https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/) 를 사용하면 클라우드 애플리케이션과 관련된 AMI, 컨테이너 이미지 및 기타 아티팩트를 자동으로 업데이트할 수 있습니다. 
  +  그리고 [AWS Systems Manager Patch Manager과 같은 도구를 사용하여](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 시스템 업데이트 프로세스를 자동화하고 다음을 사용하여 이 활동을 예약할 수 있습니다. [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)단축할 수 있습니다. 
+  업데이트 및 새로운 서비스를 평가하기 위한 프로세스를 문서화합니다. 업데이트 및 새로운 서비스를 연구, 테스트, 실험 및 검증하는 데 필요한 시간과 공간을 담당자에게 제공합니다. 문서화된 비즈니스 요구 사항 및 KPI를 다시 참조하여 비즈니스에 긍정적인 영향을 줄 업데이트에 대한 우선순위를 지정할 수 있습니다. 

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

 **관련 문서:** 
+  [AWS 블로그](https://aws.amazon.com/blogs/) 
+  [AWS의 새로운 소식](https://aws.amazon.com/new/?ref=wellarchitected) 

 **관련 동영상:** 
+  [AWS Events YouTube 채널](https://www.youtube.com/channel/UCdoadna9HFHsxXWhafhNvKw) 
+  [AWS Online Tech Talks YouTube 채널](https://www.youtube.com/user/AWSwebinars) 
+  [Amazon Web Services YouTube 채널](https://www.youtube.com/channel/UCd6MoB9NC6uYN2grvUNT-Zg) 

 **관련 예시:** 
+  [Well-Architected 실습 - 인벤토리 및 패치 관리](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [실습: AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# PERF05-BP07 정기적으로 지표 검토
<a name="perf_process_culture_review_metrics"></a>

 주기적인 유지 관리의 일환으로 또는 이벤트나 인시던트 대응 과정에서 수집된 지표를 검토합니다. 이러한 검토를 수행하면 문제를 해결하는 데 반드시 필요했던 지표와 문제를 식별/해결/방지하는 데 도움이 되었던 지표(추적한 경우)를 추가로 파악할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  지표가 장기간 경보 상태로 유지되는 것을 허용합니다. 
+  자동화 시스템으로 수행할 수 없는 경보를 생성합니다. 

 **이 모범 사례 확립의 이점:** 수집 중인 지표를 지속적으로 검토하여 문제가 올바르게 식별, 해결 또는 방지되는지 확인합니다. 지표를 장기간 경보 상태로 유지할 경우에도 지표가 부실해질 수 있습니다. 

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

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

 지표 수집 및 모니터링을 지속적으로 개선합니다. 인시던트나 이벤트 대응의 일환으로 문제를 해결하는 데 도움이 되었던 지표와, 현재는 추적 중이지 않지만 도움이 되었을 수 있는 지표를 평가합니다. 이 방법을 사용하여 수집한 지표의 품질을 개선하면 사후 인시던트를 예방하거나 더 빨리 해결할 수 있습니다. 

 인시던트나 이벤트 대응의 일환으로 문제를 해결하는 데 도움이 되었던 지표와, 현재는 추적 중이지 않지만 도움이 되었을 수 있는 지표를 평가합니다. 이 평가 결과를 토대로 하여 수집한 지표의 품질을 개선하면 이후 인시던트를 예방하거나 더 빨리 해결할 수 있습니다. 

### 구현 단계
<a name="implementation-steps"></a>

1. 워크로드 목표에 맞게 모니터링할 중요한 성능 지표를 정의합니다. 

1. 각 지표에 대한 기준과 원하는 값을 설정합니다. 

1. 주기(예: 주별 또는 월별)를 설정하여 중요 지표를 검토합니다. 

1. 각 검토 과정에서 추세와 기준값과의 편차를 평가합니다. 성능 병목 현상 또는 이상 징후가 있는지 찾아봅니다. 

1. 식별된 문제의 경우 심층적인 근본 원인 분석을 수행하여 문제의 주요 원인을 파악합니다. 

1. 발견한 내용을 문서화하고 전략을 사용하여 식별된 문제 및 병목 현상을 해결합니다. 

1. 지표 검토 프로세스를 지속적으로 평가하고 개선합니다.

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

 **관련 문서:** 
+  [CloudWatch 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [CloudWatch 에이전트를 사용하여 Amazon EC2 인스턴스 및 온프레미스 서버에서 지표 및 로그 수집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [모니터링, 로깅 및 성능 AWS Partner Network 파트너](https://aws.amazon.com/devops/partner-solutions/#_Monitoring.2C_Logging.2C_and_Performance) 
+  [X-Ray 설명서](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 

 **관련 동영상:** 
+  [AWS 환경에서 대규모로 제어 설정](https://www.youtube.com/watch?v=NkE9_okfPG8) 
+  [Amazon이 웹사이트 성능 개선을 위해 더 나은 지표를 사용하는 방법](https://www.youtube.com/watch?v=_uaaCiyJCFA&ab_channel=AWSEvents) 

 **관련 예시:** 
+  [Quick로 대시보드 생성](https://github.com/aws-samples/amazon-quicksight-sdk-proserve) 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 