Q30 — AWS SAA-C03 第2章

第 30/65 問 | ← 第2章

Q95. ある企業が、Amazon API Gateway API によって呼び出される AWS Lambda 関数上でアプリケーションをホストしています。これらの Lambda 関数は、顧客データを Amazon Aurora MySQL データベースに保存します。データベースのアップグレード中、Lambda 関数はアップグレード完了までデータベース接続を確立できず、その結果、一部のイベントにおける顧客データが記録されません。ソリューションアーキテクトは、データベースアップグレード中に生成された顧客データを一時的に保存するソリューションを設計する必要があります。この要件を満たすソリューションはどれですか?

正解: D. 顧客データを Amazon Simple Queue Service (Amazon SQS) FIFO キューに保存し、キューをポーリングして顧客データをデータベースに保存する新しい Lambda 関数を作成します。

解説

データベースアップグレード中に接続が一時的に失われる状況において、顧客データの喪失を防ぐには、非同期かつ耐障害性のある一時保存機構が必要です。選択肢 D では、SQS FIFO キューがメッセージの順序保証と重複防止を提供し、別途作成した Lambda 関数がキューからデータを安全に取得・処理することで、データベースが利用可能になるまで待機できます。これは、アップグレード中の一時的な接続不可を許容する最も堅牢な設計です。一方、A は接続プーリングやフェイルオーバーを支援しますが、アップグレード中(特に書き込み不可状態)の接続確立自体を保証せず、データ喪失を防げません。B はタイムアウトや再試行回数の制限により、長時間のアップグレードに対応できません。C は Lambda のローカルストレージ(/tmp)は一時的で、関数インスタンスのライフサイクルに依存し、永続性やスケーラビリティがなく、信頼性が低いため不適切です。