Amazon SQS
SQS
アプリケーションのつなぎ方
特徴
ほぼ無制限のスケーラびりティを備えたフルマネージドな分散メッセージキュー
つなぐコンポーネントに求められること
- 機密性
- 可用性
- 低価格
ユースケース
- バッファリングとバッチ化 : 一時的なリクエストの均一化
- ワークキュー: プロデューサーとコンシューマー処理の依存処理を低減
- リクエストのオフロード: 重い処理の切り出しによる応答性能の改善
- ターゲットのファンアウト: Amazon SNSとの組み合わせによる処理の並列化
SQS キューの特徴
- スタンダードキュー: 最低1回の配信/順序はベストエフォート
- FIFOキュー: キューの順序を保証、一度のみ配信
キューの取得方法
- ショートポーリング: 複数キューを一つのスレッドでポーリングする場合に利用、即応答
- ロングポーリング(多くのケースはこっち):20秒でタイムアウト
メッセージ取得のお作法
- ポーリング
- 取得&処理
- 削除
機能詳細
- 可視性タイムアウト: 他のコンシューマが取得したら、一定期間そのキューを他のコンシューマからは取得できなくする
- 遅延キュー/メッセージタイマー: プロデューサがキューに入れてからコンシューマがリクエストを送れるまでの遅延時間
- Dead Letter Queue: 正しく処理できないキューを分離しておける
- サーバーサイド暗号化: キューに入っているメッセージをKMSで暗号化
- キューへのアクセス制御: Amazon SQSポリシーでキュー自体にアクセス制御、IAMと併用可
- メッセージ属性: メッセージ本文とは別にメタ情報を持てる。最大10個
- モニタリング:CloudWatch でキューを監視可能