中規模の金融サービス企業が、オンプレミスのWindows Server 2016上でIISによってホストされている.NET Framework 4.8 Webアプリケーション群(12本)のAWSへの移行を計画しています。現在の環境は以下の通りです。 ・アプリケーション:.NET Framework 4.8、IISホスト(12本、各アプリ独立デプロイ) ・バックエンドDB:SQL Server 2019(今回の移行スコープ外、後工程でRDS SQL Serverへ移行予定) ・アプリ間通信:WCF(Windows Communication Foundation)を使用 ・認証:オンプレミスActive DirectoryによるWindows統合認証(NTLM/Kerberos) ・デプロイ:手動デプロイのため環境差異が発生し、本番インシデントの一因となっている 移行要件は次の通りです。 ①アプリケーションコードの変更を最小限に抑えたリプラットフォーム(.NET 8へのバージョンアップや認証方式の変更は避けること) ②コンテナ化による環境の一貫性確保とデプロイの自動化 ③コンテナ環境でもActive Directoryを使用したWindows認証を継続(gMSA(グループ管理サービスアカウント / Group Managed Service Account)の使用を含む) ④本番環境へのブルー/グリーンデプロイメントによるゼロダウンタイムリリースの実現 ⑤コンテナイメージの自動生成を含む移行作業の効率化 これらの要件を満たす対応を2つ選択してください。
選択肢AのAWS App2Container(A2C)は、オンプレミスのWindows Server上で稼働するIISアプリケーションをエージェントで自動分析し、アプリケーションコードへの変更なしにWindowsコンテナイメージを生成してAmazon ECRへプッシュするAWS公式の移行ツールです。コンテナ化の自動化(要件⑤)とコード変更最小化(要件①)を同時に実現できます。 選択肢CのAmazon ECS on EC2(Windowsインスタンス)はWindowsコンテナのgMSA(グループ管理サービスアカウント)をネイティブにサポートしており、AWS Directory Service for Microsoft Active Directory(Managed Microsoft AD)と組み合わせることでコンテナからのKerberos/NTLM認証(要件③)を継続できます。AWS CodeDeployのECS向けブルー/グリーンデプロイメント機能により、ALBを通じたトラフィック切り替えでゼロダウンタイムリリース(要件④)を実現します。この2つの組み合わせがすべての要件を網羅する最適解です。 選択肢BのAWS Application Migration Serviceは、サーバーをEC2にリフトアンドシフトするツールであり、コンテナイメージの生成は行わない。コンテナ化による環境一貫性とデプロイ自動化(要件②)を根本的に満たせず、手動デプロイによる環境差異の課題も解決しない。 選択肢Dの.NET 8へのアップグレードとCognito/OIDCへの認証置き換えはアプリケーションコードの大規模な改修を必要とし、「コード変更最小限」という要件①に根本的に反する。WCFのLinux対応も制限的であり、アプリ間通信の互換性リスクも高い。 選択肢EのElastic Beanstalkの.NET on Windows ServerプラットフォームはEC2インスタンス上でIISを直接稼働させるPaaS環境であり、コンテナベースのデプロイではない。gMSAを使用したWindowsコンテナ認証をサポートしておらず、要件②③を同時に満たすことができない。