Cloud Service
Amazon SQS
フルマネージドのメッセージキュー。送信側と処理側を疎結合化し、スパイクをバッファして取りこぼさない。
中級SAA-C03DVA-C02SAP-C02信頼性パフォーマンス効率コスト最適化
最終更新: 2026-05-31公式ドキュメント ↗
TL;DR要点だけ先に
- 1.メッセージを一旦ためる箱(キュー)で送信側と処理側を分離。
- 2.急増しても取りこぼさず処理側は自分のペースで捌ける。
- 3.標準は最低1回配信なので冪等に。順序厳守ならFIFO。

解決する課題
- アクセス急増でバックエンドが詰まる → キューでバッファ
- 送信側と処理側を疎結合にして独立にスケールしたい
- 失敗したジョブを安全に退避・再試行したい
主要概念と用語
- 標準キュー: 高スループット・順序保証なし・最低1回配信
- FIFOキュー: 順序保証+重複排除(exactly-once処理)
- 可視性タイムアウト: 取り出し中のメッセージを一時的に隠す
- デッドレターキュー(DLQ): 規定回数失敗したメッセージの退避先
- ロングポーリング: 空ポーリングを減らしコスト削減
仕様・制限・クォータ
- メッセージ保持は最大14日(既定4日)
- メッセージ最大256KB(大きいデータはS3+参照)
- プル型(ワーカーがポーリング)
内部の仕組み
ワーカーがキューをポーリングしてメッセージを取得すると、可視性タイムアウトの間そのメッセージは他のワーカーから見えなくなります。処理が成功したら削除、失敗(タイムアウト)したら再び見えるようになり再試行されます。規定回数失敗するとDLQへ移動します(=最低1回配信なので冪等な処理が前提)。
二重処理に備える
標準キューは「最低1回」配信なのでまれに重複します。処理は冪等に作るのが鉄則。厳密な順序/重複排除が要るならFIFO。
設計パターン / ベストプラクティス
- SQS + Auto Scaling: キューの深さでワーカー数をスケール
- SQS → Lambda: メッセージ到着でLambda起動
- DLQ で失敗を退避し、原因調査・再投入
- 大きいペイロードはS3に置きキューには参照
運用・監視・トラブルシュート
- メトリクス:
ApproximateNumberOfMessagesVisibleApproximateAgeOfOldestMessage - 滞留増 → ワーカー不足やダウンストリーム障害を疑う
- DLQに溜まる → 処理ロジック/権限/フォーマットを確認
コスト
- リクエスト数課金。ロングポーリングで空ポーリングを減らすと安くなる
セキュリティ
- IAM/キューポリシーでアクセス制御
- 保存時暗号化(SSE/KMS)、VPCからはインターフェース型エンドポイント
Well-Architected の観点
- 信頼性: バッファ+リトライ+DLQで取りこぼさない
- パフォーマンス効率: 処理側を独立にスケール
- コスト最適化: 必要な時だけ処理
試験で問われるポイント
頻出
- 疎結合・スパイク吸収=SQS
- 可視性タイムアウト / DLQ / 冪等
- 順序・重複排除が要ればFIFO、同報したいならSNS
📝 SQS ミニ確認テスト第 1 問 / 全 3 問
Web層と重い処理のワーカー層を疎結合化し、急なスパイクを取りこぼさずバッファしたい。
関連サービス・比較
| 観点 | SQS | SNS | EventBridge |
|---|---|---|---|
| モデル | キュー(1対1) | Pub/Sub(1対多) | イベントバス(ルール配信) |
| 配信 | プル(ポーリング) | プッシュ | プッシュ(ルーティング) |
| 用途 | バッファ/疎結合 | 同報/ファンアウト | イベント駆動連携 |
ハンズオン / CLI例
# キュー作成 → 送信 → 受信
aws sqs create-queue --queue-name jobs
aws sqs send-message --queue-url "$URL" --message-body '{"id":"job-1"}'
aws sqs receive-message --queue-url "$URL" --wait-time-seconds 20 # ロングポーリング
AWS Service
Amazon SQSを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: AWS / カテゴリ: アプリ統合 / 難易度: intermediate
導入後に効く点
急増しても取りこぼさず処理側は自分のペースで捌ける。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
数字・仕様の読み方
- クラウド
- AWS
- カテゴリ
- アプリ統合
- 難易度
- intermediate
- 関連資格
- SAA-C03 / DVA-C02 / SAP-C02
- 設計柱
- reliability / performance / cost
判断チェックリスト
- 自社の用途が「アプリ統合 / reliability」に近いか確認する。
- 強みである「メッセージを一旦ためる箱(キュー)で送信側と処理側を分離。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。