Amazon Simple Queue Service
Overview
Amazon SQSは、フルマネージド型のメッセージキューイングサービス。
Amazon SQSを使うと、キューにメッセージを保存したり、キューからメッセージを取り出して処理ができる。
この仕組みを使うことで、疎結合なシステム間連携を実現できる。
メッセージをキューに格納している送信側のアプリケーションをプロデューサー、メッセージ受信側のアプリケーションをコンシューマーと呼ぶ。
- 送信側のアプリケーション
- プロデューサー
- 受 信側のアプリケーション
- コンシューマー
Amazon SQSの特徴
Amazon SQSには次のような特徴がある。
疎結合による耐障害性の向上
メッセージキューイングをシステムに導入すると、アプリケーションコンポーネントが切り離される。
したがって実行や失敗は個別のものとなり、システムの全体的な耐障害性が向上する。
伸縮自在に自動スケーリング可能
メッセージキューイングにフルマネージド型サービスであるAmazon SQSを使用すると、自動的にスケールされるため、運用管理のコストを減らすことができる。
Amazon SQS側でのメッセージの暗号化(SSE)をサポート
Amazon SQS側での暗号化(SSE)をサポートしており、各メッセージの本文に機密情報を含んでいても安全にやり取りできる。
高い可用性を維持できる
キューに保存されたメッセージは単一のリージョンの複数のAZで冗長構成にて配置される。
そのため、失われる心配がなく、設定された保持期間内であればいつでも使用できる。
処理できなかったメッセージの蓄積を防ぐことができる
メッセージが正常に処理されなかった場合に、そのメッセージがデッドレターキューという場所に移動するように設定できる。 処理不可能なメッセージを分離することで、メッセージの滞留を防ぐことができる。
2つのキュータイプが利用できる
アプリケーションの要件に合わせて、標準キューとFIFOキューの2つのタイプから選択し、使用できる。
2つのポーリング方式を利用できる
Amazon SQSではポーリングを行う方式として、アプリケーションの要件に合わせて、ショートポーリングとロングポーリングの2つの方式から選択できる。
- ショートポーリング
- 受信側がメッセージ問い合わせをしてキューが空だった場合、すぐに空のメッセージが返送される
- ロングポーリング
- 受信側が問い合わせをしてキューが空だった場合、受信待機時間(1秒から20秒)を設定することでその時間分SQSが待機してから応答が返却される。