Q11 — AWS SAP-C02 第3章
第 11/75 問 | ← 第3章
Q236. ある企業は、AWS Organizations 内の組織に属する「Source」という名前の AWS アカウントでアプリケーションを実行しています。そのアプリケーションの1つは AWS Lambda 関数を使用し、在庫データを Amazon Aurora データベースに格納しています。Lambda 関数はデプロイパッケージを用いてデプロイされています。また、Aurora の自動バックアップが有効化されています。この企業は、Lambda 関数および Aurora データベースを「Target」という新しい AWS アカウントへ移行したいと考えています。アプリケーションは重要データを処理するため、ダウンタイムを最小限に抑える必要があります。これらの要件を満たすソリューションはどれですか?
- A. Source アカウントから Lambda 関数のデプロイパッケージをダウンロードし、それを使用して Target アカウントに新しい Lambda 関数を作成します。自動バックアップによる Aurora DB クラスタースナップショットを Target アカウントと共有します。
- B. Source アカウントから Lambda 関数のデプロイパッケージをダウンロードし、それを使用して Target アカウントに新しい Lambda 関数を作成します。AWS Resource Access Manager(AWS RAM)を使用して Aurora DB クラスターを Target アカウントと共有し、Target アカウントが Aurora DB クラスターをクローンできるように権限を付与します。 ✓
- C. AWS Resource Access Manager(AWS RAM)を使用して Lambda 関数および Aurora DB クラスターを Target アカウントと共有し、Target アカウントが Aurora DB クラスターをクローンできるように権限を付与します。
- D. AWS Resource Access Manager(AWS RAM)を使用して Lambda 関数を Target アカウントと共有し、自動バックアップによる Aurora DB クラスタースナップショットを Target アカウントと共有します。
正解: B. Source アカウントから Lambda 関数のデプロイパッケージをダウンロードし、それを使用して Target アカウントに新しい Lambda 関数を作成します。AWS Resource Access Manager(AWS RAM)を使用して Aurora DB クラスターを Target アカウントと共有し、Target アカウントが Aurora DB クラスターをクローンできるように権限を付与します。
解説
Lambda 関数の移行には、デプロイパッケージを Source アカウントからダウンロードし、Target アカウントで新規に作成することが必要です。AWS RAM は Lambda 関数を直接共有するサービスではなく、Aurora DB クラスターなどのリソースのみを共有できます。したがって、Lambda 関数は明示的に再デプロイする必要があります。一方、Aurora DB クラスターの移行については、AWS RAM を用いてクラスターを共有し、Target アカウントでクローンすることで、最新のデータを保持したまま低ダウンタイムでの移行が可能です(スナップショット共有では復元に時間がかかり、最新データとのギャップが生じる可能性があります)。選択肢 A および D はスナップショット共有に依拠しており、リアルタイム性やダウンタイム削減という観点で劣ります。選択肢 C は Lambda 関数を AWS RAM で共有しようとしていますが、これは技術的に不可能です(AWS RAM は Lambda 関数をサポートしていません)。よって、選択肢 B が、Lambda 関数の再デプロイと Aurora クラスターの AWS RAM を用いた共有・クローンによる、ダウンタイム最小化を実現する唯一の適切なソリューションです。