View a markdown version of this page

アーキテクチャの概要 - AWS での分散負荷テストソリューション

アーキテクチャの概要

アーキテクチャ図

このソリューションをデフォルトのパラメータを使用してデプロイすると、AWS アカウントに次のコンポーネントがデプロイされます。

AWS での分散負荷テストのアーキテクチャ

AWS での分散負荷テストのアーキテクチャ
注記

AWS CloudFormation のリソースは、AWS Cloud Development Kit (AWS CDK) のコンストラクトで作成されています。

AWS CloudFormation テンプレートを使用してデプロイされたこのソリューションコンポーネントの大まかなプロセスフローは次のとおりです。

  1. (CloudFront + S3 ホスティングデプロイオプション) コンソールユーザーは、Amazon CloudFront を介してウェブコンソールにアクセスします。Amazon CloudFront は、Amazon Simple Storage Service (Amazon S3) バケットでホストされている AWS Amplify アプリケーションを提供します。

  2. (ALB + ECS Fargate ホスティングデプロイオプション) コンソールユーザーは Application Load Balancer を介してウェブコンソールにアクセスします。Application Load Balancer は、Amazon Virtual Private Cloud (Amazon VPC) 内の AWS FargateAmazon Elastic Container Service (Amazon ECS) で実行されている AWS Amplify アプリケーションにトラフィックをルーティングします。

  3. (ヘッドレスデプロイオプション) パブリックフロントエンドはデプロイされません。このソリューションでは、ウェブコンソールをプライベート Amazon S3 バケットにダウンロード可能な ZIP として提供します。コンソールユーザーは、セルフホスト型のウェブサーバーからコンソールにアクセスできます。

  4. 初期設定時に、ソリューションは Amazon Cognito ユーザープールにデフォルトの管理者ユーザーを作成し、指定した E メールアドレスにアカウント作成 E メールを送信します。Cognito ユーザープールは、ウェブコンソール、REST API、CLI、および MCP サーバーへのユーザーアクセスを管理します。

  5. Amazon API Gateway は、テストデータを管理し、テストを実行するためのビジネスロジックを提供する AWS Lambda マイクロサービスを呼び出します。

  6. マイクロサービスは Amazon S3、Amazon DynamoDBAmazon EventBridge とやり取りして、テストシナリオの詳細を保存し、テストスケジュールを管理します。テストを将来の日時に、または定期的な間隔で実行するようにスケジュールすると、マイクロサービスは EventBridge スケジューラのスケジュールを作成し、スケジュールされた時刻にマイクロサービスを呼び出します。

  7. テストを実行するために、マイクロサービスはテスト実行を調整する AWS Step Functions を呼び出します。

  8. EventBridge ルールは、Amazon ECS タスクおよび Step Functions 失敗イベントを失敗ハンドラー Lambda 関数にルーティングします。

  9. Step Functions は、選択した各 AWS リージョンの AWS FargateAmazon Elastic Container Service (Amazon ECS) タスクを起動します。

  10. 各タスクは、選択したリージョンの Amazon Virtual Private Cloud (Amazon VPC) 内で実行されます。

  11. 負荷テスト用コンテナは、Taurus テスト自動化フレームワークがインストールされた Amazon Linux 2023 ベースイメージを使用します。Taurus は JMeter、K6、Locust、または単一の HTTP エンドポイントテストを実行します。各テストフレームワークのプロビジョニング方法の詳細については、「テストフレームワークのプロビジョニング」を参照してください。ALB + ECS オプションはウェブホストコンテナを使用します。コンテナイメージは、AWS が Amazon Elastic Container Registry (Amazon ECR) のパブリックリポジトリでホストしています。

  12. 各 Fargate タスクは、リージョンごとのテスト結果を Amazon S3 に書き込み、Amazon CloudWatch にログを発行します。すべてのリージョンの処理が完了すると、マイクロサービスは結果を DynamoDB に集約します。

  13. ライブデータオプションを有効にすると、Lambda 関数はテスト中に Fargate タスクから CloudWatch ログを受け取ります。

  14. Lambda 関数は、メインスタックがデプロイされているリージョンの AWS IoT Core のトピックにログを公開します。ウェブコンソールはトピックをサブスクライブし、テストの実行中にリアルタイムのメトリクスを表示します。

  15. (オプションの CLI アクセス) ユーザーは、DLT コマンドラインインターフェイス (CLI) をローカルにインストールして、ターミナルからソリューションとやり取りできます。CLI は Cognito を介して認証し、REST API を直接呼び出して、スクリプトによる自動化と CI/CD 統合を可能にします。

    注記

    次の手順では、AI 支援型負荷テスト分析用のオプションの MCP サーバー統合について説明します。このコンポーネントは、ソリューションのデプロイ中に MCP サーバーのオプションを選択した場合にのみデプロイされます。

  16. MCP クライアント (AI 開発ツール) は Amazon Bedrock AgentCore Gateway エンドポイントに接続して、モデルコンテキストプロトコルを介して分散負荷テストソリューションのデータにアクセスします。AgentCore Gateway は、ユーザーの Cognito 認証トークンを検証して、MCP サーバーへの認可されたアクセスを確認します。

  17. 認証が成功すると、AgentCore Gateway は MCP ツールリクエストを DLT MCP サーバーのLambda 関数に転送します。Lambda 関数は構造化データを AgentCore Gateway に返し、AI 支援型分析とインサイトのために MCP クライアントに送り返します。

  18. Lambda 関数はリクエストを処理し、適切な AWS リソース (DynamoDB テーブル、S3 バケット、または CloudWatch ログ) をクエリして、リクエストされた負荷テストデータを取得します。