vol.25 あなたもできるWebサイトのパフォーマンステストと脆弱性テスト

f:id:BOEL:20150330223302j:plain

こんにちは。エンジニアの金村です。

今回は、Webサイトを作る上で重要な「パフォーマンステスト」と、「脆弱性テスト」についてお話します。

パフォーマンステストとは、Webサイトの運用が始まったとき、負荷によりサーバーが落ちるといったトラブルを未然に防ぐためにWebサイトの性能を確保するテストです。

脆弱性テストとは、Webサイトの脆弱性を狙った改ざんや情報漏えい、外部からの攻撃を防ぐためにWebサイトの問題点を検出するテストです。

ここでは、さまざまな目的に応じた各種テストをご紹介します。

 

パフォーマンステストの種類

f:id:BOEL:20150330223320j:plain

性能テスト

実際にWebサイトを見たとき、十分な表示・処理速度があるかなど、ユーザーが満足するレベルに達しているかを検証するためのテストです。

ストレステスト

Webサイトに、大量アクセスを試験的に発生させ、どのようなバグが発生するかを検証するテストです。これによって、アクセスがどれだけ増えるとエラーが起きるのか、データの破損が発生するのかを確認できます。

負荷(ロード)テスト

Webサイトの負荷を一時的に増大させて、想定されるピーク時の負荷に耐えられるかを検証するテストです。

負荷が通常時からピーク時に移り変わるにつれて、どれだけパフォーマンスが低下していくか、どれだけのユーザー数をサポートできるかなどを数値化して測定することを目的とします。

キャパシティテスト

Webサイトで管理するアプリケーションにおいて、最大ユーザー数を検証することに特化したテストです。

耐久テスト

Webサイトに長時間の負荷をかけ、安定性を維持できるかを検証するテストです。

 

検証のメリット

f:id:BOEL:20150330223402j:plain

パフォーマンステストを行うことには、さまざまな利点があります。

応答にかかるまでの時間、同時ユーザー数における処理能力の限界、どのコンテンツがパフォーマンスを劣化させる原因となっているか、想定外の負荷がかかったときにどのような影響を及ぼすのかを確認できます。

それらの結果を指標にして、どのような対応が必要になるかが明らかになるのです。

例えばサーバーが大量のアクセスに耐えられないことが分かった場合は、サーバーの性能向上を考えてみる必要があるかもしれません。また将来的にユーザー数が増大した場合に想定されるサーバーを拡充するプランをたてる指標にもなります。

 

パフォーマンステストのツール

f:id:BOEL:20150330223424j:plain

Load Impact

スウェーデンの会社が提供している負荷テストツールです。(月5回まで無料使用可)

URLを入力するだけで簡単に検証ができるので便利です。有料版にすると、同時接続数を増やすといったこともできるようになります。

Apache JMeter

無料で使えるツールで、GUIを使って操作できるオープンソースです。さまざまなシナリオでテストができます。例えば、応答時間、ループ回数、ユーザー数など細かく設定し、サイトに見合った検証が行え、とても便利です。

 

パフォーマンステストのツールは、無料のサービスがWeb上にたくさんあります。

検証したいWebサイトの性格に合うツールをぜひ探してみてください。

 

脆弱性テストとは

f:id:BOEL:20150330223642j:plain

パフォーマンステストと合わせて行ってもらいたいのは脆弱性テストです。

Webサイトは常に悪意のある攻撃者の脅威にさらされています。個人情報の漏洩や改ざん、運用妨害といったリスクを軽減するためにもテストの実施をすることはとても重要です。

※テストをする前に...レンタルサーバなどの場合は、サーバ管理者に一度テストの旨を伝えておくといいです。

 

OWASP ZAP

無料でWebサイトの脆弱性の有無をスキャンしてくれるオープンソースツールです。日本語にも対応しているので初心者にも扱いやすいと思います。

ただし、自前ではなく共用レンタルサーバーなどの場合、データベースに検査用のレコードを挿入したり、フォームなどの動的コンテンツに大量にリクエストが送信されるとサーバー管理者が攻撃されたと判断してしまいパスワードが変更されるといったこともあるのでテストするときは前もって申告するのがベターです。

 

まとめ

いくら素晴らしいWebサイトでも、たくさんのアクセスに耐えられないとなるともったいないことです。せっかくなら、多くの人にアクセスしてもらいたいですからね。

パフォーマンステストと聞くとちょっと難しく感じるかもしれませんが、ぜひともチャレンジして頑丈なサイトを作っていきたいですね。