TL

Cloud Service

Amazon SQS

フルマネージドのメッセージキュー。送信側と処理側を疎結合化し、スパイクをバッファして取りこぼさない。

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

解決する課題

  • アクセス急増でバックエンドが詰まる → キューでバッファ
  • 送信側と処理側を疎結合にして独立にスケールしたい
  • 失敗したジョブを安全に退避・再試行したい

主要概念と用語

  • 標準キュー: 高スループット・順序保証なし・最低1回配信
  • FIFOキュー: 順序保証+重複排除(exactly-once処理)
  • 可視性タイムアウト: 取り出し中のメッセージを一時的に隠す
  • デッドレターキュー(DLQ): 規定回数失敗したメッセージの退避先
  • ロングポーリング: 空ポーリングを減らしコスト削減

仕様・制限・クォータ

  • メッセージ保持は最大14日(既定4日)
  • メッセージ最大256KB(大きいデータはS3+参照)
  • プル型(ワーカーがポーリング)

内部の仕組み

ワーカーがキューをポーリングしてメッセージを取得すると、可視性タイムアウトの間そのメッセージは他のワーカーから見えなくなります。処理が成功したら削除、失敗(タイムアウト)したら再び見えるようになり再試行されます。規定回数失敗するとDLQへ移動します(=最低1回配信なので冪等な処理が前提)。

二重処理に備える

標準キューは「最低1回」配信なのでまれに重複します。処理は冪等に作るのが鉄則。厳密な順序/重複排除が要るならFIFO

設計パターン / ベストプラクティス

  • SQS + Auto Scaling: キューの深さでワーカー数をスケール
  • SQS → Lambda: メッセージ到着でLambda起動
  • DLQ で失敗を退避し、原因調査・再投入
  • 大きいペイロードはS3に置きキューには参照

運用・監視・トラブルシュート

  • メトリクス: ApproximateNumberOfMessagesVisible ApproximateAgeOfOldestMessage
  • 滞留増 → ワーカー不足やダウンストリーム障害を疑う
  • DLQに溜まる → 処理ロジック/権限/フォーマットを確認

コスト

  • リクエスト数課金。ロングポーリングで空ポーリングを減らすと安くなる

セキュリティ

  • IAM/キューポリシーでアクセス制御
  • 保存時暗号化(SSE/KMS)、VPCからはインターフェース型エンドポイント

Well-Architected の観点

  • 信頼性: バッファ+リトライ+DLQで取りこぼさない
  • パフォーマンス効率: 処理側を独立にスケール
  • コスト最適化: 必要な時だけ処理

試験で問われるポイント

頻出
  • 疎結合・スパイク吸収=SQS
  • 可視性タイムアウト / DLQ / 冪等
  • 順序・重複排除が要ればFIFO、同報したいならSNS
📝 SQS ミニ確認テスト1 問 / 全 3

Web層と重い処理のワーカー層を疎結合化し、急なスパイクを取りこぼさずバッファしたい。

関連サービス・比較

観点SQSSNSEventBridge
モデルキュー(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、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

アプリ統合reliabilityperformancecostSAA-C03

他クラウドの同等サービス

役割が近いサービスです。設計の置き換えや比較検討の参考に。