その他サービス ・
Amazon SQS 完全ガイド|マネージドメッセージキューの活用
SQS は AWS のフルマネージド メッセージキューサービス。プロデューサーがメッセージを送り、コンシューマーがポーリングで受信する非同期処理基盤。Standard キュー(高スループット・順序非保証)と FIFO キュー(順序保証・重複排除)の 2 種類があり、サービス...
AWS のフルマネージド メッセージキュー。Standard と FIFO の 2 種で、サービス間の疎結合と非同期処理を実現。
1. 概要(端的に)
SQS は AWS のフルマネージド メッセージキューサービス。プロデューサーがメッセージを送り、コンシューマーがポーリングで受信する非同期処理基盤。Standard キュー(高スループット・順序非保証)と FIFO キュー(順序保証・重複排除)の 2 種類があり、サービス間疎結合の標準ツール。
2. 何ができるか
- メッセージキューイング:送信→保管→受信
- 2 種のキュー:Standard / FIFO
- 遅延配信:Visibility Timeout
- DLQ(Dead Letter Queue):処理失敗時の隔離
- ロングポーリング:受信効率化
- Lambda トリガー:自動コンシューム
- 暗号化:KMS
Standard vs FIFO
| 観点 | Standard | FIFO |
|---|---|---|
| スループット | 無制限 | 300 メッセージ/秒(バッチで 3,000) |
| 順序 | ベストエフォート | 厳密保証 |
| 重複 | あり得る | 排除 |
| 用途 | 大量・順序非依存 | 順序・重複排除必須 |
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | リクエスト数 + データ転送 |
| 無料枠 | 月 100 万リクエスト |
| メッセージ最大サイズ | 256 KB |
| 保持期間 | 60 秒〜14 日 |
| 配信 | 少なくとも 1 回(Standard)/ 1 回のみ(FIFO) |
Visibility Timeout
- メッセージ受信後、他コンシューマから見えなくなる時間
- デフォルト 30 秒、最大 12 時間
- 処理時間に合わせて調整必要
DLQ
- 処理失敗が
maxReceiveCount回続いたメッセージを別キューへ - 障害分析・再処理用
4. 仕組み
SQS は プロデューサー → キュー → コンシューマー のシンプルなモデル。コンシューマーは Lambda / EC2 / ECS など何でも OK。
動作の流れ
- プロデューサーが SendMessage
- SQS キューに格納
- コンシューマーが ReceiveMessage(ロングポーリング推奨)
- メッセージ取得 → Visibility Timeout 適用
- 処理完了 → DeleteMessage
- 失敗で再表示 → 再処理 or DLQ 行き
5. ユースケース
ユースケース 1:マイクロサービス疎結合
注文サービス → SQS → 在庫サービス。
ユースケース 2:Lambda の負荷平準化
スパイクトラフィックを SQS でキューイング → Lambda 順次処理。
ユースケース 3:バッチジョブ
ジョブ投入 → ワーカー EC2 が逐次処理。
ユースケース 4:イベント駆動アーキテクチャ
SNS → SQS → Lambda の Fan-out パターン。
ユースケース 5:FIFO で順序保証
決済処理など順序が重要な業務。
6. 関連用語
- SNS — Pub/Sub 通知
- EventBridge — 高度なルーティング
- Lambda — SQS トリガー
- Step-Functions — オーケストレーション
7. 関連サイト
AWS 公式
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | キューの概念、SNS との違い |
| SAA | 高 | 疎結合設計、Lambda 連携 |
| DVA | 高 | DLQ・Visibility Timeout(頻出) |
| SOA | 中 | 運用・モニタリング |