Windows コンテナ - Amazon Elastic Container Service

Windows コンテナ

Amazon ECS は、Amazon ECS-optimized Windows Server AMI で起動されたコンテナインスタンスでの Windows コンテナのサポートを開始しました。

Windows コンテナインスタンスでは、独自のバージョンの Amazon ECS コンテナエージェントを使用します。Amazon ECS-optimized Windows Server AMI で、Amazon ECS コンテナエージェントはホストのサービスとして実行します。Linux プラットフォームとは異なり、エージェントはコンテナ内で実行されません。エージェントはホストのレジストリおよび \\.\pipe\docker_engine の名前付きパイプを使用して、Docker デーモンと通信するためです。

Amazon ECS コンテナエージェントのソースコードは GitHub で入手できます。含めることを希望する変更について、プルリクエストを送信することをお勧めします。ただし、現在はこのソフトウェアの修正されたコピーの実行をサポートしていません。Amazon ECS および Windows の未解決の問題については、「GitHub 問題のページ」を参照してください。

Amazon ECS は、次のバリアントで Windows コンテナに最適化された AMI を提供しています。詳細については、「Amazon ECS-optimized AMI」を参照してください。

  • Amazon ECS 用に最適化された Windows Server 2019 Full AMI – Windows オペレーションシステムで Amazon ECS コンテナインスタンスを起動するのに推奨されています。

  • Amazon ECS 用に最適化された Windows Server 2019 Core AMI – Windows オペレーションシステムで Amazon ECS コンテナインスタンスを起動するのに推奨されています。

  • Amazon ECS 用に最適化された Windows Server 1909 Core AMI – Windows オペレーションシステムで Amazon ECS コンテナインスタンスを起動するのに利用できます。

  • Amazon ECS 用に最適化された Windows Server 2016 Full AMI – Windows オペレーションシステムで Amazon ECS コンテナインスタンスを起動するのに利用できます。

Windows Server 2019 および Windows Server 2016 は、長期サービスチャネル (LTSC) リリースです。Windows Server バージョン 1909 は、半期チャネル (SAC) リリースです。詳細については、「Windows Server のリリース情報」を参照してください。

Windows コンテナに関する注意点

以下は、Windows コンテナと Amazon ECS についての留意点です。

  • Windows コンテナを Linux コンテナインスタンスで実行することはできず、Linux コンテナを Windows コンテナインスタンスで実行することもできません。Windows タスクと Linux タスクを適切に配置するには、Windows コンテナインスタンスと Linux コンテナインスタンスを別々のクラスターに保持し、Windows タスクは Windows クラスターにのみ配置します。次の配置制約 memberOf(ecs.os-type=='windows') を設定して、Windows のタスク定義が Windows インスタンスのみに配置されるようにする必要があります。

  • Windows コンテナは、EC2 起動タイプを使用するサポートでのみサポートされます。Fargate 起動タイプは、現在 Windows コンテナではサポートされていません。起動タイプの詳細については、「Amazon ECS 起動タイプ」を参照してください。

  • Windows コンテナとコンテナインスタンスでは、Linux コンテナとコンテナインスタンス用のタスク定義パラメータは全面的にはサポートされません。まったくサポートされないパラメータもあり、Windows での動作と Linux での動作が異なるパラメータもあります。詳細については、「Windows タスク定義」を参照してください。

  • タスク用の IAM ロールの機能では、Windows コンテナインスタンスの起動時にこの機能を許可するように設定する必要があり、この機能の使用時には提供された PowerShell コードを実行する必要があります。詳細については、「タスク用の Windows IAM ロール」を参照してください。

  • タスク用の IAM ロールの機能では認証情報プロキシを使用してコンテナに認証情報を提供します。この認証情報プロキシは、コンテナインスタンスのポート 80 を占有するため、タスク用の IAM ロールを使用する場合、タスクにポート 80 を使用することができません。ウェブサービスコンテナの場合は、Application Load Balancer と動的なポートマッピングを使用して標準の HTTP ポート 80 接続をコンテナに提供できます。詳細については、「サービスの負荷分散」を参照してください。

  • Windows サーバーの Docker イメージは大きい (9 GiB) ため、コンテナインスタンスに必要なストレージ容量は Linux コンテナインスタンス (一般的にイメージサイズがより小さい) のストレージ容量より多くなります。

Windows コンテナの開始方法

AWS マネジメントコンソール で、Amazon ECS-optimized Windows Server AMI を使用して Windows コンテナを Amazon ECS で実行するためのガイドとなるチュートリアルを、「Windows コンテナの開始方法」で完了してください。