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

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

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

  9. Step Functions は、選択した各 AWS リージョンの AWS Fargate で Amazon 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 関数に転送します。

  18. Lambda 関数は、既存の DLT REST API を呼び出して、リクエストされた負荷テストデータを取得します。次に、構造化データを AgentCore Gateway に返し、AI 支援型分析とインサイトのために MCP クライアントに送り返します。