こんにちは。モリモトです。
アプリをリリースする際に欠かせない工程っていろいろとありますよね。
今日はその中から負荷テストについて、どういう流れで実施すればいいのかインフラの視点から考えてみたいと思います。
■てゆうか負荷テストってなに?
ピーク時に近い負荷をかけて品質保証や動作確認を行うことです。
それにより、高負荷時にしか発生しない問題を発見することができてリリース後の事故を防ぐことができます!
「動く」と「高負荷時に動く」はイコールではないですよ。
■なぜ負荷テストは必要なの?
きちんとした負荷テストを実施しないと以下のようなポイントで問題が発生し地獄を見ます。
- リリース直後の新規ユーザ登録でユーザの登録ができない…
- メンテナンス後にユーザのアクセスが集中してメンテナンスを開けることができない…
- ピーク時のイベントでエラーが発生しプレイできない…
例:先行してリリースしたA社のアプリ。
高負荷が原因で2週間ダウン!
後発のB社の同種アプリにユーザの大半が流れてしまう・・・・
こういった大きな機会損失を防ぐためにも負荷テストは必要です!
■負荷テストのフロー
負荷テストの簡単なフローはざっくり以下のような感じなります。
- クリアの目標値を設定する
- 環境の構築
- シナリオ作成&実施(JMeter)
- 負荷のチェック(モニタリングツールを利用)
- アプリ側の改修
- サーバ側の調整
目標をクリアできるまでtrial and errorで4~6を繰り返します。
負荷テストの経験に応じかかる工数は変動しますが
シナリオ作成から負荷テスト完了までだいたい2か月ほどかかります。
■終わりに
3.シナリオ作成が上手くいかず負荷テストにはいれないまま、
どんどんスケジュールが遅れるという話をよく聞きます。
しかしこのシナリオ作成を怠ると、まったく意味のない負荷テストになってしまいます。
次回はシナリオでチェックすべき項目(JMeterインストールからアサーション設定など)や、
モニタリングツールでの負荷のチェック方法など記載していけたらと思います。