エンタープライズソフトウェア会社は、オンプレミスのWindows Server 2019 IIS上で.NET Framework 4.7により構築された24本のASP.NETウェブアプリケーションを運用しています。これらのアプリはNTLM/Kerberos経由でActive Directoryと統合されたWindows認証を使用し、一部はCOMオブジェクトやWindowsレジストリに依存しています。以下の要件のもとでクラウド移行を計画しています。 ・クラウドネイティブなデプロイパターン実現のためにアプリケーションをコンテナ化する ・Windows固有のAPI依存があるため、予算・スケジュール制約により.NET 6以降へのリファクタリングは不可 ・自動スケーリング機能の実装 ・Windows認証(Active Directory統合)の維持 ・インフラチームにKubernetesの経験なし ・6ヶ月以内に本番稼働 すべての要件を最もよく満たすアプローチはどれですか?
AWS App2Containerは、既存のJava/.NETアプリケーションをDockerコンテナにパッケージ化するAWSのコンテナ化ツールである。.NET Framework 4.7はWindows固有のAPIに依存しているため、Windowsコンテナとしてコンテナ化する必要がある。 Amazon ECSでWindowsコンテナを実行する場合、FargateはWindowsコンテナをサポートしていないため、EC2起動タイプを使用する必要がある。gMSA(グループマネージドサービスアカウント)はWindowsコンテナでKerberos/NTLM認証を利用するための標準メカニズムであり、AWS Directory Service Managed ADとの組み合わせでActive Directory統合を維持できる。インフラチームにKubernetesの経験がないという制約から、ECSはEKSより学習コストが低く、6ヶ月という期限内での本番稼働が現実的な選択肢となる。 選択肢BのECS Fargateは現時点でWindowsコンテナをサポートしておらず、.NET Framework 4.7アプリをLinuxコンテナに変換することもできない。CognitoはActive Directory統合のWindows認証の直接的な代替手段とはならない。 選択肢CのAmazon EKSは技術的にはWindowsノードグループとgMSAをサポートするが、Kubernetesの経験がないチームへの導入は学習コストが高く、6ヶ月以内の本番稼働が現実的でない。 選択肢DのElastic BeanstalkはASP.NETをIIS上でホストするPaaSであり、コンテナ化なしにデプロイするためクラウドネイティブなコンテナデプロイの要件を満たさない。