Webサイト負荷試験の重要性と進め方

本ページでは、Webサイト負荷試験の必要性と、弊社の「Webサイト負荷試験サービス」を導入する際の進め方をシュミレーション形式で記載しています。

LoadTest-201310

商品販売のECサイトを立ち上げる、様々な情報と人が集まるポータルサイトを立ち上げる、既存Webサイトをリプレースする、といった際には、Webサイトの負荷試験は必須で行うべき対応と言われています。

Webサイトの負荷試験は必須で行いましょう!

なぜ、Webサイトの負荷試験を行わなければいけないのでしょうか?

理由は以下が挙げられます。

  • Webアプリケーション開発における単体試験や結合試験では問題がなくても、負荷をかける事によって新たに判明する問題事象もあります。
  • 稼働しているインフラ基盤やOS・ミドルウェア設定のボトルネックとなる箇所が運用開始後に発覚すると、大きな問題になる事が想定できます。

サイトに人気が出て、多数のユーザーからの同時アクセスが生まれた時に、Webアプリケーションの隠れた問題事象が発覚したり、インフラ基盤のボトルネックが判明すると、一大事となります。

webappli-manyaccess

せっかくアクセスしてもらったユーザーが離脱する事が想定されます。それだけに留まらず、発覚した問題を起因とするWebサイトのダウン等の重大障害も考えられます。

Webの世界では予測が難しい事も多いですが、万全の準備でWebサイトのリリースにこぎつけたいものです。

WebLoad-why-not-exec

では、なぜWebサイト負荷試験を行わないケースが多いのでしょうか?

以下が原因となっているようです。

  • Webサイトの負荷試験の重要性が認識されていない。その為、Webサイトの試験計画に入っていない。
  • Webサイトの負荷試験を行う為の費用負担が大きい(ソフトウェア製品やハードウェア製品など)。
  • Webサイトの負荷試験は専門性が高く、実施するには大変である。

これらの原因を取り除くには、弊社「Webサイト負荷試験サービス」がピッタリ!

以降では、仮想のお客様に対する、Webサイト負荷試験サービスの導入ステップをシュミレーションしながらご説明します。

1.お客様のお悩み

お客様の会社では以下のような販促サイト導入プロジェクトが進んでいる事とします。

  • 1ヵ月後にリリース予定のECサイトの開発が進んでいる。
  • 売上貢献が非常に期待されているWebシステムである。
  • 宣伝広告も行った!多くのアクセスが初日から殺到する予定である。
  • 単体試験、結合試験は順調!

しかし、以下のような課題と問題意識もあります。

  1. 多くのWebアクセスが来て、サイトがダウンする事がないか?
  2. どのくらいのアクセス増加まで耐えられるインフラなのか分からない。
  3. RFPに挙げていた、同時アクセス数や応答時間などをクリアしているか確認できていない。

Webサイト負荷試験サービスでは、以下を実現できます。

  1. 多数のWebアクセスを自動生成する事で、高負荷時のWebサイト状況を事前に確認できます。
  2. 高負荷時にしか現れない潜在的な不具合を潰す機会を得られます。
  3. Webサイトの限界値をシュミレーションできます。

以降、Webサイト負荷試験サービスの導入ステップをシュミレーション形式でご説明します。

2.ご提案のためのご訪問、意識合わせを実施

まず、お気軽にお問い合わせください。ご要件が固まっていなくても大丈夫です。

ご訪問させていただき、貴社ご担当者とエンジニアを交えて意識合わせをさせていただきます。

お問い合わせフォーム

弊社から持参するヒアリングシートと、お客様から提示いただく情報を確認しながら、ご要望の確認と進め方の意識合わせを行います。

2-1.対象となるWebサイトの情報

サイト概要やリリース日などの情報を共有いただきます。

2-2.対象となる試験環境のシステム情報

システム設置先情報や、システム構成図などを頂き、システム構成や規模をご教授いただきます。

今回のシミュレーションにおける環境としては、システムは都内のデータセンターにあり、Webサーバが2台(冗長構成)、Appサーバが2台(冗長構成)、DBサーバが2台(Master/Slave)の構成とします。

WebLoad-Prj-1

なお、負荷試験時に対象システム側で用意いただくデータ量は、本番リリース時と同等規模の必要十分なデータ量をご用意いただく事をおすすめします。

2-3.負荷試験で確認する項目

Webサイト負荷試験の実行時に確認する項目を意識合わせします。

今回は以下の項目を確認する事とします。

  1. 負荷試験時のエラーの有無
  2. 想定同時アクセスユーザー数における応答時間の状態(統計情報)
  3. スループットの限界値(上昇カーブの上限)
  4. 各サーバーの負荷状況(ボトルネック確認とキャパシティ判断)

2-4.負荷試験の実施期間、実施体制

Webサイト負荷試験の実施希望日を確認します。なお、実施期間には予備日も含めることをお勧めします。負荷試験の結果、何かしらの対応が必要になるケースも考えられるためです。

実施体制と実施方法は、お客様のご担当者(開発、インフラエンジニアの方も含む)とコミュニケーションを取りやすくするために、負荷試験実施はお客様オフィスにご訪問して対応する事とします。

負荷試験の実施時には様々な事が起こりえます。その時に備えて、意志の疎通をしやすい状態にしておく事は重要です。

2-5.負荷試験シナリオの作成

当社のWebサイト負荷試験サービスでは、オープンソースソフトウェアの「JMeter」を利用します。

負荷試験を行うためには、エンドユーザーのWeb操作を想定したWeb操作シナリオが必要になります。

Web操作シナリオは、負荷試験を実施する時のシナリオとして利用します。

Web操作シナリオを当社にて作成するか、お客様にて作成いただくかを確認します。

3.ご提案と御見積を作成

一旦持ち帰り、ご提案書と見積書を作成します。

なお、Web操作シナリオを当社で作成する場合は、負荷試験の対象サイトにアクセスさせていただき、試験シナリオの生成可否を確認させていただきます。その際、貴社エンジニアの方にご質問させていただく事もございます。

 

4.試験計画書とお見積書をご提示

今回のシミュレーションの場合は、お客様のご要望に合わせて、以下のようなご提案内容と概算見積をご提示させていただきます。

4-1.エンドユーザーを想定したWeb操作シナリオ

負荷試験時に用いるWeb操作シナリオは、エンドユーザーのWeb操作をシュミレーションした内容となります。

LoadTest-Scenario

今回のシュミレーションでは、Web操作シナリオは当社が作成する事にします。

負荷試験の実施前に、シナリオの原案作成を当社にて行い、お客様エンジニアの方と意識合わせしながら修正して仕上げていくアプローチとします。

4-2.負荷試験の進め方

Webサイト負荷試験での負荷の掛け方としては、いきなり大きな負荷をかける事はしません。

少ない同時アクセスユーザー数から徐々に増やしていくアプローチをとります。

具体的には以下のように進めていきます。

  1. 基礎となるオペレーションを想定した、1ユーザで1シナリオの実施を行い、問題がない事を確認(事前に実施)
  2. 「低負荷試験」として、少しずつ負荷をかけていき(例:1ユーザで50シナリオ、2ユーザで50シナリオ)、状況を確認(事前に実施)
  3. 「想定負荷試験」の実施を行い、状況を確認(本番の負荷試験として実施)
  4. 「高負荷試験」の実施を行い、限界性能を確認(本番の負荷試験として実施)

各試験の実施プランとスケジュールをご提案します。

なお、各試験の実施時には、毎回の試験結果を随時お客様と確認し、試験の継続を判断する事となります。

4-3.試験の実施環境

負荷試験を生成する端末は弊社PC端末を利用します。「想定負荷試験」と「高負荷試験」はインターネット経由でAWS(Amazon Web Service)基盤から実施する事になります。

なお、まだリリース前のWebサイトに対してインターネット経由で試験をする際には、現在閉じているFireWallにてアクセス元を絞ったアクセス許可を行っていただく事となります。

もちろん、AWS環境は弊社が構築します。

4-4.役割分担

負荷試験操作は弊社が実施します。試験はお客様オフィスにご訪問して実施する事にします。そうする事によってコミュニケーションが取りやすい状態となります。

WebLoad-Prj-2

また、負荷試験の実施時には、負荷試験対象のアプリケーションやインフラの状況を随時確認する事は重要なポイントとなります。今回は、お客様エンジニアにてご対応いただく事になります。

サーバー状況確認は、以下のように事前に監視モジュールを入れておく事によって、容易に状況確認ができ、あとから情報を活用する事も可能となります。ですが、今回のシミュレーションでは時間がない想定ですので、そこまではしない事とします。

LoadTest-SystemWatch-201310

4-5.スケジュール

以下の各作業項目に関するスケジュールを提示します。

  • Web操作シナリオ作成
  • 負荷生成用インフラの構築
  • 低負荷試験
  • 本番の負荷試験(想定負荷、高負荷)、その予備日
  • 報告会

ご訪問する日時や作業調整は柔軟に対応させていただきます。

4-6.報告内容

Webサイト負荷試験後には、以下のレポート(報告書)を作成します。また、報告会を設ける事にします。

  1. 試験実施結果サマリー報告書
  2. 試験実施結果グラフ(同時アクセスユーザー数の統計グラフ、応答時間の統計グラフ、スループットの統計情報)
  3. 試験実施結果の元データ

