マネジメントコンソールの新機能 SQS DLQ 再処理 を試してみた

2021年12月1日に発表されたEnhanced Dead-letter Queue Management Experience for Amazon SQS Standard Queues」が東京リージョンでも利用可能だったので早速試してみました。
2021.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

2021年12月1日に発表されたEnhanced Dead-letter Queue Management Experience for Amazon SQS Standard Queues」が東京リージョンでも利用可能だったので早速試してみました。

手順

マネジメントコンソールでDLQを表示します。画面中央上のボタンの並びに「DLQ再処理の開始」が追加されているのでクリックして「デッドレターキューの再処理」画面へ遷移します。

今回はメッセージを元のキューへ戻すので

  • メッセージ送信先として「再処理のためソースキューに入れる(デフォルト)」
  • 速度コントロール設定として「システムは最適化されました(デフォルト)」

を選択します。 ※ 「システムは最適化されました」は英語では「System optimized」でした。

DLQ内のメッセージをポーリングして、再処理可能かどうか確認したら「DLQ再処理」で再処理を開始します。

再処理の進捗画面に遷移して、進捗が表示されます。

(ここで「正常に完了しました」はソースキューへのメッセージ送信が完了しただけでコンシューマーでの処理が完了したことを表さないことに注意)

まとめ

私の所属するDevOpsチームではSQSを使った非同期処理のコンポーネントをいくつか運用しており、DLQに移動したメッセージの内容を確認して再処理するのは日常的なタスクなのでこの機能を知った時には「これだよ、これ!」と沸き上がっていました。この機能によってDLQの内容を確認するタスク自体がなくなるわけではありませんが、再処理に必要な手間がグッとへるし、手順書の内容もシンプルにできるのではと思います。