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

  • 0
    いいね
  • 0
    コメント

    概要

    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のロングポーリング機能を試してみた