はじめに
みなさん、こんにちは。ソリューションアーキテクトの馬渕です。AWS 入社前は SIer で性能試験・性能問題解決に特化した部署におり、さまざまな業種のお客様のシステムに対する支援を実施していました。
本記事は、世界中のユーザーが直面する一般的な問題の解決策を提供する AWS ソリューションライブラリ の人気ソリューションの一つ、 分散負荷テスト ソリューションを活用いただくための記事となっています。負荷テストを有効に実施するためには、ツールそのもの以上に負荷テスト全体のプロセスに関する理解が重要となるため、全 3 回の記事シリーズの 第 1 号 では 負荷テストの全体像をご紹介しました。そして、第 2 号となった 前回の記事 では、実際に負荷テストを検討するための計画タスクについて詳細に述べました。
Part 1 : 負荷テストの全体像を理解しよう
Part 2 : AWS での負荷テストを計画しよう
Part 3 : AWS での負荷テストを準備・実施しよう (今回)
さて、今回の記事では、いよいよ実際の負荷テストの準備・実施について説明していきます。今回の記事シリーズの主役である Distributed Load Testing ソリューション (以下「 DLT ソリューション」と記載します) を使って、性能試験をコスト効率よく実現していきましょう !
お知らせ
このたび、 DLT ソリューションを用いた負荷テストを体験できるワークショップコンテンツ を公開しました。DLT ソリューションをデプロイし、負荷テスト対象のサンプルアプリをデプロイしたのち、同ソリューションを用いて実際に負荷テストを実施していく内容になっています。コストは 1 USD〜数 USD、時間としては 2 ~ 3 時間程度で完了できる内容となっています。
今回の記事シリーズで負荷テストに興味を持った方、負荷テストによいツールをお探しの方は、是非ともお試しください。こちら »
ご注意
本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
今回の内容
第 1 回の記事でご説明した通り、性能試験は計画・準備・実施 (複数回)・評価の 4 フェーズに分かれます。前回の記事では性能試験の計画で検討・決定すべき内容を紹介していきました。今回は、準備・実施および結果評価について説明していきます。

1. 負荷テストの準備でのタスク
さて、前回の記事で示したように負荷テストの計画が終わったら、実際にテストを実施するための準備に入っていきます。各タスクを説明するなかで、 DLT ソリューションを利用した場合の作業方法についても説明していきます。
2. 負荷テストの実施でのタスク
3. 負荷テストの評価でのタスク
負荷テストを実施し、目標性能までのチューニングが完了した後のタスクについても説明していきます。
試験実施結果の取りまとめ
負荷テストの結果と考察は、ドキュメントとしてどこかに残しておくのがよいでしょう。将来もし本番環境で性能トラブルが発生した場合に、過去の負荷テストでの傾向がその分析に活かせる可能性があります。
チューニング内容の取りまとめ
負荷テスト前に比べて、チューニングとしていくつものパラメータが変更されていることは往々にしてあります。チューニング内容を開発・本番に取り込むために、チューニング内容を整理します。また、今後の知識の横展開という意味でも取りまとめておくことは重要です。
Next Action の検討
性能試験結果を踏まえて、重点的に監視すべきポイント、スケーリング関連の対応方法、性能限界を超えた負荷が発生した際にシステムを守るための対処などを Nect Action として検討します。
前回の記事の最初で性能試験の種類について説明しましたが、そこで「限界性能試験で、負荷量を 120 %、140 %、etc・・・といった形で増大させ、システムが応答できなくなる負荷量を確認する」ということをお伝えしました。この際に重要なのは、
システムが応答できなくなるレベルの負荷が発生したときに、どこがボトルネックになるか
システムが応答できなくなるレベルの負荷が発生したときにどういった対策を取ればよいか
システムが応答できなくなるレベルの負荷が発生したこと / しそうなことをどのように検知すればよいか
の洞察を得ることです。例えば、以下のようなアクションプランをビジネスサイドと合意することができます。
限界性能試験の結果、 目標性能の〇〇〇 % の負荷が発生した場合、 〇〇〇がボトルネックとなり性能劣化を引き起こす
その際、〇〇というメトリクスが 同事象の発生可能性を検知するのに適切である
そのため、同メトリクスは重点的に監視し、 〇〇を超えた時点で警戒、〇〇を超えたら流量制御により新規訪問者の流入を制限し、 利用中のユーザの購買行動の完遂が妨げられないようにする
まとめ
本シリーズでは、DLT ソリューションをご活用いただくために役立つ負荷テスト全般の知識を、全 3 回にわたってお伝えしてきました。DLT ソリューションに限らず、 AWS の様々なメリット・機能を負荷テストで活用できることもお伝えできたのではないかと思います。
本シリーズは DLT ソリューションそのもの以上に負荷テスト全般についてお伝えする形となりましたが、これとは別に DLT ソリューションを用いた負荷テストを体験できる ワークショップコンテンツ を公開しました。DLT ソリューションをデプロイし、負荷テスト対象のサンプルアプリをデプロイしたのち、同ソリューションを用いて実際に負荷テストを実施していく内容になっています。コストは 1 USD〜数 USD、時間としては 2 ~ 3 時間程度で完了できるものとなっています。
今回の記事シリーズで負荷テストに興味を持った方、負荷テストによいツールをお探しの方は、是非ともお試しください。詳細はこちら »
それではみなさま、Happy Load Testing !
筆者プロフィール
馬渕 俊介
アマゾン ウェブ サービス ジャパン合同会社
エンタープライズ技術本部 ソリューションアーキテクト
交通業界のお客様を中心として、AWS の利用をご支援しています。
休日はバンドで演奏したり作曲をしたり、ボールやナイフをジャグリングしたりしています。
