概要
AWS での分散負荷テストは、大規模な負荷時のソフトウェアアプリケーションテストを自動化して、リリース前に潜在的な性能上の問題を特定するのに役立ちます。このソリューションは、一定のペースでトランザクションレコードを生成する数多くの接続ユーザーを作成およびシミュレートします。サーバーをプロビジョニングする必要はありません。また、このソリューションでは、複数の AWS リージョンにまたがってテストを実行することができます。
メリット
AWS Fargate コンテナで独立した Amazon Elastic Container Service (Amazon ECS) を使用して、ソフトウェアのロード機能をテストします。
カスタム JMeter スクリプトを作成して、アプリケーションのテストをカスタマイズします。
指定日または定期日に負荷テストが自動的に開始されるようにスケジュールを組みます。
このソリューションの Web コンソールを使用して、実行中のテストのライブデータを表示します。
技術的な詳細情報
ステップ 1
Amazon API Gateway API を使用して、ソリューションのマイクロサービス (AWS Lambda 関数) を呼び出します。
ステップ 2
マイクロサービスでは、テストデータを管理しテストを実行するためのビジネスロジックを提供しています。
ステップ 3
これらのマイクロサービスは、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、AWS Step Functions と通信し、テストシナリオを実行して、そのテストシナリオの詳細と結果用のストレージを提供します。
ステップ 4
Amazon Virtual Private Cloud (Amazon VPC) のネットワークトポロジには、AWS Fargate で実行中のソリューションの Amazon Elastic Container Service (Amazon ECS) コンテナが含まれています。
ステップ 5
このコンテナには、アプリケーションのパフォーマンステスト用の負荷を生成する Taurus 負荷テスト Open Container Initiative (OCI) に準拠しているコンテナイメージが含まれています。Taurus はオープンソースのテスト自動化フレームワークです。コンテナイメージは、Amazon Elastic Container Registry (Amazon ECR) のパブリックリポジトリで AWS によってホストされています。
ステップ 6
AWS Amplify によるウェブコンソールは、静的ウェブホスティング用に設定した S3 バケットにデプロイされます。
ステップ 7
Amazon CloudFront はソリューションのウェブサイトバケットのコンテンツに対して、セキュアなパブリックアクセスを提供します。
ステップ 8
ソリューションは初期設定時にデフォルトのソリューション管理者ロールを作成し、顧客が指定したユーザーの E メールアドレスにアクセス招待を送信します。
ステップ 9
Amazon Cognito ユーザープールは、コンソールと API Gateway API へのユーザーアクセスを管理します。
ステップ 10
ソリューションをデプロイした後、ウェブコンソールを使って、一連のタスクを定義するテストシナリオを作成できます。
ステップ 11
マイクロサービスはこのテストシナリオを使用して、指定された AWS リージョンで Fargate タスク上で Amazon ECS を実行します。
ステップ 12
結果を Amazon S3 と DynamoDB に保存するだけでなく、テストが完了すると、出力が Amazon CloudWatch にログ記録されます。
ステップ 13
ライブデータオプションを選択すると、ソリューションでは、テストが実行された各リージョンについて、テスト中に Fargate タスクの CloudWatch ログが Lambda 関数に送信されます。
ステップ 14
Lambda 関数は、主要なスタックがデプロイされたリージョンで、AWS IoT Core の対応するトピックにデータを発行します。ウェブコンソールはそのトピックを購読し、ウェブコンソールでテスト実行中にデータを確認することができます。
「Calabrio の使命は、コンタクトセンターがよりスマートに、より速く、より良く機能できるよう支援することです。ある大手顧客向けに、新しい高性能な機能を迅速に設計する必要がありました。高額なエンタープライズテストライセンスや、オープンソースツール用のカスタムオーケストレーションコードを書く必要なく、システムのパフォーマンスをスケールにテストするために、AWS での分散負荷テストを使用しました。この AWS ソリューションでは、予想されるトラフィック量の 6 倍のテストを設計して実行し、新機能を予定より早く成功裏にリリースしました。」
関連コンテンツ
民間企業であるか公共部門のサービスであるかに関わらず、ユーザーによる負荷の増加に応じてアプリケーションを拡張できるという確信が必要です。AWS での分散負荷テストにより、アプリケーションテストを自動化し、大規模に実行する方法を理解し、アプリケーションをリリースする前にボトルネックを修正できます。