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

アーキテクチャの概要

アーキテクチャ図

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

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

image2
注記

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

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

  1. 分散負荷テスター API は、Amazon API Gateway を利用してソリューションのマイクロサービス (AWS Lambda 関数) を呼び出します。

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

  3. これらのマイクロサービスは、Amazon Simple Storage Service (Amazon S3)Amazon DynamoDBAWS Step Functions と通信して、テストシナリオの詳細と結果用のストレージの提供やテストシナリオの実行を行います。

  4. AWS Fargate で稼働するソリューションの Amazon Elastic Container Service (Amazon ECS) コンテナを含む Amazon Virtual Private Cloud (Amazon VPC) ネットワークトポロジがデプロイされます。

  5. コンテナには、アプリケーションのパフォーマンスをテストするための負荷の生成に使用する AmazonLinux (blazemeter 負荷テストフレームワークがインストール済み) Open Container Initiative (OCI) 準拠のコンテナイメージが含まれています。Taurus/Blazemeter は、オープンソースのテスト自動化フレームワークです。コンテナイメージは、AWS が Amazon Elastic Container Registry (Amazon ECR) のパブリックリポジトリでホストしています。ECR イメージリポジトリの詳細については、「Container image customization」を参照してください。

  6. AWS Amplify を活用したウェブコンソールは、静的ウェブホスティング用に設定された Amazon S3 バケットにデプロイされます。

  7. Amazon CloudFront は、このソリューションのウェブサイトバケットのコンテンツに対して、安全なパブリックアクセスを提供します。

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

  9. Amazon Cognito ユーザープールは、コンソールと分散負荷テスト API へのユーザーアクセスを管理します。

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

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

  12. テストが完了すると、Amazon S3 と DynamoDB に結果を保存するほかに、出力を Amazon CloudWatch に記録します。

  13. ライブデータオプションを選択すると、ソリューションは、テストが実行されたリージョンごとに、テスト中に AWS Fargate タスクの Amazon CloudWatch Logs を Lambda 関数に送信します。

  14. Lambda 関数は、メインスタックがデプロイされたリージョンの AWS IoT Core の対応するトピックにデータを公開します。ウェブコンソールはそのトピックをサブスクライブし、ウェブコンソールでテスト実行中にデータを確認することができます。