LoginSignup
8
6

More than 5 years have passed since last update.

AWS SQSの各設定値の意味 & Ansibleの書式

Posted at

概要

AWS SQSの各設定値の意味と、Ansibleの書き方です。

設定値

47f65646afce1836703bd3b19ce5092d.png

項目 設定内容
デフォルトの可視性タイムアウト(Default Visibility Timeout) キューのメッセージは、自動では削除されない。
そのため、メッセージ取得バッチ(Lambdaなど)が複数ある場合、それぞれが同一のメッセージを取得してしまう可能性がある。
これを回避するために、あるバッチからメッセージが取得されたら、他のバッチからメッセージが取得できないように、一定時間メッセージを非表示にする時間の設定。デフォルト30秒。
メッセージ保持期間(Message Retention Period) メッセージ保持期間
最大メッセージサイズ(Maximum Message Size) 1メッセージの最大サイズ
配信遅延(Delivery Delay) メッセージが登録された後、Lambdaなどのバッチがメッセージが取得できるようになるまでの時間。
可視性タイムアウトが、メッセージ取得後なのに対し、こちらはキューに登録後、一定時間メッセージを非表示にする。
メッセージ受信待機時間(Receive Message Wait time) ロングポーリングの時間。Lambdaなどのバッチがメッセージを取得しに行った時にキューが空だった場合、ここで設定された時間だけ、キューにメッセージが入ってくるのを待つ。
再処理ポリシーの使用 下記の機能を使う場合はチェック
デッドレターキュー(Dead Letter Queue) 処理に失敗したキューを退避させる、別のSQSのキュー名(ベットSQSキューの作成が必要)
最大受信数(Maximum Receives) リトライ回数

Ansibleの書式

main.yml
- name: sqs
  become_user: '{{ username }}'
  sqs_queue:
    # キューの名前
    name: 'my_sqs'
    # リージョン
    region: 'ap-northeast-1'
    # デフォルトの可視性タイムアウト
    default_visibility_timeout: 30
    # メッセージ保持期間
    message_retention_period: '{{ 86400 * 4 }}'
    # 最大メッセージサイズ
    maximum_message_size: 204800
    # 配信遅延
    delivery_delay: 0
    # メッセージ受信待機時間
    receive_message_wait_time: 0
    # 再処理ポリシーの使用
    redrive_policy:
      # 最大受信数
      maxReceiveCount: 2
      # デッドレターキュー
      deadLetterTargetArn: 'arn:aws:sqs:ap-northeast-1:{{ account_id }}:my_sqs_dlq'

参考

AWS SQS(Amazon Simple Queue Service)の使い方
【AWS】SQSをただただ触ってみただけの話
SQSのロングポーリング機能を試してみた

8
6
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
8
6