😺

AWS SQS

に公開

はじめに

個人の備忘録です

SQS

  • 基本キューを作成した際に、細かい設定をしておきます

キューの属性

  • デフォルトの可視性タイムアウト
  • メッセージ保持期間
  • 最大メッセージサイズ
  • 配信遅延
  • メッセージ受信待機時間ReceiveMessageWaitTimeSeconds
    • 0ならショートポーリング、1s以上ならロングポーリング
 sqs = boto3.resource('sqs')
    queue = sqs.get_queue_by_name(QueueName=queue_name)
    
response = queue.send_messages(Entries=entries)

DLQの設定 ( 同時にできるみたい )

  • 再処理ポリシーの使用
  • 最大受信数

lambda + SQS

  • lambdaの設定の際に、SQSを指定する
  • SQSキュー
  • バッチサイズ
  • lambda側でキューを消す作業必要?
  • ジョブの管理等はSQS側

fargate + SQS

  • fargateで10sおきとかに取りに行くコードを書くべき?
  • SQS.Queue.receive_messages()
  • https://qiita.com/kazunobo/items/0abd2e53afc154e96992
  • fargateでポーリングの処理を書かなきゃだめ
  • SQSは決してメッセージをどこかに「プッシュ」するのではなく、「プル」するサービスなのです。
  • ECSに移行する際には、処理するメッセージをSQSにポーリングするようにコードを変更する必要があります。一般的にこれを設定する方法は、コンテナとして生成されたときに、単に永遠にSQSキューをポーリングし、受け取ったメッセージを処理するDockerイメージを持つことです
  • SQSキュー内のメッセージ数に基づいてECSの自動スケーリングを設定します。

https://devblog.thebase.in/entry/2019/12/22/120000

これ読む ( fargateのdeploy
https://dev.classmethod.jp/articles/awsdevday2020-deploy-fargate-easily/

終わりに

Discussion