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 2004 Core AMI – Windows オペレーションシステムで Amazon ECS コンテナインスタンスを起動するのに利用できます。

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

    重要

    Amazon ECS 用に最適化された Windows Server 1909 Core AMI は非推奨です。この AMI の新しいバージョンはリリースされません。

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

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

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

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

  • Windows コンテナは Linux コンテナインスタンスでは実行できません。逆の場合も同様です。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 サーバーのドッカーイメージは大きめです (9 GiB)。そのため、Windows コンテナインスタンスには Linux コンテナインスタンスよりも多くのストレージスペースが必要です。

Windows コンテナの開始方法

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