Windowsのコンテナ化について調べたことメモ

NO IMAGE

現状Windows Serverで動いているC#のアプリケーションをコンテナ化したいという要望があり、その際Windowsコンテナについて少し調べたのでメモ。Windows系の知識が全然ないので、認識が誤っていたらコメントいただけるとありがたいです。

前提

C#を実行するフレームワークによって、以下のようにOSの制約があります。

  • .NET Framework:Windows上でしか動かない→Windowsコンテナのみ
  • .NET Core:マルチプラットフォーム(Linux,mac,Windows)で動く→Linuxコンテナも可

.NET Frameworkはメジャーアップデートがすでに終了しているようで、最近採用が多いのは.NET Coreのようです。
したがって、Windowsコンテナの採用が必須なのは、.NET Framework上でアプリケーションを動かしたい要望がある時のみの認識。

Windowsコンテナのメリット・デメリット

メリット

  • .NET Framework上で動いている既存システムをコンテナ化する場合、アプリへの影響が少ない

デメリット

  • Fargateで動かない(=EC2の管理が必要になる)
  • Windowsコンテナを使ったアプリが現時点少数派のため、情報が少ない
  • CI/CDの環境を選ぶ(CodeBuildはビルド用のWindowsイメージを自分で作ることでビルド可能)