無限ノック › SAP 練習問題一覧 › 問題
SAPワークロードの移行とモダン化の加速

大手小売チェーン(全国800店舗)が、オンプレミスのWindows Server 2019上のIISで稼働する20本の.NET Framework 4.8 ASP.NET MVCアプリケーションをAWSへ移行・モダン化しようとしています。現状は各アプリが独立したIISサイトとして動作しますが、複数のアプリが共有の.NETクラスライブラリに依存しており、同一Windowsサーバー上での同居によるリソース競合が発生しています。開発チームはDockerの基礎知識はありますが、Kubernetesの運用経験はありません。要件は以下のとおりです。 ・各アプリを独立してデプロイできること ・.NET Frameworkコードのリライトは行わないこと ・サーバー管理を最小化してインフラ運用コストを削減すること どのアプローチが最も適切か。

A
AWS App2Containerを使用してIIS上の各.NET Framework 4.8アプリをWindowsコンテナイメージに自動変換しAmazon ECRに保存する。ECS(Windows containers)のFargate起動タイプでアプリごとに独立したECSサービスとして定義・デプロイし、ALBでルーティングを設定することでサーバー管理不要・独立デプロイを同時に実現する
✓ 正解
AWS App2ContainerがIIS上の.NET Framework 4.8アプリをWindowsコンテナイメージに自動変換し、ECS Fargate(Windows)へデプロイすることで、コードリライトなし・サーバー管理不要・独立デプロイという3要件をすべて同時に満たせる。ECSはKubernetes経験がなくても運用でき、チームスキルとも整合する
B
AWS Application Migration Service(MGN)を使用して既存WindowsサーバーをそのままEC2(Windows Server 2019)へリフト&シフト移行する。EC2 Auto Scalingでスケーリングを設定し、AWS CodePipelineで各アプリの独立デプロイパイプラインを構築、Systems Manager Patch Managerで定期的なOSパッチ適用を自動化する
MGNによるEC2リフト&シフトはコード変更なしで移行できるが、WindowsサーバーのOSパッチ・ドライバ更新・IIS管理などのサーバー運用が継続して必要なため「サーバー管理を最小化」という目標を達成できない。リソース競合の解消にも追加の設計・設定が別途必要となる
C
各.NET Framework 4.8アプリを.NET 8にアップグレードしてLinuxコンテナに移行し、Amazon ECS Fargate(Linux)にデプロイする。AWS Microservice Extractorで共有ライブラリの依存関係を事前分析してリファクタリング計画を立案し、長期的なコスト削減と保守性向上を優先して段階的に移行する
.NET 8へのアップグレードはLinuxコンテナ化による長期コストメリットはあるが、.NET Framework 4.8から.NET 8への移行はAPIの互換性検証やコード修正が伴い「.NET Frameworkコードのリライトは行わない」という方針に明確に反する
D
Amazon EKS(Windows node group)クラスターを構築し、AWS App2Containerで生成した.NET Framework Windowsコンテナイメージをポッドとしてデプロイする。Helmチャートで各アプリのリリース管理を行い、Cluster AutoscalerとHPAを組み合わせた自動スケーリングを設定してKubernetesネイティブな運用体制を確立する
EKS(Windows node group)はApp2Containerとの組み合わせが技術的に可能であるが、EKSクラスターの管理・アップグレード・Kubernetes運用にはKubernetes経験が必要であり、Kubernetes未経験のチームには運用負荷が過剰に高い。ECSと比較して複雑性が増す一方、現時点の要件に対する追加メリットは少ない

解説

AWS App2Containerは、IIS上で稼働する.NET Framework 4.8アプリケーションを分析してWindowsコンテナイメージとして自動生成するツールである。コードの書き直しなしにコンテナ化できる点が最大の利点であり、「.NET Frameworkリライトなし」という要件に完全に合致する。 Amazon ECS Fargate(Windows containers)にデプロイすることで以下の要件をすべて満たせる。 ①アプリごとに独立したECSサービスとして定義することで独立デプロイが可能 ②Fargateによりサーバー管理が完全に不要となり運用コストを削減 ③リソース競合を排除した独立した実行環境を提供 ④Kubernetes未経験のチームでも運用できる低い学習コスト 選択肢Bのリフト&シフト(EC2)はコードを変更せず移行できるが、EC2インスタンスのOSパッチ・IIS管理などサーバー運用が継続的に必要であり「サーバー管理最小化」の目標を達成できない。 選択肢Cの.NET 8へのアップグレードはLinuxコンテナ化が可能になるが、.NET Frameworkから.NET 8への移行はAPIの互換性検証やコード修正が必要であり、「コードのリライトは行わない」という方針に反する。 選択肢DのEKS(Windows node group)はApp2Containerとの組み合わせは技術的に可能だが、Kubernetesクラスターの管理・アップグレード・運用にはKubernetes経験が必要であり、未経験チームには運用負荷が過剰に高い。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAP の問題一覧に戻る