Udemy講師クーポン配布中。詳しくはこちら

【無料】AWS DVA-C02練習問題15問|Udemy講師作成

AWS DVA無料問題集です。正解と解説を確認する際は右側のボタンを押下してください。

問題集の完全版は以下Udemyにて発売しているためお買い求めください。問題集への質問はUdemyのQA機能もしくはUdemyのメッセージにて承ります。Udemyの問題1から15問抜粋しております。

多くの方にご好評いただき、講師評価 4.5/5.0 を獲得できております。ありがとうございます。

特別価格: 通常2,600円1,500円

講師クーポン適用で42%OFF

講師クーポン【全出題範囲を網羅+詳細な解説】AWS DVA-C02日本語実践問題集260問(ディベロッパーアソシエイト)

【全出題範囲を網羅+詳細な解説】AWS DVA-C02日本語実践問題集200問+α(ディベロッパーアソシエイト)

問題文:
AWS Lambda関数はイベントを処理するために同期的に呼び出されることがありますが、時折、Lambda関数の処理が失敗することがあります。この場合、失敗したイベントを収集して分析し、問題を修正する必要があります。 開発工数を最小限に抑えつつ、この要件を満たす最適な方法を選択してください。
選択肢:
A. 失敗したイベントに対して再試行するAWS Step Functionsのワークフローを構築します。
B. デッドレターキューを追加し、Amazon Simple Notification Service(SNS)FIFOトピックに失敗したメッセージを送信します。
C. デッドレターキューを追加し、Amazon Simple Queue Service(SQS)スタンダードキューに失敗したメッセージを送信します。
D. Lambda関数の全イベントに対してログ記録ステートメントを追加し、AWS CloudTrailのログをフィルタリングしてエラーを検出します。

正解: C

A. 失敗したイベントに対して再試行するAWS Step Functionsのワークフローを構築します。

不正解 Step Functionsは複雑なワークフローの管理には優れていますが、単純な失敗イベントの収集という要件に対しては過剰なソリューションです。ワークフローの設計、状態遷移の定義、エラーハンドリングの実装など、多くの開発工数が必要になります。また、Step Functionsは実行回数に応じて課金されるため、コスト面でも不利です。さらに、問題の要件は「失敗したイベントを収集して分析する」ことであり、再試行機能は求められていません。

B. デッドレターキューを追加し、Amazon Simple Notification Service(SNS)FIFOトピックに失敗したメッセージを送信します。

不正解 SNS FIFOトピックは、メッセージの順序保証と重複排除が必要な場合に使用されますが、失敗イベントの収集という用途には適していません。SNSは本来、複数のサブスクライバーにメッセージを配信するためのサービスです。失敗したイベントを一時的に保存して後で分析するという要件に対しては、メッセージを永続化できるSQSの方が適切です。また、SNS FIFOトピックはSQSスタンダードキューと比較してコストが高く、この用途には不要な機能に対して余分な費用を支払うことになります。

C. デッドレターキューを追加し、Amazon Simple Queue Service(SQS)スタンダードキューに失敗したメッセージを送信します。

正解 デッドレターキュー(DLQ)は、Lambda関数の処理に失敗した際に、そのイベントを自動的に指定されたSQSキューに送信する仕組みです。SQSスタンダードキューは高いスループットと低コストを提供し、失敗したイベントを確実に保存できます。設定も簡単で、Lambda関数の設定画面でDLQとしてSQSキューを指定するだけで済むため、開発工数を最小限に抑えることができます。また、SQSに蓄積された失敗イベントは後からいつでも取得・分析が可能です。

D. Lambda関数の全イベントに対してログ記録ステートメントを追加し、AWS CloudTrailのログをフィルタリングしてエラーを検出します。

不正解 CloudTrailはAWS APIの呼び出しを記録するサービスであり、Lambda関数内部の処理結果やエラー詳細は記録されません。Lambda関数のエラー情報を取得するにはCloudWatch Logsが適切です。また、全イベントにログ記録ステートメントを追加するのは、Lambda関数のコード修正が必要で開発工数が増加します。さらに、ログからエラーを検出・分析するには手動での作業が多く、効率的ではありません。失敗したイベント自体のデータも取得しにくく、問題の根本原因分析が困難です。

全体的な説明

問われている要件

  • Lambda関数が処理に失敗した際に、失敗したイベントを収集できること
  • 収集した失敗イベントを後から分析できること
  • 実装に必要な開発工数を最小限に抑えること

前提知識

デッドレターキュー(DLQ)とは

デッドレターキューは、メッセージ処理システムにおいて処理に失敗したメッセージを別の場所に隔離・保存する仕組みです。AWS Lambdaでは、関数の実行に失敗した際に、そのイベントデータを指定されたSQSキューまたはSNSトピックに自動的に送信できます。

Lambda関数のエラーハンドリング

Lambda関数が同期的に呼び出される場合、処理が失敗するとエラーレスポンスが呼び出し元に返されます。デッドレターキューが設定されていると、失敗したイベントのデータが自動的に指定された宛先に送信されるため、データの損失を防げます。

SQSとSNSの違い

  • SQS(Simple Queue Service):メッセージを一時的に保存するキューサービス。メッセージは取得されるまで保持され、1対1のメッセージ配信に適しています
  • SNS(Simple Notification Service):複数の宛先にメッセージを配信する通知サービス。1対多のメッセージ配信に適しています

各サービスの特徴

  • SQSスタンダードキュー:高いスループット、低コスト、メッセージの永続化が可能
  • SNS FIFOトピック:メッセージの順序保証と重複排除機能を提供、コストは高め
  • Step Functions:複雑なワークフローの管理とエラーハンドリングが可能、設計が複雑
  • CloudTrail:AWS APIの呼び出しログを記録、Lambda関数内部の処理は記録しない

解くための考え方

この問題では、失敗イベントの収集という要件を満たしつつ、開発工数を最小化する方法を選択する必要があります。

デッドレターキューとSQSスタンダードキューの組み合わせは、Lambda関数の設定画面での簡単な設定変更のみで実現でき、失敗したイベントを確実に保存できます。

他の選択肢は、要件に対して過剰に複雑であったり、適切なサービスの組み合わせではないため、開発工数やコストの観点で不適切です。

参考資料

  1. Lambda でのエラー処理と自動再試行
  2. Amazon SQS とは
  3. AWS Step Functions とは何ですか?

筆者のUdemy講師ページはこちら。

Udemy
syo @Cloud | AWS,Azure| Udemy syo @Cloud is a Udemy instructor with educational courses available for enrollment. Check out the latest courses taught by syo @Cloud
目次

スポンサーリンク

以下スポンサーリンクです。

この記事がお役に立ちましたら、コーヒー1杯分(300円)の応援をいただけると嬉しいです。いただいた支援は、より良い記事作成のための時間確保や情報収集に活用させていただきます。

目次