大手製薬企業がオンプレミスで稼働する40本の.NET Framework 4.8 Webアプリケーション(Windows Server 2019上)をAWSのコンテナ基盤へ移行する計画を立てています。これらのアプリケーションはWindows認証(NTLM/Kerberos)、COM+コンポーネント、Windowsレジストリを設定に使用しており、コードの大幅な書き換えは避けることが必須要件です。プラットフォームチームは以下を求めています: ①アプリケーション依存関係の自動検出とDockerイメージの自動生成 ②AWS CloudFormationテンプレートの自動出力 ③WindowsコンテナをサポートするAWSマネージドコンテナサービスへのデプロイ ④40本を効率的に管理できる運用負荷の最小化 この要件をすべて満たす最適なアプローチはどれですか?
AWS App2Containerは、稼働中のサーバー上でエージェントを実行し、Java/.NETアプリの依存関係を自動検出してDockerイメージとCloudFormation/ECSタスク定義テンプレートを自動生成する移行ツールです。Windows Server上の.NET Framework 4.8アプリをコードの書き換えなしにWindowsコンテナとしてパッケージ化でき、Amazon ECSのEC2起動タイプ(Windows Server Core AMI)はWindowsコンテナを完全サポートします。40本のアプリもECSクラスターで統一管理でき、全要件を満たす最適解です。 選択肢BのAWS FargateはWindowsコンテナをサポートしていますが、COM+コンポーネントやNTLM/KerberosなどWindows固有機能のコンテナ化にはECS EC2起動タイプ(Windows Server Core AMI)の方が互換性が高く、App2Containerが生成するCloudFormationテンプレートもEC2起動タイプ向けに最適化されています。Fargateでの実行には追加の設定変更が必要です。 選択肢CのAWS Application Migration Serviceはリフト&シフトには有効ですが、その後の手動Dockerfile作成では依存関係の自動分析とCloudFormationテンプレート自動生成の要件を満たしません。40本のアプリに対して多大な手作業が発生します。 選択肢DのAWS Schema Conversion ToolはデータベーススキーマをターゲットDBに変換するツールであり、アプリケーションコードの変換機能は持ちません。COM+やNTLMなどのWindows固有コンポーネントをLinuxへ自動変換することは技術的に不可能であり、大幅なコード書き換えが必要となります。