

# REL07-BP04 ワークロードの負荷テストを実施する
<a name="rel_adapt_to_changes_load_tested_adapt"></a>

 負荷テスト手法を採用して、スケーリングアクティビティがワークロード要件を満たすかどうかを測定します。

 持続的な負荷テストを実行することが重要です。負荷テストによってブレークポイントを発見し、ワークロードのパフォーマンスをテストします。AWS は、本稼働ワークロードのスケールをモデル化する、一次的なテスト環境のセットアップを容易にします。クラウド上では、本稼働スケールのテスト環境をオンデマンドで作成し、テスト完了後にリソースを解放できます。テスト環境の支払いは実行時にのみ発生するため、オンプレミスでテストを実施する場合と比べて、わずかなコストで本番環境をシミュレートできます。

 本番環境での負荷テストは、ゲームデーの一部として考える必要もあります。その中で、顧客の使用率が低い時間帯に本稼働システムに負荷をかけ、担当者全員がテスト結果を解釈して、発生した問題に対処できるようにします。

 **一般的なアンチパターン:** 
+  本番環境と同じ設定ではないデプロイで負荷テストを実行する。
+  ワークロード全体ではなく、ワークロードの個々の部分に対してのみ負荷テストを実行する。
+  実際のリクエストの代表的なセットではなく、リクエストのサブセットを使用して負荷テストを実行する。
+  予想される負荷を下回る小さな安全率に対して負荷テストを実行する。

 **このベストプラクティスを活用するメリット:** 負荷がかかるとアーキテクチャのどのコンポーネントに障害が発生するかを把握し、問題への対処に間に合うように、その負荷に近づいていることを示す、監視するべきメトリクスを特定して、障害の影響を防ぐことができます。

 **このベストプラクティスを活用しない場合のリスクレベル:** 中 

## 実装のガイダンス
<a name="implementation-guidance"></a>
+  負荷テストを実行して、容量を追加または削除する必要があるワークロードの側面を特定します。負荷テストには、本番環境で受け取るものと同様の代表的なトラフィックを使用する必要があります。設定したメトリクスを監視しながら負荷を増やし、リソースを追加または削除する必要があるタイミングをどのメトリクスが示しているのかを判断します。
  +  [AWS での分散負荷テスト: 接続された数千のユーザーをシミュレートする](https://aws.amazon.com/solutions/distributed-load-testing-on-aws/) 
    +  リクエストの組み合わせを特定します。さまざまなリクエストが混在している可能性があるため、トラフィックの組み合わせを特定するときは、さまざまな時間枠を確認する必要があります。
    +  ロードドライバーを実装します。カスタムコード、オープンソース、または商用ソフトウェアを使用して、ロードドライバーを実装します。
    +  最初は小さな容量に対して負荷テストを実施します。1 つのインスタンスまたはコンテナと同じくらいの容量に負荷をかけることで、すぐに効果が現れます。
    +  大きな容量に対して負荷テストを実施します。この効果は分散された負荷によって異なるため、できるだけ本番環境に近い環境でテストする必要があります。

## リソース
<a name="resources"></a>

 **関連ドキュメント:** 
+  [AWS での分散負荷テスト: 接続された数千のユーザーをシミュレートする](https://aws.amazon.com/solutions/distributed-load-testing-on-aws/) 
+  「[アプリケーションの負荷テスト](https://docs.aws.amazon.com/prescriptive-guidance/latest/load-testing/welcome.html)」 

 **関連動画:** 
+  [AWS Summit ANZ 2023: Accelerate with confidence through AWS Distributed Load Testing](https://www.youtube.com/watch?v=4J6lVqa6Yh8) 