

# PERF08-BP01 パフォーマンスが最も重要な分野を理解する
<a name="perf_tradeoffs_performance_critical_areas"></a>

 ワークロードのパフォーマンスの向上が効率性やカスタマーエクスペリエンスにプラスの影響を与える分野を理解し、特定します。例えば、カスタマーインタラクションが多いウェブサイトは、エッジサービスを使用してコンテンツ配信をお客様に近い場所へ移動させることでメリットを得ることができます。 

**期待される成果:** アーキテクチャ、トラフィックパターン、データアクセスパターンを理解し、レイテンシーと処理時間を特定することで、パフォーマンス効率を高めることができます。ワークロードが増加するにつれて、顧客エクスペリエンスに影響を及ぼす可能性のある潜在的なボトルネックを特定できます。これらの領域を特定したら、デプロイできるソリューションを調査し、パフォーマンスの懸念を取り除きます。

 **一般的なアンチパターン:** 
+  パフォーマンスの問題の計測には、 `CPU使用率やメモリ使用率などの` 標準的なコンピューティングメトリクスで十分だと考えている。 
+  一部のモニタリングソフトウェアで記録されるデフォルトのメトリクスのみを使用している。 
+  問題が発生したときにだけメトリクスを確認している。 

 **このベストプラクティスを活用するメリット:** パフォーマンスの重要な領域を理解することで、ワークロードの所有者は KPI をモニタリングし、影響の大きいパフォーマンスの改善に優先順位をつけることができます。 

 **このベストプラクティスが確立されていない場合のリスクレベル:** 高 

## 実装のガイダンス
<a name="implementation-guidance"></a>

エンドツーエンドの追跡を構築して、トラフィックパターン、レイテンシー、重要なパフォーマンス領域を特定します。データアクセスパターンをモニタリングして、低速なクエリや不十分にフラグメント化されパーティション化されたデータを検出します。負荷テストまたはモニタリングを使用して、ワークロードのボトルネックを特定します。

## 実装手順
<a name="w2aac19c11c11b5b6c17"></a>

1.  エンドツーエンドのモニタリングを構築して、すべてのワークロードコンポーネントおよびメトリクスをキャプチャします。 
   +  Amazon CloudWatch Real-User Monitoring (RUM) を使用して、 [実際のユーザークライアント側およびフロントエンドセッションからの](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) アプリケーションパフォーマンスメトリクスをキャプチャします。
   +  AWS X-Ray を設定して、 [アプリケーションレイヤー内のトラフィックを追跡し、](https://aws.amazon.com/xray/) コンポーネントと依存関係間のレイテンシーを特定します。X-Ray サービスマップを使用して、リレーションシップとワークロードコンポーネント間のレイテンシーを確認します。
   +  Amazon CloudWatch Performance Insightsを使用して、 [データベースパフォーマンスメトリクスを確認し、](https://aws.amazon.com/rds/performance-insights/) パフォーマンスの改善を特定します。
   +  Amazon RDS 拡張モニタリングを使用して、 [データベース OS の](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) パフォーマンスメトリクスを確認します。
   +  ワークロードコンポーネントおよびサービスごとの [CloudWatch メトリクスを収集し、](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) どのメトリクスがパフォーマンスの効率性に影響しているかを特定します。
   +  Amazon RDS を [を設定して、](https://aws.amazon.com/devops-guru/) パフォーマンスのインサイトとレコメンデーションを追加します。 

1.  テストを実行してメトリクスを生成し、トラフィックパターン、ボトルネック、および重要なパフォーマンス領域を特定します。 
   +  CloudWatch Synthetic Canaries を設定して、 [cron ジョブを使用したブラウザベースのユーザーアクティビティの](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) プログラム的なシミュレーションや、 `長期にわたる一貫したメトリクスを生成するための` 表現の評価を行います。
   +  AWS Distributed Load Testing ソリューションを使用して、 [ピークトラフィックの生成や、](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) 
+  [を設定して、](https://aws.amazon.com/devops-guru/) 
+  [CloudWatch RUM および X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-RUM.html) 

 **関連動画:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [Demo of Amazon CloudWatch Synthetics (Amazon CloudWatch Synthetics のデモ)](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **関連サンプル:** 
+  [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) 
+  [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/) 