AWS SQS(Simple Queue Service)とは?
AWS SQS(Simple Queue Service)は、メッセージキューサービス です。システム間でデータ(メッセージ)をやり取りする際に、メッセージを一時的に保存して非同期処理を実現するために使用されます。
🎯 SQSの特徴
✅ 非同期処理が可能
- 送信側(プロデューサー)と受信側(コンシューマー)が直接やり取りせずに、SQSを介してメッセージを受け渡せる。
- これにより、処理の負荷を分散し、システムの柔軟性を向上させる。
✅ フルマネージドサービス
- AWSがスケーリングや可用性を管理してくれるので、運用負担が少ない。
✅ 異なるコンポーネント間の疎結合化
- メッセージをキューに蓄積し、コンシューマーが必要に応じて処理するため、システムの依存関係を減らせる。
✅ 2つのキュータイプ
キュータイプ | 特徴 |
---|---|
Standard Queue(標準キュー) | 無制限のスループット、メッセージの順序は保証されない(Best-Effort Ordering)、メッセージの重複が発生する可能性がある(At-Least-Once Delivery) |
FIFO Queue(FIFOキュー) | メッセージの順序を保証(First-In-First-Out)、重複メッセージなし(Exactly-Once Processing)、スループットに制限あり(最大300TPS) |
🏗 基本的な動作の流れ
- プロデューサー(送信側) がSQSキューにメッセージを送信
- SQSがメッセージを保存(一定時間キューに保持可能)
- コンシューマー(受信側) がメッセージを取得し処理
- メッセージを削除(処理完了後、コンシューマーがSQSから削除)
📌 具体的なユースケース
-
注文処理システム
→ 注文データをSQSに入れて、バックエンドで順次処理する -
動画処理・画像変換
→ 動画アップロード後、SQSを通じて非同期にエンコード処理 -
ログ処理・イベント駆動アーキテクチャ
→ マイクロサービス間でのメッセージ連携に利用
🚀 関連AWSサービス
サービス | 説明 |
---|---|
SNS(Simple Notification Service) | メッセージのプッシュ配信(サブスクライブ) |
Lambda | SQSのメッセージをトリガーにして処理を実行 |
Amazon EventBridge | システム間のイベント連携 |
💡 まとめ
AWS SQSは、システムのスケーラビリティを向上させ、非同期処理を簡単に実装できるメッセージキューサービスです。特にマイクロサービスや分散システムでの活用が多く、負荷分散やスケーラビリティの向上に役立ちます。