アーキテクチャの概要
アーキテクチャ図
このソリューションをデフォルトのパラメータを使用してデプロイすると、AWS アカウントに次のコンポーネントがデプロイされます。
AWS での分散負荷テストのアーキテクチャ
注記
AWS CloudFormation のリソースは、AWS Cloud Development Kit (AWS CDK) のコンストラクトで作成されています。
AWS CloudFormation テンプレートを使用してデプロイされたこのソリューションコンポーネントの大まかなプロセスフローは次のとおりです。
-
(CloudFront + S3 ホスティングデプロイオプション) コンソールユーザーは、Amazon CloudFront
を介してウェブコンソールにアクセスします。Amazon CloudFront は、Amazon Simple Storage Service (Amazon S3) バケットでホストされている AWS Amplify アプリケーションを提供します。 -
(ALB + ECS Fargate ホスティングデプロイオプション) コンソールユーザーは Application Load Balancer
を介してウェブコンソールにアクセスします。Application Load Balancer は、Amazon Virtual Private Cloud (Amazon VPC) 内の AWS Fargate の Amazon Elastic Container Service (Amazon ECS) で実行されている AWS Amplify アプリケーションにトラフィックをルーティングします。 -
(ヘッドレスデプロイオプション) パブリックフロントエンドはデプロイされません。このソリューションでは、ウェブコンソールをプライベート Amazon S3 バケットにダウンロード可能な ZIP として提供します。コンソールユーザーは、セルフホスト型のウェブサーバーからコンソールにアクセスできます。
-
初期設定時に、ソリューションは Amazon Cognito
ユーザープールにデフォルトの管理者ユーザーを作成し、指定した E メールアドレスにアカウント作成 E メールを送信します。Cognito ユーザープールは、ウェブコンソール、REST API、CLI、および MCP サーバーへのユーザーアクセスを管理します。 -
Amazon API Gateway
は、テストデータを管理し、テストを実行するためのビジネスロジックを提供する AWS Lambda マイクロサービスを呼び出します。 -
マイクロサービスは Amazon S3、Amazon DynamoDB
、Amazon EventBridge とやり取りして、テストシナリオの詳細を保存し、テストスケジュールを管理します。テストを将来の日時に、または定期的な間隔で実行するようにスケジュールすると、マイクロサービスは EventBridge スケジューラのスケジュールを作成し、スケジュールされた時刻にマイクロサービスを呼び出します。 -
テストを実行するために、マイクロサービスはテスト実行を調整する AWS Step Functions
を呼び出します。 -
EventBridge ルールは、Amazon ECS タスクおよび Step Functions 失敗イベントを失敗ハンドラー Lambda 関数にルーティングします。
-
Step Functions は、選択した各 AWS リージョンの AWS Fargate
で Amazon Elastic Container Service (Amazon ECS) タスクを起動します。 -
各タスクは、選択したリージョンの Amazon Virtual Private Cloud
(Amazon VPC) 内で実行されます。 -
負荷テスト用コンテナは、Taurus
テスト自動化フレームワークがインストールされた Amazon Linux 2023 ベースイメージを使用します。Taurus は JMeter、K6、Locust、または単一の HTTP エンドポイントテストを実行します。各テストフレームワークのプロビジョニング方法の詳細については、「テストフレームワークのプロビジョニング」を参照してください。ALB + ECS オプションはウェブホストコンテナを使用します。コンテナイメージは、AWS が Amazon Elastic Container Registry (Amazon ECR) のパブリックリポジトリでホストしています。 -
各 Fargate タスクは、リージョンごとのテスト結果を Amazon S3 に書き込み、Amazon CloudWatch
にログを発行します。すべてのリージョンの処理が完了すると、マイクロサービスは結果を DynamoDB に集約します。 -
ライブデータオプションを有効にすると、Lambda 関数はテスト中に Fargate タスクから CloudWatch ログを受け取ります。
-
Lambda 関数は、メインスタックがデプロイされているリージョンの AWS IoT Core
のトピックにログを公開します。ウェブコンソールはトピックをサブスクライブし、テストの実行中にリアルタイムのメトリクスを表示します。 -
(オプションの CLI アクセス) ユーザーは、DLT コマンドラインインターフェイス (CLI) をローカルにインストールして、ターミナルからソリューションとやり取りできます。CLI は Cognito を介して認証し、REST API を直接呼び出して、スクリプトによる自動化と CI/CD 統合を可能にします。
注記
次の手順では、AI 支援型負荷テスト分析用のオプションの MCP サーバー統合について説明します。このコンポーネントは、ソリューションのデプロイ中に MCP サーバーのオプションを選択した場合にのみデプロイされます。
-
MCP クライアント (AI 開発ツール) は Amazon Bedrock AgentCore Gateway
エンドポイントに接続して、モデルコンテキストプロトコルを介して分散負荷テストソリューションのデータにアクセスします。AgentCore Gateway は、ユーザーの Cognito 認証トークンを検証して、MCP サーバーへの認可されたアクセスを確認します。 -
認証が成功すると、AgentCore Gateway は MCP ツールリクエストを DLT MCP サーバーのLambda 関数に転送します。Lambda 関数は構造化データを AgentCore Gateway に返し、AI 支援型分析とインサイトのために MCP クライアントに送り返します。
-
Lambda 関数はリクエストを処理し、適切な AWS リソース (DynamoDB テーブル、S3 バケット、または CloudWatch ログ) をクエリして、リクエストされた負荷テストデータを取得します。