4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実践ガイド:AWS EC2 Worker + SQS ストレステストを行うための手順と分析方法

Posted at

AWS EC2 Worker と SQS ストレステスト手順ガイド(Part 2)

本記事(Part 2)では、実際にストレステストを実施するための
JMeter 設定、AWS 側監視ポイント、結果分析方法を整理します。

image.png


1. テストシナリオの詳細

Case 1:500 threads / 60 秒

  • Throughput:8.3 req/s
  • Success:100%
  • 平均応答:227ms
  • 最大応答:307ms
  • Worker CPU:60〜70% 程度
  • SQS:バックログなし
  • RDS:接続枯渇なし

これにより中負荷で十分安定していると評価できます。

追加シナリオ例(推奨)

より実践的な検証のため、次のような追加シナリオも有効です。

  • Burst Test:短時間で大量メッセージ投入
  • Degrade Test:DB の接続数を意図的に低下
  • Long Duration:1〜3時間の長期連続テスト
  • Thread Variations:Worker の Thread 数を変化させて最適値を探索

2. JMeter 設定手順

Thread Group の構成

Thread Group:
  Number of Threads: 500
  Ramp-up Period: 60
  Loop Count: 1

HTTP Request の設定

POST https://{api-id}.execute-api.{region}.amazonaws.com/prod/push

Body:
{
  "messageId": "${__UUID()}",
  "payload": "${__RandomString(32,ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890)}",
  "timestamp": "${__time(yyyy-MM-dd'T'HH:mm:ss)}"
}

Headers:
  Content-Type: application/json
  x-api-key: ${API_KEY}

非 GUI モードで実行

jmeter -n -t HTTPRequest_500_60_001.jmx -l results.csv -JAPI_KEY=xxxx

負荷をより現実的にするためには:

  • Stepping Thread Group の利用
  • CSV Data Set で payload を変化
  • Timer でランダムディレイを挿入

なども効果的です。


3. CloudWatch の監視ポイント

テスト中に確認すべきメトリクスと理由は次の通りです。

メトリクス 意味 重要性
QueueDepth 未処理メッセージ数 Worker 遅延の指標
OldestMessageAge 最古メッセージ滞留時間 バックログの発生
CPUUtilization Worker の負荷 Thread 設定を最適化
MemoryUtilization メモリ使用率 予期せぬ OOM を防ぐ
DBConnections 接続数 Connection Pool 枯渇対策
Error Count Worker の例外数 処理失敗の早期検知

4. 結果分析方法

ストレステストの分析では、以下を複合的に見ます。

● QueueDepth が増え続ける場合

→ Worker が処理に追いついていない
対策:Thread 増加 / EC2 スケールアウト / DB 改善

● CPU が 100% 張り付き

→ Worker がボトルネック
対策:コード最適化 / インスタンスサイズ変更

● DLQ にメッセージが増える

→ 処理失敗 or 処理遅延
対策:Retry ポリシー見直し、例外ログ調査

● Throughput が頭打ち

→ JMeter・SQS・ネットワークいずれかが制限
対策:JMeter の負荷生成能力や API Gateway の制限も確認


5. まとめ(Part 2)

Part 2 では、

  • JMeter を用いたテスト手順
  • CloudWatch の監視要点
  • 実行結果の分析方法
    を解説しました。

Part 1 と合わせて読むことで、
AWS 非同期基盤におけるストレステストの全体像を把握できる内容になっています。
(https://qiita.com/philai/items/c5ff74c5c232957777a7)

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?