

# アーキテクチャの概要
<a name="architecture-overview"></a>

## アーキテクチャ図
<a name="architecture-diagram"></a>

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

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

![\[DLT MCP プロセス\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/distributed-load-testing-on-aws/images/DLT-MCP-Process.png)


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

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

1. 分散負荷テスター API は、[Amazon API Gateway](https://aws.amazon.com/api-gateway) を利用してソリューションのマイクロサービス ([AWS Lambda](https://aws.amazon.com/lambda) 関数) を呼び出します。

1. マイクロサービスでは、テストデータを管理しテストを実行するためのビジネスロジックを提供しています。

1. これらのマイクロサービスは、[Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3)、[Amazon DynamoDB](https://aws.amazon.com/dynamodb)、[AWS Step Functions](https://aws.amazon.com/step-functions) とやり取りをしてテストシナリオの詳細と結果を保存し、テスト実行をオーケストレーションします。

1. [AWS Fargate](https://aws.amazon.com/fargate) で稼働するソリューションの [Amazon Elastic Container Service](https://aws.amazon.com/ecs) (Amazon ECS) コンテナを含む [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc) ネットワークトポロジがデプロイされます。

1. このコンテナは、[Taurus](https://gettaurus.org/) 負荷テストフレームワークがインストールされた [Amazon Linux 2023](https://aws.amazon.com/linux/amazon-linux-2023/) ベースイメージを使用します。Taurus は、JMeter、K6、Locust、および他のテストツールをサポートするオープンソースのテスト自動化フレームワークです。コンテナイメージは、[Open Container Initiative](https://opencontainers.org/) (OCI) に対応しており、[Amazon Elastic Container Registry](https://aws.amazon.com/ecr) (Amazon ECR) のパブリックリポジトリで AWS がホストしています。詳細については、このガイドの「[コンテナイメージのカスタマイズ](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/container-image.html)」セクションを参照してください。

1. [AWS Amplify](https://aws.amazon.com/amplify) を活用したウェブコンソールは、静的ウェブホスティング用に設定された S3 バケットにデプロイされます。

1.  [Amazon CloudFront](https://aws.amazon.com/cloudfront) は、このソリューションのウェブサイトバケットのコンテンツに対して、安全なパブリックアクセスを提供します。

1. 初期設定時に、ソリューションはデフォルトの管理者ロール (IAM ロール) を作成し、お客様が指定したユーザーの E メールアドレスにアクセス招待を送信します。

1. [Amazon Cognito](https://aws.amazon.com/cognito) ユーザープールは、コンソール、分散負荷テスト API、MCP サーバーへのユーザーアクセスを管理します。

1. このソリューションをデプロイしたら、ウェブコンソールまたは API を使用して、一連のタスクを定義するテストシナリオを作成し、実行できます。

1. マイクロサービスはこのテストシナリオを使用して、指定されたリージョンの Fargate 上で ECS タスクを実行します。

1. テストが完了すると、ソリューションは結果を S3 と DynamoDB に保存し、ログ出力は [Amazon CloudWatch](https://aws.amazon.com/cloudwatch) に記録します。

1. ライブデータオプションを有効化すると、ソリューションは、テストを実行するリージョンごとに、テスト中に Fargate タスクから Lambda 関数に CloudWatch ログを送信します。

1. Lambda 関数は、メインスタックがデプロイされたリージョンの [AWS IoT Core](https://aws.amazon.com/iot-core) の対応するトピックにデータを公開します。ウェブコンソールはトピックをサブスクライブし、テストの実行中にリアルタイムデータを表示します。
**注記**  
次の手順では、AI 支援型負荷テスト分析用のオプションの MCP サーバー統合について説明します。このコンポーネントは、ソリューションのデプロイ中に MCP サーバーのオプションを選択した場合にのみデプロイされます。

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

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

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