Q53 — AWS DOP-C02 第3章

第 53/100 問 | ← 第3章

ある宇宙探査会社は、複数の衛星からテレメトリデータを受信しています。これらのデータパケットは Amazon API Gateway 経由で受信され、直接 Amazon Simple Queue Service(Amazon SQS)標準キューに送信されます。対応するアプリケーションがキューをサブスクライブし、データを標準形式に変換します。 衛星から送信されるデータの不整合により、アプリケーションがデータ変換に失敗することがあります。このような場合、メッセージは SQS キュー内に残ります。DevOps エンジニアは、失敗したメッセージを保持し、科学者がそれらを確認・さらに処理できるようにするソリューションを開発する必要があります。 これらの要件を満たすソリューションはどれですか?

正解: C. SQS デッドレターキュー(DLQ)を作成します。既存のキューを再ドライバーポリシー(re-drive policy)を含むように変更し、最大受信回数(maxReceiveCount)を 1 に設定し、デッドレターキューの ARN を新しく作成したキューの ARN に設定します。科学者にデッドレターキューを使用して無効なデータを確認させ、その後再処理を行います。

解説

AWS SQS のデッドレターキュー(Dead-Letter Queue, DLQ)は、コンシューマーが正しく処理できないメッセージを保存するために使用されます。本問では、アプリケーションの処理失敗時にメッセージが元のキューに残留すると、無限ループや削除のリスクがあります。最大受信回数(maxReceiveCount)を 1 に設定することで、メッセージが最初に処理失敗した際に自動的に DLQ にルーティングされます。デッドレターキューは、失敗メッセージを独立して保存・アクセス可能にし、元のキューのブロッキングを回避します。AWS 公式ドキュメントでは、DLQ は失敗メッセージを処理する標準的な手法であり、カスタムロジックや手動介入を必要としません。オプション C は SQS のネイティブ機能を直接活用して要件を満たしており、他のオプション(S3、EventBridge の導入など)や非標準的な手法(仮想キュー)は、複雑性と保守コストを増加させます。