
Amazon SQS(Simple Queue Service)は、AWSが2004年に内部利用を開始し2006年7月に正式公開した、AWS最古参のフルマネージドメッセージキューイングサービスです。送信側がメッセージをキューに投げ込み、受信側がポーリングして取り出すという「Pull型」のキューイング基盤で、無制限のスループット・複数AZでの自動冗長化・少なくとも1回の配信保証(at-least-once delivery)を備えています。標準キュー(順序保証なしの最高スループット)とFIFOキュー(順序保証あり、重複排除あり)の2タイプがあり、マイクロサービス間の疎結合・バッチワーカーのジョブ供給・Lambdaトリガー源として現代のAWSアーキテクチャに広く組み込まれています。
この記事の目次
- 標準キューとFIFOキューの違い
- 2006年公開:AWS最古のサービスとしての歴史
- 現場での主な使われ方
- SNS・Kinesis・MSKとの比較
- まとめ
標準キューとFIFOキューの違い

SQSの標準キューは、無制限のスループット(事実上の上限なし)と少なくとも1回の配信保証を提供しますが、配信順序は保証されず、まれに同じメッセージが2回配信されることがあります。重複や順序の入れ替わりが許容される非同期処理(メール送信、画像変換、通知投げ込み)には標準キューが最適で、ほぼ全てのスケール条件下で安定動作します。
FIFOキューは2016年に追加された機能で、グループ単位での厳密な順序保証と一度きりの配信を提供します。ただしスループットには上限があり(高スループット設定で3000件/秒/グループ)、決済処理や在庫差し引きのような順序が重要な業務に向きます。両タイプともデッドレターキュー(DLQ)を設定でき、規定回数以上受信されても削除されなかったメッセージを別キューに退避できる仕組みを持ちます。Visibility Timeout(可視性タイムアウト)の概念で、ワーカーが処理中のメッセージを一時的に他から見えなくし、処理失敗時に再配信する設計が特徴です。
2006年公開:AWS最古のサービスとしての歴史

SQSは2004年に社内向けに作られ、2006年7月にAWSの最初の一般公開サービスとして登場しました。S3が同年3月、EC2が8月の公開で、SQSはこの2つの間に位置する、AWSの「クラウド時代を切り開いた最初の3サービス」の一角です。当時のAmazon社内では、注文処理・在庫管理・配送計算など多数の分散サービス間でメッセージを安定的にやり取りする基盤が必要で、その経験がそのまま公開サービスに昇華された経緯があります。
2016年11月にFIFOキューが追加され、順序保証が必要な金融・在庫系の業務にも使えるようになりました。2018年6月にはLambdaのイベントソースとしてSQSが正式サポートされ、Lambdaが自動でSQSキューをポーリングしてメッセージを処理する構成が一般化しました。20年以上稼働している成熟サービスでありながら、現代のサーバレス・マイクロサービス基盤の中核として継続的に拡張されており、AWSの「枯れた信頼性」を象徴する存在になっています。
現場での主な使われ方

SQSの代表的な使い方は、マイクロサービス間の疎結合化です。「注文受付サービスがSQSにメッセージを置き、在庫サービス・決済サービス・通知サービスが各自のキューから取り出して非同期に処理する」というパターンは、現代のEC・SaaS設計の定石になっています。送信側と受信側のデプロイサイクルを切り離せるため、片方の障害がもう片方に伝播しないという耐障害性も得られます。
Lambdaのイベントソースとして使えば、SQSキューにメッセージが入ったタイミングで自動的にLambda関数が並列起動し、メッセージ件数に応じてスケールします。ECSワーカーのタスク数をSQSのキュー深度(ApproximateNumberOfMessages)に応じてAuto Scalingさせる構成も典型例で、トラフィックのピークを安全に吸収する基盤になります。失敗が許容されないジョブはDLQに退避して人手で対処する運用も一般的で、SQSは「分散システムの安全弁」として現代のクラウドアーキテクチャに不可欠な役割を果たしています。
SNS・Kinesis・MSKとの比較

SNSは「Push型」のPub/Subで、1メッセージを複数の購読者(メール・SMS・Lambda・SQSなど)にファンアウト配信する仕組みで、SQSとは方式が異なります。「1件のイベントを多くの受信者に配る」ならSNS、「多数のジョブを1つの処理プールで捌く」ならSQS、というのが一般的な使い分けで、SNS→SQSの組み合わせ(ファンアウトパターン)も典型構成です。
Kinesis Data Streamsは順序保証付きの大量データストリーム用で、シーケンス番号でデータ位置を管理し、複数コンシューマーが独立にデータを再生できる点がSQSと異なります。MSK(Managed Streaming for Kafka)はApache Kafkaのマネージドサービスで、より高度なストリーム処理向けです。EventBridgeはイベント駆動のルーティング基盤で、ルールベースで対象サービスにイベントを配る位置付けです。SQSは「シンプルで枯れたキューイング」という独自の地位を持ち、他のメッセージング系サービスと棲み分けながら、現在もAWSアーキテクチャの土台として広く使われています。
まとめ
Amazon SQSは2006年公開のAWS最古参サービスで、Pull型のフルマネージドキューイング基盤として20年以上運用されてきました。標準キューとFIFOキューを使い分け、DLQやVisibility Timeoutといった機能で分散システムの安全弁の役割を担っています。Lambdaトリガー・ECS Auto Scalingの源・SNSとのファンアウトなど、現代のマイクロサービス・サーバレス構成の中核として今も第一に選ばれる基盤です。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント