Amazon EC2 Windows コンテナ - Amazon Elastic Container Service

Amazon EC2 Windows コンテナ

Amazon ECSは、Amazon ECSに最適化されたWindows Server AMIで起動されるコンテナ インスタンスで Windows コンテナをサポートするようになりました。

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

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

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

  • Amazon ECS に最適化された Windows Server 2022 Full AMI – Windows オペレーティングシステムで Amazon ECS コンテナインスタンスを起動する場合に推奨されます。

  • Amazon ECS に最適化された Windows Server 2022 Core AMI – Windows オペレーティングシステムで Amazon ECS コンテナインスタンスを起動する場合に推奨されます。

  • 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 2004 Core AMI は非推奨になります。この AMI の新しいバージョンはリリースされません。

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

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

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

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

  • Windowsコンテナは、EC2 および Fargate 起動タイプを使用するタスクでサポートされています。

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

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

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

  • Windows サーバーのドッカーイメージは大きめです (9 GiB)。そのため、Windows コンテナインスタンスには Linux コンテナインスタンスよりも多くのストレージスペースが必要です。

  • Windows Server でWindows コンテナを実行するには、コンテナのベースイメージの OS バージョンがホストのバージョンと一致する必要があります。詳細については、マイクロソフトのドキュメント Web サイトの「Windows コンテナバージョンの互換性」を参照してください。クラスタにさまざまな Windows のリリースを混在させて実行している場合、配置制約 memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>) を使用して、特定の OS リリースで実行されている EC2 インスタンスにタスクが配置されるようにすることができます。詳細については、「Amazon ECS に最適化された AMI メタデータを取得する」を参照してください。

Windows コンテナの開始方法

Amazon ECS に最適化された Windows Server AMIを クラシックコンソールを使用して Windows コンテナで開始する の AWS Management Console で使用して、Amazon ECSで Windows コンテナを稼働させることをガイドするチュートリアルを実行します。