設計上の考慮事項
サポートされているアプリケーション
このソリューションは、AWS アカウントからアプリケーションへのネットワーク接続があれば、クラウドベースのアプリケーションとオンプレミスのアプリケーションをサポートします。ソリューションでは、HTTP または HTTPS のいずれかを使用する API をサポートしています。また、HTTP リクエストヘッダーを制御できるため、認証ヘッダーやカスタムヘッダーを追加して、トークンや API キーを渡すことができます。
JMeter スクリプトのサポート
このソリューションのユーザーインターフェイス (UI) を使用してテストシナリオを作成する場合は、JMeter テストスクリプトを使用できます。JMeter スクリプトファイルを選択すると、<stack-name>-scenariosbucket Amazon Simple Storage Service (Amazon S3) バケットにアップロードされます。Amazon Elastic Container Service (Amazon ECS) タスクが実行すると、JMeter スクリプトが <stack-name>-scenariosbucket Amazon S3 バケットからダウンロードされ、テストが実行されます。
JMeter 入力ファイルがある場合は、JMeter スクリプトと一緒に入力ファイルを zip 圧縮できます。テストシナリオを作成するときに、zip ファイルを選択できます。
プラグインを含めると、バンドルされた zip ファイルの /plugins サブディレクトリ内のすべての .jar ファイルが JMeter 拡張ディレクトリにコピーされ、負荷テストに利用できるようになります。
注記
JMeter 入力ファイルを JMeter スクリプトファイルに含める場合は、JMeter スクリプトファイルに入力ファイルの相対パスを含める必要があります。さらに、入力ファイルは必ず相対パスである必要があります。例えば、JMeter の入力ファイルとスクリプトファイルが /home/user ディレクトリにあり、JMeter スクリプトファイル内の入力ファイルを参照する場合、入力ファイルのパスは ./INPUT_FILES である必要があります。代わりに /home/user/INPUT_FILES を使用すると、入力ファイルを見つけることができないため、テストは失敗します。
JMeter プラグインを含める場合は、.jar ファイルを zip ファイルのルート内の /plugins という名前のサブディレクトリにバンドルする必要があります。zip ファイルのルートを基準にして、jar ファイルへのパスは、./plugins/BUNDLED_PLUGIN.jar でなければなりません。
JMeter スクリプトの使用方法の詳細については、「JMeter User's Manual
K6 スクリプトのサポート
このソリューションは、K6 フレームワークベースのテストをサポートしています。K6 は AGPL-3.0 ライセンス
Locust スクリプトのサポート
このソリューションは、Locust フレームワークベースのテストをサポートしています。Locust テストファイルと必要な入力ファイルをアーカイブファイルに含め、アップロードオプションを使用してテストシナリオ用にアップロードできます。
テストのスケジューリング
未来の日付で実行するようにスケジューリングするか、Run Now オプションを使用して、テストをスケジュールできます。今後 1 回限りの実行としてテストをスケジューリングすることも、初回実行日と計画的な繰り返しを指定して定期テストを設定することもできます。繰り返しのオプションには、毎日、毎週、隔週、月次、などがあります。スケジューリングの仕組みの詳細については、このガイドの「Test scheduling workflow」セクションを参照してください。
バージョン 3.3.0 以降、AWS での分散負荷テストでは、cron 式を使用して負荷テストをスケジュールできるようになりました。[スケジュールに従って実行] を選択し、次に [CRON] タブを選択して cron 値を手動で入力するか、ドロップダウンフィールドを使用します。cronExpiryDate は、スケジュールされたテスト実行日と一致する必要があります。Next Run Dates (UTC) を確認して、スケジュールを確認します。
注記
-
テスト期間: スケジューリング時には、テストの合計期間を考慮します。例えば、ランプアップ時間が 10 分、保留時間が 40 分のテストは完了までに約 80 分かかります。
-
最小間隔: スケジュールされたテストの間隔が想定されるテスト期間よりも長いことを確認します。例えば、テストに約 80 分かかる場合は、実行頻度を 3 時間は空けるようにスケジュールします。
-
時間単位の制限: 想定されるテスト時間が 1 時間未満であっても、1 時間差でテストをスケジュールすることはできません。
同時テスト
このソリューションには各テストの Amazon CloudWatch ダッシュボードが含まれており、Amazon ECS クラスターでそのテスト用に実行されるすべてのタスクの出力がリアルタイムで組み合わされて表示されます。CloudWatch ダッシュボードには、平均応答時間、同時ユーザーの数、成功したリクエストの数、失敗したリクエストの数が表示されます。各メトリクスは秒単位で集計され、ダッシュボードは 1 分毎に更新されます。
ユーザー管理
初期設定時に、Amazon Cognito がソリューションのウェブコンソールへのアクセスを許可するために使用するユーザー名と E メールアドレスを指定します。コンソールには、ユーザー管理機能はありません。ユーザーを追加するには、Amazon Cognito コンソールを使用する必要があります。詳細については、「Amazon Cognito デベロッパーガイド」の「ユーザープール内のユーザーを管理する」を参照してください。
Amazon Cognito ユーザープールへの既存のユーザーの移行については、AWS ブログ「Approaches for migrating users to Amazon Cognito user pools
リージョンデプロイ
このソリューションでは、特定の AWS リージョンでのみ利用可能な Amazon Cognito を使用します。そのため、このソリューションを Amazon Cognito が利用可能なリージョンにデプロイする必要があります。リージョン別の現在のサービス提供状況については、AWS リージョン別のサービスのリスト