

# 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 使用率、レイテンシー、スループットなど)、および KPI を定義します。
  +  ユーザーエクスペリエンスに関するユーザー要件や、応答時間やアクセシビリティなどの要素に焦点を当てます。
  +  ワークロードに適したベンチマークツールを特定します。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) 
+  [ゲノミクスワークフローパート 5: 自動ベンチマーク](https://aws.amazon.com/blogs/architecture/genomics-workflows-part-5-automated-benchmarking/) 
+  [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) 
+  [分散負荷テスト](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 Web Client](https://github.com/aws-observability/aws-rum-web) 