読み方 : アマゾンエスキューエス

Amazon SQS【Amazon Simple Queue Service】

Amazon SQSとは?

米アマゾンドットコム(Amazon.com)社のクラウドサービスAmazon Web Services」(AWS)のサービス品目の一つで、メッセージキューイング機能を提供するもの。プログラム間で非同期にメッセージの受け渡しができる。
Amazon SQSのイメージ画像

アプリケーションを構成するプログラム間ではデータの受け渡しが発生するが、各プログラム同士が相対で直接通信する仕組みだと、片方の処理が遅延したり停止した場合に相手方も処理が止まってしまい、連鎖的に障害が広がりやすい。これを改善するためにデータの伝達の仲介をする仕組みを「メッセージキューイング」(MQMessage Queueing)という。

Amazon SQSはクラウド上で動作するメッセージキューイングサービスで、送信側(プロデューサー)と受信側(コンシューマー)の間にキューを挟み、メッセージを一時的に蓄積する。受信側は自分のペースでキューからメッセージを取り出して処理できるため、両者を時間的・処理速度的に切り離すことができる。この設計は「疎結合」と呼ばれ、システム全体の耐障害性スケーラビリティを高めることに資する。

Amazon SQSには2種類のキューが用意されている。「標準キュー」はスループットがほぼ無制限で、メッセージは少なくとも1回は配信されるが、順序の保証はない。「FIFOキュー」はメッセージの順序を厳密に保ち、重複配信を防ぐ仕組みを持つ。金融取引や在庫管理など、処理順序の正確さが求められる用途にはFIFOキューが選ばれる。

メッセージの最大サイズは256KBで、それを超えるデータは一旦Amazon S3に保存してAmazon SQSにはそのURLを渡す運用が一般的となっている。メッセージが一定時間内に処理されない場合、自動的にキューに戻される「可視性タイムアウト」という仕組みも備えており、処理の失敗に対する安全策として機能する。処理に繰り返し失敗したメッセージは「デッドレターキュー」(DLQ:Dead Letter Queue)に隔離され、後から原因を調査できる。

他の多くのAWSサービスと同じく、利用者側ではサーバ管理が不要であり、スケーリング冗長化はサービス側で処理される「フルマネージド」型のサービスである。料金はリクエスト数やデータ転送量に基づく従量課金である。AWS環境ではバッチ処理の平準化、マイクロサービス間の通信、イベント駆動処理などで利用される。AWS LambdaやAmazon SNS、Amazon EC2など他のAWSサービスとの連携も容易で、組み合わせて用いられることも多い。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。