ウェブサイトやシステムは使っていただける方があってこそのものです。作り上げたものを、なるべく多くの方にご利用いただきたい。可能な限り安定して稼働してほしい。そのためには、適切な準備が必要です。もちろん費用をかければ環境はいくらでも準備できますが、想定される利用者数について充分に安定して稼働する範囲で、しかも継続可能な費用感のスペックにする必要があります。そのために欠かせないのが負荷テストです。今回は負荷テストの重要性について説明します。
目次
負荷テストの目的
一般的に、負荷テストは、「サイト・サーバー・システムが実際の要求・業務に耐えられる処理能力を持っているかどうかを検証する」ためのテストです。どのような条件で不具合を起こすかを確認することができます。
一気に話題を集めたウェブサイトやサービスで、「サーバーが落ちてしまった」「アクセスできない」という状況に遭遇したことはありませんか。これは、当初の設計以上のアクセスが集まったため、負荷に耐えられずに発生した現象です。
余談ですが、そういうときに、何度もつながるまでリロードするということをされる人もいらっしゃいますが、さらに負荷がかかって利用できなくなる時間が長引くことになるので、何もせずに復旧を待つか、運営に連絡をするのが一番です。
負荷テストは、しておくだけで問題が回避できるというものではありませんが、運用中に落ちるのを待たずに「どのような条件で不具合が発生するか」が事前にわかるということに尽きます。
ウェブサイトやサービスのリリース前にテストをしておけば、少なくともテストで確認した規模のアクセスには対応ができるように設計に反映できるので、まずは安心感を持っていただけます。
そのタイミングでなければ申込できないという方がアクセスされたときにダウンしているというような機会損失も防ぐことができます。トラブル発生時の対応方法も事前に検討できるようになります。
テストの実施のみでなく、その結果をふまえて、適切なシステム構成の設計、およびサポート体制の計画を立て、着実に実施してこそ価値があるテストです。
多くの方に一度にアクセスされる可能性が高いウェブサイトやサービスの場合は、必須ともいえます。
負荷テストを実施したほうがよいのはどんな時?
負荷テストは、それなりに期間も費用も必要になってきます。また、テストで合格する範囲の安定稼働になるので、想定をはるかに超えてしまった場合は、どれだけ事前にテストをしても追いつかない可能性はわずかでもあります。
それでも実施したほうがよいのは、以下のような場合です。
- イベントなどで多くの人に同時に利用される可能性があることが事前にわかっている
- 動画や音声やPDFなど、重いデータを取り扱っている
- 特設サイトなどで期間が決まっていて、期間中はダウンしてしまうと大きなトラブルになる
- 利用者が対価を払って使用するサービスでダウンしたら補償が多額になる
- それなりに大規模なサイトやシステムで、運用に必要な費用を事前に明確化したい
負荷テストを実施しなくてよいのはどんな時?
逆に、実施しなくても良い場合というのは、以下のような場合です。
特に、サーバーやロードバランサに充分な費用をかけることができるなら、テスト費用の方が多くかかってしまい、費用対効果が悪くなる場合があります。
- あまり多くの人に利用されないことが事前にわかっている
- これまでに同様の内容で問題なく運用できた実績がある
- CDN配信やロードバランサなどの環境に充分な費用をかけてることができる
- 可用性を求めない(停止せずに安定的に稼働することを保証できなくともよい)サイト・システム
先駆ではどのようなテストを実施しているか
JMetaを利用し、お客様の要件から必要なシナリオを作成してシナリオテストを実施します。そのテスト結果から、専門家によるテスト解析・分析を行い、要件に対応出来るサーバー構築・設定を行います。
また、必要に応じてMySQLベンチマークテストも実施します。
これまでに、一般ユーザーのサイト内回遊のシナリオを考え、以下のテストおよびサポートを実施した実績があります。
- ログイン処理、フォーム送信、サイト内検索、動画配信や大容量ファイルのダウンロードをシナリオを元に自動計測
- 上記の負荷計測結果を元に、通信やサーバー処理を解析し適切なシステム構成を導出
- リリース期間中は、監視を行い状況に応じて自動・手動によるスケールアップ対応
- 監視期間後には、サーバーの稼働状況等の作業報告
まとめ
新規構築時やイベントによる大量アクセス、または予期できない不安材料があるサービスに対して、事前に負荷テストを実施することで、安心してウェブサイトやシステムをご提供できます。
ポイントをまとめると以下になります。
- 負荷テストは、「サイト・サーバー・システムが実際の要求・業務に耐えられる処理能力を持っているかどうかを検証する」ためのテスト
- 過剰な対策となる場合もあるが、対策不足による事故を防げるように、費用・時間をどの程度掛けて実施するべきかよく判断しなければならない
- テストのみでなく、適切なシステム構成の設計、およびサポート体制の計画を立て着実に実施してこそ価値がある
特に大規模なシステムや多くの人の利用が想定されるウェブサイトでは事前の設計が何より重要になりますので、ぜひご検討ください。