その他の事項も含めて両社で意識合わせを行い、問題がなければ、正式見積もりをすぐにご提示し、ご発注をいただきます。

5.試験の準備

試験本番へ向けて、以下の作業を実施していきます。

5-1.シナリオ作成

弊社にてシナリオを作成し、1ユーザーとして実行しながら、シナリオを修正していきます。お客様に確認いただきながら進め、最終的にはご訪問してお客様にご確認いただき、仮Fixとします。

5-2.低負荷試験の実施

作成したシナリオを用いて低負荷試験を実施します。お客様オフィスに訪問して低負荷試験を実施します。

WebLoad-Prj-3

5-3.負荷生成用のインフラ構築

負荷生成インフラをAWS上に構築します。目標値の同時アクセス数を生成し、また限界性能を試験する為のインフラとなります。

必要なEC2インスタンス数を事前に用意します。試験当日は、必要に応じてスケールする事もあります。

構築するタイミングは、AWSの料金も必要になってくる為(サービス料金に含みます)、スケジュール状況に合わせて構築を行います。構築作業自体は短期間で実施できます。

なお、この時点で負荷生成元サーバのグローバルIPアドレスが確定しますので、お客様側のFireWall側でアクセス許可を実施していただきます。

6.Webサイト負荷試験

Webサイト負荷試験の期間は、リリース日のギリギリではなく、余裕をもったスケジュールを設定します。

負荷試験後に、アプリ等の改修作業が必要になるケースも可能性としては想定される為です。

Webサイト負荷試験の当日。

Webサイト負荷試験の最中はバタバタする可能性も高い為、コミュニケーションを取りやすいようにお客様先に訪問し、負荷試験を行います。

お客様エンジニアの準備も整ったところで、一度、基礎試験を簡単に行います。

その後、本番のWebサイト負荷試験の実施です。

試験は計画書に従って、少しずつ負荷を高めていく事になっています。毎回の試験結果を見ながら、次の試験へ進めるかどうかの判断を随時お客様と行います。試験結果が芳しくなく、途中で当日の試験を終了とする可能性もあります。

WebLoad-Prj-4

試験を順調に進めていきます。

webload-graph-201310

場合によっては、ある試験項目の実施にて、エラーが発生する事も考えられます。例えば、Appサーバの1台における処理がボトルネックになり、処理が停止してしまった、などです。

WebLoad-Prj-5

その場合も、単体試験や結合試験では発見できない、負荷をかけて初めて出るようなエラーを検知できた事になります。Webサイト負荷試験によって事前に把握できた為、幸いな事です。

エラー原因はお客様のIT環境によって様々な事が考えられる為、その時に備えて、お客様エンジニアの方に待機いただく形になります。

エラー発生時には、待機いただいていたお客様エンジニアの方に調査・対応を進めていただく事になります。

そんな時の現場は、あわただしく対応に追われています。弊社もお手伝いできる箇所でお客様エンジニアと一緒に対応を行います。

ちなみに、その時のエンジニアのPC画面はこんな感じかもしれません。サーバー状態をリアルタイムで確認する為に、多くの画面が開かれています。

server-work-busy

このような未知の障害対応は結構大変な作業です。しかし、良いシステムを本番リリースするために必要な作業です。

サイトのリリース前だから、まだ大丈夫です!リリース後に不具合が判明した際にはそれこそ大変ですので。

お客様のシステムで何かエラーが発生した時は、「事前に不具合が見つかって良かった!」と喜びましょう。

そのような対応を行いながら、なんとか無事に負荷試験作業が終了となります。

試験の結果は後日あらためてレポート報告する形になります。

7.レポート作成・報告

事前に定義していたレポートを作成し、お客様にご報告させていただきます。

お客様は、今回のWebサイト負荷試験によって、以下の満足を得られると考えられます。

  1. 単体試験や結合試験では認識できなかった不具合をあぶりだす事が出来た。
  2. サイトオープン前に、現状のシステムのキャパシティ(限界性能)を把握できた。
  3. 次のシステム増強タイミングを考えやすくなった。
  4. 障害発生時のシミュレーションが出来た。

また、場合によっては今後の課題も多く見つかると思います。

 

以上が、Webサイト負荷試験サービスを導入した際の流れと対応のご説明となります。

話を聞いてみたい、見積もりを依頼したい、などございましたら、ぜひお気軽にお問い合わせください。

contact-620-60

Webサイト負荷試験以外にも、ITコンサルティングシステム構築、AWS活用支援なども行っております。ぜひご活用をご検討いただければと思います。

ご依頼の流れ

ご依頼の流れは以下のようになります。ご要件が固まっていなくても大丈夫です。ぜひお気軽にお問い合わせください。

flow_201311