はじめに
こんにちは。最近ジムに通い始めてダイエットをしております、25卒の桑原です。
今回は、Distributed Load Testing (以下 DLT と略 ) ソリューションをデプロイするための手順書になります。
CloudFormationテンプレートを利用してDLTソリューションをデプロイしていきます。
01.DLTソリューションのデプロイ
01-01. CloudFormationスタックのデプロイ
①ブラウザで新しいタブを開き、 分散負荷テストの Web ページ にアクセスします。 https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/
② [AWSコンソールで起動する] をクリックします。

③上記リンクのwebページからCloudFormationのコンソールを開いた場合、バージニア北部リージョンが選択されています。AWSソリューションをデプロイするリージョンを選択してください。
※本手順では東京リージョンに変更しています。
※アカウントIDの確認も忘れずに行ってください。

④テンプレートソースにAmazon S3 URLが入力されていることを確認し、 [次へ] をクリックします。

⑤スタック名として「 DLT 」と入力します。
パラメータとして、ソリューションコンソールにアクセスするためのAdminユーザの情報を入力します。
・Console Administrator Name : 任意
・Console Administrator Email : 実際にメール受信可能なメールアドレス

⑥他のパラメータは入力不要です。スクロールし、 [次へ] をクリックします。
⑦スタックオプションの設定画面では何も変更せず [次へ] をクリックします。
⑧「 I acknowledge that AWS CloudFormation might create IAM resources. 」にチェックを入れます。

⑨[次へ]をクリックし、入力したパラメータを確認後、 [送信] をクリックします。 DLTソリューションの構築完了まで約10分かかります。
01-02. デプロイされたDLTソリューションのフロントエンドにアクセス
①CloudFormationの画面上で、DLTスタックのステータスがCREATE_COMPLETEとなっていれば完了となります。

②01-01のステップで入力したメールアドレスに、Welcome to Distributed Load Testing というタイトルのメールが来ていることを確認します。メールに記載されている Console: のリンクをクリックします。
※メールが届いていても、DLTスタック作成完了まではコンソールを表示することができません。

③ソリューションのフロントエンドのログイン画面が開きます。メールに記載されているユーザ名とパスワードを入力して、 [SIGN IN] をクリックします。
④発行された仮パスワードからの変更を求められます。新しいパスワードを入力して[CHANGE]をクリックします。
登録できるパスワードは以下の条件を すべて 満たしている必要があります。
少なくとも 1 つの数字を含む
少なくとも 1 つの特殊文字を含む
少なくとも 1 つの大文字を含む
少なくとも 1 つの小文字を含む
長さが 12 文字以上
⑤以下の画面が出れば、DLTソリューションのデプロイとログインが完了となります。

02. DLTでの負荷テストの実行方法
02-01. DLTソリューションのフロントエンドから、負荷テストを実行
①DLTコンソールにアクセスし、 CREATE TEST をクリックします。

②テスト実行に用いるパラメータを入力し、 RUN NOW をクリックします。 パラメータは以下の通りです。
| パラメータ | 意味・備考 |
|---|---|
| Task count (タスク数) |
負荷テストで起動するタスク数。コンテナの数。タスク数が多いほど、より多くの負荷を分散してかけられます。 |
| Concurrency (同時実行数) |
各タスク内で同時に実行される仮想ユーザー(スレッド)の数を指します。 Task Count × Concurrency が最大同時接続ユーザー数に近い負荷になります。 |
| Ramp up (ウォームアップ時間) |
設定した Concurrency に達するまでの時間。 テスト開始と同時に全スレッドを起動するのではなく、この時間内に徐々にスレッド数を増やしていき、設定した Concurrency 数に達するようにします。 |
| Hold For (負荷維持時間) |
設定した Concurrency での負荷掛けを維持する時間。 Ramp Up の期間が終わり、設定された Concurrency に達した後に、その負荷レベルをどれくらいの時間維持するかを定義します。 |
| Include Live Data | テスト中のメトリクスをリアルタイムでテスト詳細画面で取得/可視化するかどうかを決めます。 |
| Test Type | 実行するテストタイプを選択できます。今回はJMeterを選択します。 |

③実行されると、テストの詳細画面に遷移します。ライブデータを閲覧できるように、Auto Refresh はオフにしておきます。
※ライブデータは、テスト実施中の詳細画面に表示されるグラフです。
リアルタイムで負荷タスクが出力したメトリクスを受信してプロットするものなので、ブラウザのタブを閉じたり画面遷移したりリフレッシュすると消去されてしまいます。
リアルタイムで確認し続けるけるには、テスト実施中の詳細画面を更新・画面遷移・リフレッシュせずに保つ必要があります。
テスト実施ステータスを確認したい場合は、別のタブでテスト一覧画面を開き、そちらでAuto Refreshを有効化することで確認できます。
02-02. 負荷テスト状況の確認
テスト実施中の詳細画面のライブデータでテスト状況を確認することができます。テスト詳細画面のタブとテスト一覧画面のタブを行き来しながら、ライブデータの状況やテスト終了状況を確認します。

02-03. 負荷テスト結果の確認
テスト一覧画面でテストのステータスが COMPLETE に変更されていれば、テストは終了しています。
ブラウザのタブを DLT ソリューションのテスト詳細画面に戻して REFRESH ボタンをクリックすると、テストの結果が表示されます。
JMeterでテストを行った場合、シナリオごとにテスト結果を確認することができます。

終わりに
今回は、JMeterファイルをアップロードし、テストする方法を紹介させていただきました。DLTは、JMeterだけでなくwebアプリのURLを使ってテストを実行することも可能です。
IT初心者の私でも簡単に環境を構築し、テストを実行できるという魅力のあるサービスとなっていますので、参考になればと思います。