Microsoftは3か月前のWindows Server 2016の立ち上げのときに、Windowsのサーバー上でDockerエンジンを使ってコンテナを動かすことを可能にした。これによりデベロッパーは、Windowsの実行コードをコンテナに収めてWindowsのサーバー上で動かすことができる。もちろんWindowsの実行コードをLinux上で動かすことはできないが、使用するDockerエンジンやそのコマンド体系はデベロッパーにとってすでにおなじみのものだ。そして今日(米国時間12/20)AWSは、同社のEC2 Container Service(ECS)がWindows Containerをベータでサポートする、と発表した。
Amazonはそのために、ECSのコンテナエージェントのWindowsバージョンを独自に開発した。しかも、Amazonとしては異例にも、エージェントのコードはApache 2.0のライセンスによりGitHub上で提供される。
MicrosoftとDockerの密接な協働により、DockerエンジンがWindows上で動くようになった(Windows 10のAnniversary Update以降を含む)。Windows Server 2016上ではDocker Engineの商用サポートも提供され、今後はエンタープライズ向けのサポートも提供される。ただしWindowsのコンテナは、Dockerの管理ツールに触れることなく、PowerShellからでも管理できる。
なお、一般的にコンテナは軽量のリソースと見なされるが、Windows ServerのDockerイメージはかなり大きくなりがちだ(Amazonによると9.66 GB)。ECS上でWindows Containersを使い始めるためにも、Linuxのコンテナと違って、かなりややこしい部分がある。
古いアプリケーションをクラウドへ移す、という最近のエンタープライズの動向に伴い、Windows上のコンテナはそれらをレガシーのハードウェアからAWSやGoogle Cloud Platform、それにMicrosoft自身のAzureプラットホームなどへ移行させるための、容易な方法と見なされるようになった(AzureはWindows Containersをかなり前からサポートしている)。Amazonは今回Windows Containersを新たにサポートすることにより、この市場のちょっとした分け前をいただきたいのだ。