

# PERF01-BP06 벤치마킹을 사용하여 아키텍처 결정
PERF01-BP06 벤치마킹을 사용하여 아키텍처 결정

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

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

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

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

## 구현 지침
구현 지침

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

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

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

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

### 구현 단계
구현 단계
+  계획 및 정의: 
  +  벤치마크의 목표, 기준, 테스트 시나리오, 지표(예: CPU 사용률, 지연 시간, 처리량) 및 KPI를 정의합니다.
  +  사용자 경험 및 응답 시간, 접근성과 같은 요소의 측면에서 사용자 요구 사항에 중점을 둡니다.
  +  워크로드에 적합한 벤치마킹 도구를 식별합니다. AWS 서비스(예: [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)) 또는 워크로드와 호환되는 서드파티 도구를 사용할 수 있습니다.
+  구성 및 계측: 
  +  환경을 설정하고 리소스를 구성합니다.
  +  모니터링 및 로깅을 구현하여 테스트 결과를 캡처합니다.
+  벤치마크 및 모니터링: 
  +  벤치마크 테스트를 수행하고 테스트 중에 지표를 모니터링합니다.
+  분석 및 문서화: 
  +  벤치마킹 프로세스 및 조사 결과를 문서화합니다.
  +  결과를 분석하여 병목 현상, 추세 및 개선 영역을 식별합니다.
  +  테스트 결과를 사용하여 아키텍처 결정을 내리고 워크로드를 조정합니다. 이 과정에는 서비스가 변경되거나 새로운 기능이 도입될 수 있습니다.
+  최적화 및 반복: 
  +  벤치마크를 기반으로 리소스 구성 및 할당을 조정합니다.
  +  조정 후 워크로드를 다시 테스트하여 개선 여부를 검증합니다.
  +  발견한 사실을 문서화하고 프로세스를 반복하여 개선이 필요한 다른 영역을 식별합니다.

## 리소스
리소스

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS Solutions Library](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) 
+  [Genomics workflows, Part 5: automated benchmarking](https://aws.amazon.com/blogs/architecture/genomics-workflows-part-5-automated-benchmarking/) 
+  [Benchmark and optimize endpoint deployment in Amazon SageMaker AI JumpStart](https://aws.amazon.com/blogs/machine-learning/benchmark-and-optimize-endpoint-deployment-in-amazon-sagemaker-jumpstart/) 

 **관련 비디오:** 
+  [AWS re:Invent 2023 - Benchmarking AWS Lambda cold starts](https://www.youtube.com/watch?v=bGMEPI-va-Q&ab_channel=AWSEvents) 
+  [Benchmarking stateful services in the cloud](https://www.youtube.com/watch?v=rtW4a4DvcWU&ab_channel=AWSEvents) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize applications through Amazon CloudWatch RUM](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Demo of Amazon CloudWatch Synthetics](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예제:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK Examples](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [Distributed Load Tests](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [Measure page load time with Amazon CloudWatch Synthetics](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web Client](https://github.com/aws-observability/aws-rum-web) 