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

Windows タスク定義

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

Windows タスク定義パラメーター

次のマトリックスは、サポートされないパラメータ、または Windows コンテナで Linux コンテナとは動作が異なるパラメータについての説明です。Amazon ECS と関連する、これらのパラメーターの詳細については、「タスク定義パラメーター」を参照してください。

taskRoleArn

サポート: Yes

Windows 上のタスク用の IAM ロールでは、Amazon ECS-optimized Windows AMI を起動するときに -EnableTaskIAMRole オプションを設定する必要があります。また、コンテナでは、この機能を利用するために一部の設定コードを実行する必要があります。詳細については、「Windows タスク用の IAM ロール」を参照してください。

networkMode

サポート: No

Windows 用の Docker では Linux 用の Docker とは異なるネットワークモードを使用します。Windows コンテナにタスク定義を登録するときに、ネットワークモードを指定しないでください。コンソールを使用して Windows コンテナにタスク定義を登録する場合は、<default> ネットワークモードオブジェクトを選択する必要があります。

containerDefinitions

サポート: Yes

追記: 一部のコンテナ定義パラメーターはサポートされません。以下のリストで、パラメーター別のサポート状況を確認してください。

portMappings

サポート: 制限

Windows のポートマッピングでは、localhost の代わりに NetNAT ゲートウェイを使用します。Windows のポートマッピングにはループバックが存在しないため、ホスト自体からコンテナのマッピングされたポートにアクセスすることはできません。

cpu

サポート: Yes

Amazon ECS では、このパラメータを Linux コンテナと同じように扱います。コンテナに 500 CPU 配分を指定すると、タスクの配置時にそれだけの数の CPU 配分がコンテナインスタンスの使用可能なリソースから削除されます。ただし、Windows コンテナインスタンスでは、CPU 制限は絶対制限またはクォータとして適用されます。Windows コンテナはタスク定義で指定された一定量の CPU にのみアクセスします。

disableNetworking

サポート: No

dnsServers

サポート: No

dnsSearchDomains

サポート: No

dockerSecurityOptions

サポート: No

extraHosts

サポート: No

links

サポート: No

mountPoints

サポート: 制限

Windows コンテナは $env:ProgramData と同じドライブに全部のディレクトリをマウントできます。Windows コンテナは、別のドライブにディレクトリをマウントできません。また、マウントポイントは複数のドライブにまたがることはできません。

linuxParameters

サポート: No

privileged

サポート: No

readonlyRootFilesystem

サポート: No

user

サポート: No

ulimits

サポート: No

volumes

サポート: Yes

name

サポート: Yes

host

サポート: 制限

Windows コンテナは $env:ProgramData と同じドライブに全部のディレクトリをマウントできます。Windows コンテナは、別のドライブにディレクトリをマウントできません。また、マウントポイントは複数のドライブにまたがることはできません。たとえば、C:\my\path:C:\my\path および D:\:D:\ はマウントできますが、D:\my\path:C:\my\path または D:\:C:\my\path はマウントできません。

cpu

サポート: No

Windows コンテナではタスクレベルの CPU は無視されます。Windows コンテナではコンテナレベル CPU を指定することをお勧めします。

memory

サポート: No

Windows コンテナではタスクレベルのメモリは無視されます。Windows コンテナではコンテナレベルメモリを指定することをお勧めします。

Windows のサンプルのタスク定義

Amazon ECS で Windows コンテナを使い始める際に役立つサンプルのタスク定義を以下に示します。

例 Windows 用の Amazon ECS コンソールサンプルアプリケーション

次のタスク定義は、Amazon ECS の初回実行ウィザードで生成される Amazon ECS コンソールのサンプルアプリケーションです。microsoft/iis Windows コンテナイメージを使用するためにされています。

{ "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "microsoft/iis", "cpu": 100, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 8080 } ], "memory": 500, "essential": true } ] }