2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon SQS 概要

Posted at

学習内容の備忘録として、Amazon SQSの概要をまとめる。

Amazon SQSとは

  • AWSが提供するメッセージキューシステム。
    • メッセージキュー:クラウドアーキテクチャ(サーバーレス、マイクロサービスなど)で使用される非同期アプリ対アプリの通信形態。

Amazon SQS 構成要素

  • プロデューサ
    • キューにメッセージを送信するアプリケーション。
  • コンシューマ
    • キューのメッセージを取得するアプリケーション。
  • メッセージ
    • プロデューサが生成するデータ。
  • キュー
    • メッセージをキューイングするシステム。
      SQS_component.png

Amazon SQS 利点

  • パフォーマンスの向上
    • システムのコンポーネントが、別のコンポーネントの待機で処理を停止する必要がない。
      • 非同期通信により、プロデューサは、処理を待たずにキューにリクエストを追加できる。
      • コンシューマは、使用可能なときにのみメッセージを処理できる。
  • 信頼性の向上
    • メッセージキューでコンポーネントを切り離し、耐障害性を向上させることができる。
    • システムの一部を利用できない場合でも、他システムはキューとのやり取りを継続できる。
  • 拡張性
    • リクエストに応じたスケーリングができる。

Amazon SQS ユースケース

バッファリング

  • 突発的な大量リクエスト(スパイク)が発生する場合
    • バックエンド(コンシューマ)が可能な範囲でリクエストを処理
      SQS_buffering.png

ワークキュー

  • アプリケーション間の依存関係を弱めたい場合
    • それぞれのアプリケーションが任意のタイミングで処理を実施するため、サービス停止の影響を受けにくい。

      SQS_workqueue.png

リクエストのオフロード

  • 時間を要する処理が発生しても素早く応答させたい場合
    • プロデューサとコンシューマで処理内容に合わせたリソース割り当てを行う。
      SQS_request_offload.png

ターゲット ファンアウト

  • 複数処理を並列処理したい場合
    • Amazon SNSと組み合わせ、1メッセージ送信で処理を並列化
      SQS_fanout.png

Amazon SQS導入判断基準

条件 内容
アプリケーション間の送信データ形式 メッセージデータ(連続データではない)
同期/非同期方式 非同期(処理待機不要)
処理タイミング Pull方式(コンシューマの任意のタイミング)
コンシューマ数 1 or N(SNSと組み合わせる)

キューの種類

標準キュー FIFOキュー
スループット 〇:ほぼ無制限 △:最大 300 メッセージ/秒
配信方式 △:最低1回配信(2回以上も有り得る)
※同じメッセージを何度処理しても結果が変化しない設計とする or 重複実行しない仕組みが必要
〇:1回のみ配信
配信順序 △:順序が変わる可能性あり 〇:順序性保持

※料金はややFIFOが高い。

メッセージ取得方法

ショートポーリング

  • 即時応答方式。
  • キューにメッセージが存在しない場合に、キューが「空」であることを応答する。
  • 処理
    1. 複数キューから特定のキューをランダムに選択。
    2. そのキューのメッセージを取得。
      • 空のキューを選択した場合、そのキューからのメッセージ取得数は0。

ロングポーリング

  • 最大20秒取得待機し、応答する方式。
  • キューにメッセージが存在しない場合に、タイムアウトとしてキューが「空」であることを応答する。
  • 通常はロングポーリングを推奨。

その他の機能

Dead Letter Queue

  • 正常に処理できないメッセージがキュー内に滞留しないように分離先として利用するキュー。
    • 不具合の原因分析やアラーム設定による不具合検知に利用できる。

メッセージ暗号化

  • AWS Key Management Service(KMS)で管理する鍵を使用して、キュー内のメッセージを暗号化保護できる。
    • キューへのアクセス権+KMSへのアクセス権を持つユーザーがメッセージの送受信できる。

参考情報

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?