概要

AWS での分散負荷テストは、パフォーマンステストを大規模に自動化して、さまざまな負荷条件下でアプリケーションがどのように動作するのかを示すとともに、アプリケーションのライフサイクル (開発、ステージング、本番、ポストプロダクションを含む) 全体にわたって潜在的なパフォーマンスの問題を特定します。この AWS ソリューションは、数百から数百万に及ぶユーザーとトランザクションをシミュレートし、ユーザーまたはサーバーのプロビジョニングを必要とせずに一貫したトランザクションを生成します。
このソリューションは、HAQM Elastic Compute Cloud (HAQM E2) インスタンス、HAQM Elastic Container Service (HAQM ECS)、HAQM Elastic Kubernetes Service (HAQM EKS) のスケーラビリティと信頼性、AWS Lambda 関数のコールドスタートと実行時間、HAQM Relational Database Service (HAQM RDS) データベースクエリのパフォーマンス、HAQM CloudFront の応答時間など、重要な領域に関するインサイトを提供します。現実的な負荷シナリオをシミュレートすることで、パフォーマンスとコスト効率の両方についてインフラストラクチャを最適化できます。
利点

さまざまな負荷条件下でのアプリケーションのパフォーマンスに関する正確なインサイトを得ることでインフラストラクチャを適切なサイズに調整し、コスト効率の高いリソース割り当てを実現します。
負荷テストをスケジュールするか、このソリューションを継続的インテグレーション、継続的デリバリー (CI/CD) パイプラインに組み込むことで負荷テストを自動化し、テストプロセスを合理化します。
複数の AWS リージョンからの実際のトラフィックをシミュレートして、さまざまな地理的負荷下でアプリケーションがどのように動作するのかを評価し、グローバルなパフォーマンスを最適化します。
分散負荷テストを JMeter スクリプトとシームレスに設計および統合することで、アプリケーション固有のニーズに合わせてテストをカスタマイズできます。
技術的な詳細

ステップ 1
HAQM API Gateway API を使用して、ソリューションのマイクロサービス (AWS Lambda 関数) を呼び出します。
ステップ 2
マイクロサービスでは、テストデータを管理しテストを実行するためのビジネスロジックを提供しています。
ステップ 3
これらのマイクロサービスは、HAQM Simple Storage Service (HAQM S3)、HAQM DynamoDB、AWS Step Functions と通信し、テストシナリオを実行して、そのテストシナリオの詳細と結果用のストレージを提供します。
ステップ 4
HAQM Virtual Private Cloud (HAQM VPC) のネットワークトポロジには、AWS Fargate で実行中のソリューションの HAQM Elastic Container Service (HAQM ECS) コンテナが含まれています。
ステップ 5
このコンテナには、アプリケーションのパフォーマンステスト用の負荷を生成する Taurus 負荷テスト Open Container Initiative (OCI) に準拠しているコンテナイメージが含まれています。Taurus はオープンソースのテスト自動化フレームワークです。コンテナイメージは、HAQM Elastic Container Registry (HAQM ECR) のパブリックリポジトリで AWS によってホストされています。
ステップ 6
AWS Amplify によるウェブコンソールは、静的ウェブホスティング用に設定した S3 バケットにデプロイされます。
ステップ 7
HAQM CloudFront はソリューションのウェブサイトバケットのコンテンツに対して、セキュアなパブリックアクセスを提供します。
ステップ 8
ソリューションは初期設定時にデフォルトのソリューション管理者ロールを作成し、顧客が指定したユーザーの E メールアドレスにアクセス招待を送信します。
ステップ 9
HAQM Cognito ユーザープールは、コンソールと API Gateway API へのユーザーアクセスを管理します。
ステップ 10
ソリューションをデプロイした後、ウェブコンソールを使って、一連のタスクを定義するテストシナリオを作成できます。
ステップ 11
マイクロサービスはこのテストシナリオを使用して、指定された AWS リージョンで Fargate タスク上で HAQM ECS を実行します。
ステップ 12
結果を HAQM S3 と DynamoDB に保存するだけでなく、テストが完了すると、出力が HAQM CloudWatch にログ記録されます。
ステップ 13
ライブデータオプションを選択すると、ソリューションでは、テストが実行された各リージョンについて、テスト中に Fargate タスクの CloudWatch ログが Lambda 関数に送信されます。
ステップ 14
Lambda 関数は、主要なスタックがデプロイされたリージョンで、AWS IoT Core の対応するトピックにデータを発行します。ウェブコンソールはそのトピックを購読し、ウェブコンソールでテスト実行中にデータを確認することができます。

「Calabrio の使命は、コンタクトセンターがよりスマートに、より速く、より良く機能できるよう支援することです。ある大手顧客向けに、新しい高性能な機能を迅速に設計する必要がありました。高額なエンタープライズテストライセンスや、オープンソースツール用のカスタムオーケストレーションコードを書く必要なく、システムのパフォーマンスをスケールにテストするために、AWS での分散負荷テストを使用しました。この AWS ソリューションでは、予想されるトラフィック量の 6 倍のテストを設計して実行し、新機能を予定より早く成功裏にリリースしました。」
関連コンテンツ

民間企業であるか公共部門のサービスであるかに関わらず、ユーザーによる負荷の増加に応じてアプリケーションを拡張できるという確信が必要です。AWS での分散負荷テストにより、アプリケーションテストを自動化し、大規模に実行する方法を理解し、アプリケーションをリリースする前にボトルネックを修正できます。