【正解】A
【0からの解説】
キーワードは「アプリケーションを書き直さない」「マネージドサービスを使う」「スケーリング問題の解決」「ライセンスコストの最小化」です。
最大のコスト要因は Microsoft SQL Server のライセンスです。Amazon Aurora PostgreSQL の Babelfish は、SQL Server の通信プロトコル(TDS)と T-SQL 構文を理解する互換機能で、アプリケーションのデータアクセス部分をほとんど書き換えずに、SQL Server から Aurora PostgreSQL へ移行(リプラットフォーム)できます。これにより SQL Server のライセンス費用を排除でき、ライセンスコストを最小化できます。
Web/アプリ層は、ALB の背後の Auto Scaling グループ上の EC2 で動かせば、既存の .NET アプリをほぼそのまま動かしつつスケーリング問題を解決できます。アプリの書き直しが不要で、コスト効率にも優れるため選択肢 A が最適です。
【誤りの選択肢】
B:DMS は「データベースの移行」ツールであり、サーバーのイメージ作成には使いません(用途の誤り)。さらにリレーショナルな SQL Server を DynamoDB(NoSQL)に置き換えるのはデータモデルが根本的に異なり、アプリの大幅な書き直しが必要になります。
C:RDS for SQL Server を使うため SQL Server のライセンスコストが残り、「ライセンスコスト最小化」を満たしません。さらに Web/アプリ層をコンテナ化する作業は「書き直さない」方針に対して負荷が大きいです。
D:アプリを Lambda + API Gateway に再構築し、データを S3 + Athena に移すのは、アプリケーションの全面的な書き直し(リアーキテクト)であり、「書き直したくない」という要件に明確に反します。
【参考】
Babelfish for Aurora PostgreSQLAmazon Aurora とは