性能テストの導入
1. 目的
現在のCI/CDで実行している自動テストは機能的な動作確認が中心で、想定される負荷がかかった状態での挙動は検証していません。このままでは、本番で想定外のアクセスが発生したときに、レスポンスタイムが急激に悪化したり、サービスが落ちたりするリスクに気付けません。
そこで、性能テストを導入し、想定する負荷条件下でシステムが許容範囲内のレスポンスタイム・エラー率を維持できるかを検証してみましょう。
2. やるべきこと
- 想定するリクエスト数・レスポンスタイム・エラー率の許容値を検討してみましょう
- 負荷シナリオに沿った性能テストのスクリプトを作成してみましょう
- GitHub Actionsの定期実行ワークフロー(スケジュールトリガー)として組み込んでみましょう
3. 余裕があれば
- オートスケーリングが想定通りに発動することまで確認してみましょう
4. ツール・機能の候補
※ 以下のすべてを使う必要はなく、目的に合わせて適切なものを選んでみましょう。ここに無いツールを使っても構いません。
| ツール・機能名 | 概要 |
|---|---|
| Locust | Pythonで負荷シナリオを書ける負荷テストツール |
| k6 | JavaScriptで負荷シナリオを書ける負荷テストツール |
| JMeter | GUIベースで負荷シナリオを構築できる老舗の負荷テストツール |
| Apache Bench (ab) | コマンド一発でシンプルな負荷テストを実行できる軽量ツール |
| Amazon CloudWatch | テスト中のサーバ側メトリクス(CPU・レスポンスタイム等)を確認 |
5. 目安期間
2〜3週間