Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Windows コンテナ

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

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

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

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 コンテナインスタンス (一般的にイメージサイズがより小さい) のストレージ容量より多くなります。

このページの内容: