タスク定義パラメータ
タスク定義は、タスクファミリ、IAM タスクロール、ネットワークモード、コンテナ定義、ボリューム、タスク配置の制約事項、起動タイプの各部分に分かれています。ファミリーとコンテナ定義はタスク定義に必須ですが、タスクロール、ネットワークモード、ボリューム、タスク配置の制約事項、起動タイプはオプションです。
これらのパラメータを JSON ファイルで使用し、タスク定義を設定できます。詳細については、「タスク定義の例」を参照してください。
以下に示すのは、各タスク定義パラメータのより詳細な説明です。
ファミリー
family
-
タイプ: 文字列
必須: はい
タスク定義を登録するときに、ファミリー (複数バージョンのタスク定義の名前のようなもの) を指定する必要があります。登録したタスク定義には、リビジョン番号が与えられます。特定のファミリーに登録した最初のタスク定義には、リビジョン 1 が与えられ、その後に登録したタスク定義には、リビジョン 2 というように続きます。
起動タイプ
タスク定義の登録時、Amazon ECS がタスク定義の検証基準となる起動タイプを指定できます。タスク定義が指定された互換性を検証しない場合、クライアント例外が返されます。詳細については、「Amazon ECS 起動タイプ」を参照してください。
以下のパラメータをタスク定義で使用できます。
タスクロール
taskRoleArn
-
タイプ: 文字列
必須: いいえ
タスク定義を登録するときに、IAM ロールのタスクロールを割り当てて、タスクのコンテナに、関連するポリシーに指定された AWS API を呼び出すためのアクセス権限を付与できます。詳細については、「タスク用の IAM ロール」を参照してください。
Windows 上のタスクの IAM ロールでは、Amazon ECS に最適化された Windows Server AMI を起動するときに
-EnableTaskIAMRole
オプションを設定する必要があります。また、コンテナでは、この機能を利用するために一部の設定コードを実行する必要があります。詳細については、「タスク用の Windows IAM ロールの追加設定」を参照してください。
タスク実行ロール
executionRoleArn
-
タイプ: 文字列
必須: いいえ
ユーザーに代わって AWS API コールを実行するアクセス許可を Amazon ECS コンテナエージェントに付与するタスク実行ロールの Amazon リソースネーム (ARN)。タスク実行 IAM ロールは、タスクの要件に応じて必要です。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。
ネットワークモード
networkMode
-
タイプ: 文字列
必須: いいえ
タスクのコンテナで使用する Docker ネットワーキングモード。Amazon EC2 Linux インスタンスでホストされている Amazon ECS タスクの場合、有効な値は
none
、bridge
、awsvpc
、およびhost
です。ネットワークモードが指定されていない場合、デフォルトのネットワークモードはbridge
です。Amazon EC2 Windows インスタンスでホストされる Amazon ECS タスクの場合、有効な値はdefault
およびawsvpc
です。ネットワークモードが指定されていない場合、default
ネットワークモードが使用されます。ネットワークモードを
none
に設定すると、タスクのコンテナの外部接続がなくなるため、コンテナの定義にポートマッピングを指定することはできません。ネットワークモードが
bridge
の場合、タスクは Docker の組み込み仮想ネットワークを使用して、各コンテナインスタンス内で実行されます。ネットワークモードが
host
の場合、タスクは、Docker の組み込み仮想ネットワークをバイパスし、コンテナポートは Amazon EC2 インスタンスのネットワークインターフェイスにマッピングされます。このモードで、ポートマッピングが使用されている場合、1 つのコンテナインスタンスで同じタスクのインスタンスを複数実行することはできません。重要 host
ネットワークモードを使用する場合、ルートユーザー (UID 0) を使用してコンテナを実行しないでください。ルート以外のユーザーを使用することがベストプラクティスとして推奨されます。ネットワークモードが
awsvpc
の場合は、タスクに Elastic Network Interface が割り当てられるため、タスク定義を使用したサービスの作成時またはタスクの実行時にNetworkConfiguration
を指定する必要があります。詳細については、「Amazon ECS タスクネットワーキング」を参照してください。現在、Amazon ECS に最適化された AMI、ecs-init
パッケージがある他の Amazon Linux バリアント、または AWS Fargate インフラストラクチャのみが、awsvpc
ネットワークモードをサポートします。host
およびawsvpc
ネットワークモードでは、コンテナのネットワークパフォーマンスは最大限に高まります。bridge
モードとは異なり、仮想化ネットワークスタックではなく、Amazon EC2 ネットワークスタックを使用するためです。host
およびawsvpc
ネットワークモードでは、公開されるコンテナポートは対応するホストポート (host
ネットワークモードの場合) またはアタッチされた Elastic Network Interface ポート (awsvpc
ネットワークモードの場合) に直接マッピングされるため、動的ホストポートマッピングは利用できません。Fargate 起動タイプを使用している場合、
awsvpc
ネットワークモードが必要です。EC2 起動タイプを使用している場合、使用可能なネットワークモードは、基盤となる EC2 インスタンスのオペレーティングシステムによって異なります。Linux の場合は、どのネットワークモードも使用できます。Windows の場合、default
およびawsvpc
モードを使用できます。
ランタイムプラットフォーム
Fargate 起動タイプには、次のパラメータが必要です。
operatingSystemFamily
-
タイプ: 文字列
必須: 条件による
デフォルト: LINUX
このパラメータは、Fargate でホストされる Amazon ECS タスクに必要です。
タスク定義を登録する際、オペレーティングシステムファミリを指定します。
Fargate でホストされる Amazon ECS タスクの有効な値は、
LINUX
、WINDOWS_SERVER_2019_FULL
、およびWINDOWS_SERVER_2019_CORE
です。EC2 でホストされる Amazon ECS タスクの有効な値は、
LINUX
、WINDOWS_SERVER_2022_CORE
、WINDOWS_SERVER_2022_FULL
、WINDOWS_SERVER_2019_FULL
およびWINDOWS_SERVER_2019_CORE
、WINDOWS_SERVER_2016_FULL
、WINDOWS_SERVER_2004_CORE
、WINDOWS_SERVER_20H2_CORE
です。サービスで使用されるすべてのタスク定義は、このパラメータに対して同じ値を設定する必要があります。
タスク定義がサービスの一部である場合、この値はサービスの
platformFamily
値と一致する必要があります。 cpuArchitecture
-
タイプ: 文字列
必須: 条件による
デフォルト: X86_64
このパラメータは、Fargate でホストされる Amazon ECS タスクに必要です。
タスク定義を登録する際は、CPU アーキテクチャを指定します。有効な値は
X86_64
およびARM64
です。サービスで使用されるすべてのタスク定義は、このパラメータに対して同じ値を設定する必要があります。
Fargate 起動タイプまたは EC2 起動タイプのいずれかの Linux タスクを使用する場合、値を
ARM64
に設定できます。詳細については、「Amazon ECSの 64-bit ARM ワークロードの操作」を参照してください。
タスクサイズ
タスク定義の登録時に、タスクに使用される CPU とメモリの合計量を指定できます。これは、コンテナ定義レベルの cpu
および memory
の値とは異なります。Amazon EC2 インスタンスでホストされるタスクの場合、これらのフィールドは省略可能です。Fargate (Linux と Windows の両方) でホストしたタスクの場合、これらのフィールドは必須であり、サポートされているcpu
および memory
の両方に特定の値があります。
タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。Windows コンテナではコンテナレベルリソースを指定することをお勧めします。
以下のパラメータをタスク定義で使用できます。
cpu
-
タイプ: 文字列
必須: 条件による
注記 このパラメータは Windows コンテナではサポートされません。
タスクに適用される CPU ユニットのハード制限。タスク定義では、CPU ユニットを使用して整数 (例:
1024
) で表すか、vCPU を使用して文字列 (例:1 vCPU
または1 vcpu
) で表すことができます。タスク定義が登録されると、vCPU 値は、CPU ユニットを示す整数に変換されます。Amazon EC2 インスタンスでホストされるタスクの場合、このフィールドは省略可能です。クラスターに、リクエストされた CPU ユニットが利用できる登録されたコンテナインスタンスがない場合、タスクは失敗します。サポートされている値は
128
CPU ユニット (0.125
vCPU) ~10240
CPU ユニット (10
vCPU) です。Fargate (Linux と Windows コンテナの両方) でホストしたタスクの場合、このフィールドは必須であり、次のいずれかの値を使用する必要があります。この値により
memory
パラメータでサポートされる値の範囲が決まります。CPU の値 メモリの値 Fargate でサポートされるオペレーティングシステム 256 (.25 vCPU) 512 MB、1 GB、2 GB Linux 512 (.5 vCPU) 1 GB、2 GB、3 GB、4 GB Linux 1024 (1 vCPU) 2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB Linux、Windows 2048 (2 vCPU) 4 GB ~ 16 GB (1 GB のインクリメント) Linux、Windows 4096 (4 vCPU) 8 GB ~ 30 GB (1 GB のインクリメント) Linux、Windows
memory
-
タイプ: 文字列
必須: 条件による
注記 このパラメータは Windows コンテナではサポートされません。
タスクに適用されるメモリのハード制限 (MiB 単位)。タスク定義では、MiB を使用した整数 (例:
1024
) で表すか、GB を使用した文字列 (例:1GB
または1 GB
) で表すことができます。タスク定義が登録されると、GB 値は、MiB を示す整数に変換されます。Amazon EC2 インスタンスでホストされるタスクの場合、このフィールドは省略可能であり、任意の値を使用できます。タスクレベルのメモリ値が指定されている場合、コンテナレベルのメモリ値はオプションです。クラスターに、リクエストされたメモリが利用できる登録されたコンテナインスタンスがない場合、タスクは失敗します。特定のインスタンスタイプでタスクにできるだけ多くのメモリを提供してリソースの使用率を最大限に高めるには、「コンテナインスタンスメモリ管理」を参照してください。
Fargate (Linux と Windows コンテナの両方) でホストしたタスクの場合、このフィールドは必須であり、次のいずれかの値を使用する必要があります。この値により
cpu
パラメータでサポートされる値の範囲が決まります。メモリの値 (MiB)
CPU の値
Fargate でサポートされるオペレーティングシステム 512 (0.5 GB)、1024 (1 GB)、2048 (2 GB)
256 (.25 vCPU)
Linux 1024 (1 GB)、2048 (2 GB)、3072 (3 GB)、4096 (4 GB)
512 (.5 vCPU)
Linux 2048 (2 GB)、3072 (3 GB)、4096 (4 GB)、5120 (5 GB)、6144 (6 GB)、7168 (7 GB)、8192 (8 GB)
1024 (1 vCPU)
Linux、Windows 4096 (4 GB)~16384 (16 GB) (1024 (1 GB) のインクリメント)
2048 (2 vCPU)
Linux、Windows 8192 (8 GB)~30720 (30 GB) (1024 (1 GB) のインクリメント)
4096 (4 vCPU)
Linux、Windows
コンテナ定義
タスク定義を登録するときは、コンテナインスタンスの Docker デーモンに渡されるコンテナ定義のリストを指定する必要があります。以下のパラメータをコンテナ定義で使用できます。
標準のコンテナ定義のパラメータ
以下のタスク定義のパラメータは必須であるか、ほとんどのコンテナ定義で使用されます。
[Name] (名前)
[Image] (イメージ)
image
-
タイプ: 文字列
必須: はい
コンテナの開始に使用するイメージ。この文字列は Docker デーモンに直接渡されます。Docker Hub レジストリのイメージはデフォルトで使用できます。
またはrepository-url
/image
:tag
で他のリポジトリを指定することもできます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。このパラメータは、Docker Remote APIrepository-url
/image
@digest
の Create a container セクションの Image
および docker runの IMAGE
パラメータにマップされます。-
新しいタスクが開始されると、Amazon ECS コンテナエージェントは、指定されたイメージおよびタグの最新バージョンをプルしてコンテナで使用します。ただし、リポジトリイメージの後続の更新がすでに実行されているタスクに反映されることはありません。
-
プライベートレジストリのイメージがサポートされています。詳細については、「タスクのプライベートレジストリの認証」を参照してください。
-
Amazon ECR リポジトリのイメージは、
registry/repository:tag
またはregistry/repository@digest
の完全な命名規則を使用して指定できます。たとえば、aws_account_id
.dkr.ecr.region
.amazonaws.com/
またはmy-web-app
:latest
aws_account_id
.dkr.ecr.region
.amazonaws.com/
my-web-app
@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE
-
Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例:
ubuntu
、mongo
) を使用します。 -
Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例:
amazon/amazon-ecs-agent
)。 -
他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例:
quay.io/assemblyline/ubuntu
)。
-
メモリ
memory
-
タイプ: 整数
必須: 条件による
コンテナに適用されるメモリの量 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。タスク内のすべてのコンテナ用に予約されるメモリの合計量は、タスクの
memory
値より小さくする必要があります (指定されている場合)。このパラメータは、Docker Remote APIのコンテナの作成 セクションの Memory
にマップされ、--memory
オプションは docker runにマップされます。 Fargate 起動タイプを使用する場合、このパラメータはオプションです。
EC2 起動タイプを使用する場合、タスクレベルのメモリ値またはコンテナレベルのメモリ値を指定する必要があります。
memory
コンテナレベルとmemoryReservation
値の両方を指定する場合、memory
はmemoryReservation
より大きくする必要があります。memoryReservation
を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory
の値が使用されます。Docker 20.10.0 以降のデーモンによってコンテナ用に 6 MiB 以上のメモリが予約されるため、コンテナ用に 6 MiB 未満のメモリを指定しないでください。
Docker 19.03.13-ce 以前のデーモンによってコンテナ用に 4 MiB 以上のメモリが予約されるため、コンテナ用に 4 MiB 未満のメモリを指定しないでください。
注記 特定のインスタンスタイプでタスクにできるだけ多くのメモリを提供してリソースの使用率を最大限に高めるには、「コンテナインスタンスメモリ管理」を参照してください。
memoryReservation
-
タイプ: 整数
必須: いいえ
コンテナ用に予約するメモリのソフト制限 (MiB 単位)。システムメモリが競合している場合、Docker はコンテナメモリをこのソフト制限に維持しようとします。ただし、コンテナは必要に応じて、
memory
パラメータで指定したハード制限 (該当する場合)、またはコンテナインスタンスの使用可能なメモリの、いずれか先に達するまで、追加のメモリを消費できます。このパラメータは、Docker Remote APIのコンテナの作成 セクションの MemoryReservation
にマップされ、--memory-reservation
オプションは docker runにマップされます。 タスクレベルのメモリ値を指定しない場合、コンテナ定義で
memory
またはmemoryReservation
の一方または両方に 0 以外の整数を指定する必要があります。両方を指定する場合、memory
はmemoryReservation
より大きいことが必要です。memoryReservation
を指定する場合、コンテナが配置されているコンテナインスタンスの使用可能なメモリリソースからその値が減算されます。それ以外の場合は、memory
の値が使用されます。たとえば、コンテナが通常 128 MiB のメモリを使用しているが、短期間に 256 MiB のメモリにバーストする場合は、
memoryReservation
を 128 MiB に、memory
ハード制限を 300 MiB に設定できます。この設定により、コンテナは、コンテナインスタンスの残りのリソースから 128 MiB のメモリのみを確保できますが、必要に応じて追加のメモリリソースを消費できるようにもなります。注記 このパラメータは Windows コンテナではサポートされません。
Docker 20.10.0 以降のデーモンによってコンテナ用に 6 MiB 以上のメモリが予約されるため、コンテナ用に 6 MiB 未満のメモリを指定しないでください。
Docker 19.03.13-ce 以前のデーモンによってコンテナ用に 4 MiB 以上のメモリが予約されるため、コンテナ用に 4 MiB 未満のメモリを指定しないでください。
ポートマッピング
portMappings
-
タイプ: オブジェクト配列
必須: いいえ
ポートマッピングにより、コンテナはホストコンテナインスタンス上のポートにアクセスしてトラフィックを送受信できるようになります。
awsvpc
ネットワークモードを使用するタスク定義では、containerPort
のみを指定する必要があります。hostPort
は、空白のままにするか、containerPort
と同じ値にする必要があります。Windows のポートマッピングでは、
localhost
の代わりにNetNAT
ゲートウェイを使用します。Windows のポートマッピングにはループバックが存在しないため、ホスト自体からコンテナのマッピングされたポートにアクセスすることはできません。このパラメータは、Docker Remote API
の [Create a container (コンテナを作成する) ] セクションの PortBindings
にマップされ、--publish
オプションは docker runにマップされます。タスク定義のネットワークモードを host
に設定している場合、ホストポートは未定義であるか、ポートマッピングのコンテナポートと一致する必要があります。注記 タスクが
RUNNING
ステータスに達すると、手動および自動で割り当てられたホストとコンテナポートが次の場所で表示されます:-
コンソール: 指定されたタスクのコンテナ詳細の [Network Bindings] セクション。
-
AWS CLI:
networkBindings
コマンド出力の describe-tasks セクション。 -
API:
DescribeTasks
レスポンス。
containerPort
-
タイプ: 整数
必須: はい (
portMappings
を使用する場合)ユーザーが指定したホストポートまたは自動的に割り当てられたホストポートにバインドされるコンテナポートの番号。
Fargate 起動タイプを使用するタスク内のコンテナを使う場合、
containerPort
を使用して公開ポートを指定する必要があります。Fargate の Windows コンテナの場合、
containerPort
にポート 3150 は予約されているため使用できません。EC2 起動タイプを使用するタスク内のコンテナを使用し、ホストポートではなくコンテナポートを指定した場合、コンテナには一時ポート範囲内のホストポートが自動的に割り当てられます。詳細については、「
hostPort
」を参照してください。この方法で自動的にマッピングされるポートは、コンテナインスタンスの 100 個の予約済みポート制限にはカウントされません。 hostPort
-
タイプ: 整数
必須: いいえ
コンテナ用に予約するコンテナインスタンスのポート番号。
Fargate 起動タイプを使用するタスク内のコンテナを使う場合、
hostPort
は、空白のままにするか、containerPort
と同じ値にする必要があります。EC2 起動タイプを使用するタスク内のコンテナを使う場合、予約されていないホストポートをコンテナポートマッピングに指定できます (これは静的ホストポートマッピングと呼ばれます)。または、
containerPort
の指定時にhostPort
を省略することもできます (または0
に設定)。後者の場合、コンテナインスタンスのオペレーティングシステムと Docker バージョンに、一時ポート範囲のポートが自動的に割り当てられます (これは動的ホストポートマッピングと呼ばれる)。Docker バージョン 1.6.0 以降のデフォルトの一時ポート範囲は、インスタンスの
/proc/sys/net/ipv4/ip_local_port_range
にリストされています。このカーネルパラメータが使用できない場合、49153–65535
から始まるデフォルトのエフェメラルポート範囲が使用されます。一時ポート範囲は自動割り当て用に予約されているため、この範囲にはホストポートを指定しないでください。一般的に、32768
より小さい番号のポートは一時ポート範囲に含まれません。デフォルトの予約済みポートは、SSH 用の
22
、Docker ポートの2375
および2376
、Amazon ECS コンテナエージェントポートの51678-51680
です。実行中のタスク用にユーザーが以前に指定したホストポートもそのタスクの実行中は予約されます (タスクが停止すると、そのホストポートは解放されます)。現在予約されているポートは、describe-container-instances 出力のremainingResources
に表示されます。コンテナインスタンスには、デフォルトの予約済みポートを含めて、一度に最大 100 個の予約済みポートを割り当てることができます。自動的に割り当てられるポートは、この 100 個の予約済みポート制限にはカウントされません。 protocol
-
タイプ: 文字列
必須: いいえ
ポートマッピングに使用されるプロトコル。有効な値は、
tcp
およびudp
です。デフォルト:tcp
。重要 UDP サポートは、バージョン 1.2.0 以降の Amazon ECS コンテナエージェント (
amzn-ami-2015.03.c-amazon-ecs-optimized
AMI など)、またはバージョン 1.3.0 以降に更新したコンテナエージェントで起動されたコンテナインスタンスでのみ使用できます。コンテナエージェントを最新バージョンに更新するには、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。
ホストポートを指定する場合は、以下の構文を使用します。
"portMappings": [ { "containerPort": integer, "hostPort": integer } ... ]
自動的に割り当てられるホストポートが必要な場合は、以下の構文を使用します。
"portMappings": [ { "containerPort": integer } ... ]
-
詳細コンテナ定義パラメータ
以下の詳細コンテナ定義パラメータにより、Amazon ECS コンテナインスタンスでのコンテナの起動に使用する docker run
ヘルスチェック
healthCheck
-
コンテナヘルスチェックのコマンドおよびコンテナの関連する設定パラメータです。このパラメータは、Docker Remote API
のコンテナの作成 セクションの HealthCheck
にマッピングされ、docker runの HEALTHCHECK
パラメータにマッピングされます。注記 Amazon ECS コンテナエージェントは、タスク定義で指定されたヘルスチェックのみモニタリングおよび報告します。Amazon ECS は、コンテナイメージに埋め込まれている Docker ヘルスチェック、およびコンテナ定義で指定されていないヘルスチェックをモニタリングしません。コンテナ定義で指定されているヘルスチェックのパラメータは、コンテナイメージ内に存在する Docker ヘルスチェックを上書きします。
DescribeTasks API オペレーションを使用するか、コンソールでタスクの詳細を表示するときに、個々のコンテナとタスクの両方のヘルスステータスを表示できます。
以下に、コンテナに使用される
healthStatus
値を示します:-
HEALTHY
— コンテナのヘルスチェックが合格になりました。 -
UNHEALTHY
— コンテナのヘルスチェックが不合格になりました。 -
UNKNOWN
— コンテナのヘルスチェックが評価中か、コンテナのヘルスチェックが定義されていません。
以下に、タスクで使用できる
healthStatus
値を示します。必須でないコンテナのコンテナヘルスチェックステータスは、タスクのヘルスステータスには影響しません。-
HEALTHY
— タスク内のすべての必須コンテナがヘルスチェックに合格しました。 -
UNHEALTHY
— 1 つ以上の必須コンテナのヘルスチェックが不合格になりました。 -
UNKNOWN
— タスク内の必須コンテナのヘルスチェックがまだ評価中か、コンテナヘルスチェックが定義されていません。
タスクがサービスの一部ではなく手動で実行された場合、タスクのヘルスステータスに関係なく、タスクのライフサイクルが継続されます。サービスの一部であるタスクでは、タスクが異常であると報告された場合、タスクは停止し、サービススケジューラがそれを置き換えます。
コンテナのヘルスチェックのサポートに関する内容を以下に示します:
-
コンテナのヘルスチェックには、Amazon ECS コンテナエージェントのバージョン 1.17.0 以降が必要です。詳細については、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。
-
バージョン 1.1.0 以降のプラットフォームバージョンを使用している場合、コンテナヘルスチェックは、Fargate タスクでサポートされます。詳細については、「AWS Fargate プラットフォームのバージョン」を参照してください。
-
コンテナヘルスチェックは、Classic Load Balancer を使用するように設定されたサービスの一部であるタスクではサポートされていません。
command
-
ヘルスかどうかを決定するためにコンテナが実行するコマンドを表す文字列配列。文字列配列は、コマンド引数を直接実行するための
CMD
、またはコンテナのデフォルトシェルのコマンドを実行するためのCMD-SHELL
で始めることができます。いずれも指定しない場合は、デフォルトでCMD
が使用されます。タスク定義を AWS Management Console に登録するときは、コマンドのカンマ区切りリストを使用します。このリストは、タスク定義の作成後に自動的に文字列に変換されます。ヘルスチェックの入力例は以下のとおりです。
CMD-SHELL, curl -f http://localhost/ || exit 1
AWS Management Console JSON パネル、AWS CLI、または API を使用してタスク定義を登録するときは、コマンドのリストを角かっこで囲む必要があります。ヘルスチェックの入力例は以下のとおりです。
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
stderr
が出力されない終了コード 0 は成功を示し、0 以外の終了コードは失敗を示します。詳細については、Docker Remote APIのコンテナを作成する セクション内にある「 HealthCheck
」を参照してください。 interval
-
各ヘルスチェックの実行間の間隔です (秒単位)。5〜300 秒を指定できます。デフォルト値は30秒です。
timeout
-
失敗と見なされる前にヘルスチェックが成功するまでに待機する期間 (秒単位)。2〜60 秒を指定できます。デフォルト値は 5 秒です。
retries
-
コンテナが異常と見なされるまでに、失敗したヘルスチェックを再試行する回数です。1〜10 回を指定できます。デフォルト値は 3 回の再試行です。
startPeriod
-
再試行の最大回数でヘルスチェックが失敗とカウントされる前に、コンテナにブートストラップする時間を提供する猶予期間のオプションです。0〜300 秒を指定できます。デフォルトでは
startPeriod
は無効となっています。
-
環境
cpu
-
タイプ: 整数
必須: 条件による
Amazon ECS コンテナエージェントがコンテナ用に予約した
cpu
ユニットの数。このパラメータは、Docker Remote APIのコンテナの作成 セクションの CpuShares
にマップされ、--cpu-shares
オプションは docker runにマップされます。 このフィールドは、Fargate 起動タイプを使用するタスクで必要です。タスク内のすべてのコンテナに対して予約されている CPU の合計量は、タスクレベルの
cpu
値よりも少ない必要があります。注記 [Amazon EC2 インスタンス
] 詳細ページのインスタンスタイプに一覧表示されている vCPU 数に 1,024 を乗算して、Amazon EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を判断できます。 Linux コンテナは、割り当てられた CPU ユニットと同じ比率を使用して、割り当てられていない CPU ユニットをコンテナインスタンス上の他コンテナと共有します。たとえば、単一コンテナタスクを単一コアインスタンスタイプで実行する場合、そのコンテナ用に 512 個の CPU ユニットを指定しており、そのタスクがコンテナインスタンスで実行される唯一のタスクであると、そのコンテナは 1,024 個の CPU ユニット配分すべてをいつでも使用できます。ただし、そのコンテナインスタンスで同じタスクの別のコピーを起動した場合、必要に応じてタスクごとに最低 512 個の CPU ユニットが確保され、各コンテナは最大 CPU ユニット配分を使用できますが (他方のコンテナが使用していない限り)、両方のタスクが常に 100% アクティブであれば、使用できるのは 512 個の CPU ユニットに制限されます。
Linux コンテナインスタンスでは、コンテナインスタンス上の Docker デーモンは、CPU 値を使用して、実行中のコンテナに対する相対 CPU 配分比率を計算します。詳細については、Docker ドキュメントの「CPU 配分の制約
」を参照してください。Linux kernel が許可する CPU の有効な最小共有値は 2 です。ただし、CPU のパラメータは必要なく、コンテナ定義で 2 以下の CPU 値を使用できます。CPU 値が 2 未満の場合 (null を含む)、動作は Amazon ECS コンテナエージェントのバージョンによって異なります。 -
Agent versions <= 1.1.0: Null と 0 の CPU 値は Docker に 0 として渡され、Docker はそれを 1,024 個の CPU 配分に変換します。1 の CPU 値は Docker に 1 として渡され、Linux カーネルはそれを 2 個の CPU 配分に変換します。
-
Agent versions >= 1.2.0: Null、0、1 の CPU 値は Docker に 2 個の CPU 配分として渡されます。
Windows コンテナインスタンスでは、CPU 制限は絶対制限またはクォータとして適用されます。Windows コンテナは、タスク定義で指定された一定量の CPU にのみアクセスできます。ヌルまたはゼロの CPU 値は
0
として Docker に渡され、これを Windows は 1 つの CPU の 1% として解釈します。その他の例については、「Amazon ECS で CPU およびメモリリソースの管理方法
」を参照してください。 -
gpu
-
タイプ: ResourceRequirement オブジェクト
必須: いいえ
Amazon ECS コンテナエージェントがコンテナ用に予約した物理
GPUs
の数。タスク内のすべてのコンテナ用に予約されている GPU の数は、タスクが起動されたコンテナインスタンスで使用できる GPU の数を超えないようにしてください。詳細については、「Amazon ECS での GPU の使用」を参照してください。注記 このパラメータは、Windows コンテナ、または Fargate でホストされたコンテナではサポートされません。
essential
-
タイプ: ブール値
必須: いいえ
コンテナの
essential
パラメータがtrue
とマークされている場合、そのコンテナが何らかの理由で失敗または停止すると、タスクに含まれる他のすべてのコンテナは停止されます。コンテナのessential
パラメータがfalse
とマークされている場合、その失敗はタスクに含まれる残りのコンテナに影響を与えません。このパラメータを省略した場合、コンテナは必須と見なされます。すべてのタスクには少なくとも 1 つの必須のコンテナが必要です。アプリケーションが複数のコンテナで構成される場合は、用途が共通するコンテナをコンポーネントにグループ化し、それらのコンポーネントを複数のタスク定義に分ける必要があります。詳細については、「アプリケーションのアーキテクチャ」を参照してください。
"essential": true|false
entryPoint
-
重要 初期のバージョンの Amazon ECS コンテナエージェントは、
entryPoint
パラメータを正しく処理しません。entryPoint
の使用時に問題が発生する場合は、コンテナエージェントを更新するか、代わりにcommand
配列項目としてコマンドと引数を入力します。タイプ: 文字列配列
必須: いいえ
コンテナに渡されるエントリポイント。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの Entrypoint
にマップされ、--entrypoint
オプションは docker runにマップされます。Docker ENTRYPOINT
パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#entrypointを参照してください。 "entryPoint": ["string", ...]
command
-
タイプ: 文字列配列
必須: いいえ
コンテナに渡すコマンド。このパラメータは、Docker Remote API
(Docker リモート API) の [Create a container] (コンテナの作成) の Cmd
にマッピングされ、COMMAND
パラメータは docker runにマッピングされます。Docker CMD
パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmdを参照してください。複数の引数がある場合、各引数は配列において区切られた文字列である必要があります。 "command": ["string", ...]
workingDirectory
-
タイプ: 文字列
必須: いいえ
コンテナ内でコマンドを実行する作業ディレクトリ。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの WorkingDir
にマップされ、--workdir
オプションは docker runにマップされます。 "workingDirectory": "string"
environmentFiles
-
タイプ: オブジェクト配列
必須: いいえ
コンテナに渡す環境変数を含むファイルのリスト。このパラメータは、docker run
の --env-file
オプションにマッピングされます。この機能は、Windows コンテナで使用できません。
最大 10 個の環境ファイルを指定できます。ファイルには、ファイル拡張子
.env
が必要です。環境ファイルの各行には、VARIABLE=VALUE
形式で環境変数が含まれている必要があります。#
で始まる行はコメントとして扱われ、無視されます。環境変数ファイルの構文の詳細については、「Declare default environment variables in file」を参照してください。 コンテナ定義に個別の環境変数が指定されている場合は、環境ファイルに含まれる変数よりも優先されます。同じ変数を含む複数の環境ファイルが指定されている場合、それらのファイルは上から下に処理されます。一意の変数名を使用することをお勧めします。詳細については、「環境変数の指定」を参照してください。
environment
-
タイプ: オブジェクト配列
必須: いいえ
コンテナに渡す環境変数。このパラメータは、Docker Remote API
の 「Create a container (コンテナを作成する) 」セクションの Env
にマップされ、--env
オプションは docker runにマップされます。 重要 認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。
"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets
-
タイプ: オブジェクト配列
必須: いいえ
コンテナに公開するシークレットを表すオブジェクトです。詳細については、「機密データの指定」を参照してください。
name
-
型: 文字列
必須: はい
コンテナの環境変数として設定する値。
valueFrom
-
型: 文字列
必須: はい
コンテナに公開するシークレット。サポートされている値は、AWS Secrets Manager シークレットの完全な ARN または AWS Systems Manager パラメータストア内のパラメータの完全な ARN のいずれかです。
注記 起動しているタスクと同じリージョンに Systems Manager パラメータストアパラメータが存在する場合は、シークレットの完全な ARN または名前のどちらも使用できます。別のリージョンにパラメータが存在する場合は、完全な ARN を指定する必要があります。
"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
" } ]
ネットワーク設定
disableNetworking
-
タイプ: ブール値
必須: いいえ
このパラメータが true のとき、ネットワークはコンテナ内でオフになります。このパラメータは、Docker Remote API
のコンテナの作成 セクションの NetworkDisabled
にマッピングされます。注記 このパラメータは、
awsvpc
ネットワークモードを使用するタスクや Windows コンテナではサポートされていません。"disableNetworking": true|false
links
-
タイプ: 文字列配列
必須: いいえ
link
パラメータでは、コンテナがポートマッピングを必要とせずに互いに通信することを許可します。タスク定義のネットワークモードがbridge
に設定されている場合にのみサポートされます。name:internalName
構造体は Docker リンクのname:alias
に似ています。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。Docker コンテナのリンクの詳細については、https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/を参照してください。このパラメータは、Docker Remote API の Create a container (コンテナを作成する) セクションの Links
にマップされ、--link
オプションは docker runにマップされます。 注記 このパラメータは、
awsvpc
ネットワークモードを使用するタスクや Windows コンテナではサポートされていません。重要 同じコンテナインスタンスに配置されたコンテナは、リンクやホストポートマッピングを必要とせずに互いに通信できる場合があります。コンテナインスタンスでのネットワークの分離は、セキュリティグループと VPC 設定によって制御されます。
"links": ["name:internalName", ...]
hostname
-
タイプ: 文字列
必須: いいえ
コンテナに使用するホスト名。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの Hostname
にマップされ、--hostname
オプションは docker runにマップされます。 注記 awsvpc
ネットワークモードを使用している場合、hostname
パラメータはサポートされません。"hostname": "string"
dnsServers
-
タイプ: 文字列配列
必須: いいえ
コンテナに渡す DNS サーバーのリスト。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの Dns
にマップされ、--dns
オプションは docker runにマップされます。 注記 このパラメータは、
awsvpc
ネットワークモードを使用するタスクや Windows コンテナではサポートされていません。"dnsServers": ["string", ...]
dnsSearchDomains
-
タイプ: 文字列配列
必須: いいえ
パターン: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$
コンテナに渡す DNS 検索ドメインのリスト。このパラメータは、Docker Remote API
のコンテナの作成 セクションの DnsSearch
にマップされ、--dns-search
オプションは docker runにマップされます。 注記 このパラメータは、
awsvpc
ネットワークモードを使用するタスクや Windows コンテナではサポートされていません。"dnsSearchDomains": ["string", ...]
extraHosts
-
タイプ: オブジェクト配列
必須: いいえ
コンテナ上の
/etc/hosts
ファイルに追加する、ホスト名と IP アドレスのマッピングのリスト。このパラメータは、Docker Remote API
のコンテナの作成 セクションの ExtraHosts
にマップされ、--add-host
オプションは docker runにマップされます。 注記 このパラメータは Windows コンテナまたは、
awsvpc
ネットワークモードを使用するタスクではサポートされていません。"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
ストレージとログ記録
readonlyRootFilesystem
-
タイプ: ブール値
必須: いいえ
このパラメータが true のとき、コンテナはそのルートファイルシステムへの読み取り専用アクセスを許可されます。このパラメータは、Docker Remote API
のコンテナの作成 セクションの ReadonlyRootfs
にマップされ、--read-only
オプションは docker runにマップされます。 注記 このパラメータは Windows コンテナではサポートされません。
"readonlyRootFilesystem": true|false
mountPoints
-
タイプ: オブジェクト配列
必須: いいえ
コンテナでのデータボリュームのマウントポイント。
このパラメータは、Docker Remote API
のコンテナの作成 セクションの Volumes
にマップされ、--volume
オプションは docker runにマップされます。 Windows コンテナは
$env:ProgramData
と同じドライブに全部のディレクトリをマウントできます。Windows コンテナは、別のドライブにディレクトリをマウントできません。また、マウントポイントは複数のドライブにまたがることはできません。sourceVolume
-
型: 文字列
必須: はい (
mountPoints
を使用する場合)マウントするボリュームの名前。
containerPath
-
型: 文字列
必須: はい (
mountPoints
を使用する場合)ボリュームをマウントするコンテナ上のパス。
readOnly
-
タイプ: ブール値
必須: いいえ
この値が
true
の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値がfalse
の場合、コンテナはボリュームに書き込むことができます。デフォルト値はfalse
です。
volumesFrom
-
タイプ: オブジェクト配列
必須: いいえ
別コンテナからマウントするデータボリューム。このパラメータは、Docker Remote API
のコンテナの作成 セクションの VolumesFrom
にマップされ、--volumes-from
オプションは docker runにマップされます。 "volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration
-
タイプ: LogConfiguration オブジェクト
必須: いいえ
コンテナのログ設定の仕様。
ログ設定を使用したタスク定義の例については、「タスク定義の例」を参照してください。
このパラメータは、Docker Remote API
のコンテナの作成 セクションの LogConfig
にマップされ、--log-driver
オプションはdocker run
にマップされます。デフォルトでは、コンテナは Docker デーモンと同じロギングドライバーを使用します。ただし、コンテナ定義でこのパラメータを使用してロギングドライバーを指定することで、コンテナは Docker デーモンとは異なるロギングドライバーを使用できます。コンテナに異なるロギングドライバーを使用するには、コンテナインスタンス (またはリモートログ記録オプションの別のログサーバー) でログシステムを適切に設定する必要があります。サポートされているさまざまなロギングドライバーのオプションの詳細については、Docker ドキュメントの「ロギングドライバーの設定 」を参照してください。 コンテナのログ設定を指定するときは、以下の点に注意してください。
-
Amazon ECS では現在、Docker デーモンに使用可能なログドライバーがいくつかサポートされています (以下の有効な値を参照)。Amazon ECS コンテナエージェントの今後のリリースで他のログドライバーが追加される可能性があります。
-
このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
-
EC2 起動タイプを使用するタスクの場合、コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、そのインスタンスで使用可能なログドライバーを
ECS_AVAILABLE_LOGGING_DRIVERS
環境変数で登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのログ設定オプションを使用できるようになります。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。 -
Fargate 起動タイプを使用するタスクの場合、そのタスクをホストする基盤となるインフラストラクチャにアクセスできないため、必要な追加のソフトウェアはタスクの外でインストールする必要があります。たとえば、Fluentd 出力アグリゲータであるか、Gelf ログの送信先として Logstash を実行しているリモートホストです。
"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"
string
": "string
" ...}, "secretOptions": [{ "name": "string
", "valueFrom": "string
" }] }logDriver
-
タイプ: 文字列
有効な値:
"awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"
必須: はい (
logConfiguration
を使用する場合)コンテナに使用するログドライバー。上記の有効な値は、Amazon ECS コンテナエージェントがデフォルトで通信できるログドライバーです。
Fargate 起動タイプを使用するタスクの場合、サポートされるログドライバーは
awslogs
、splunk
、awsfirelens
です。EC2 起動タイプを使用するタスクの場合、サポートされるログドライバーは
awslogs
、fluentd
、gelf
、json-file
、journald
、logentries
、syslog
、splunk
、awsfirelens
です。タスク定義で
awslogs
ログドライバーを使用してコンテナログを CloudWatch Logs に送信する方法の詳細については、「awslogs ログドライバーを使用する」を参照してください。awsfirelens
ログドライバーの使用の詳細については、「カスタムログのルーティング」を参照してください。注記 上記に示されていないカスタムドライバーがある場合、GitHub で入手できる
Amazon ECS コンテナエージェントプロジェクトを fork し、そのドライバーを使用するようにカスタマイズできます。含めることを希望する変更について、プルリクエストを送信することをお勧めします。ただし、現在はこのソフトウェアの修正されたコピーの実行をサポートしていません。 このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
options
-
タイプ: 文字列間のマッピング
必須: いいえ
ログドライバーに送信する設定オプション。
FireLens を使用してログを AWS サービスまたは AWS パートナーネットワーク (APN) の宛先にルーティングしてログを保存および分析する場合、メモリにバッファリングされるイベント数の制限に
log-driver-buffer-limit
を設定できます。スループットが高いと、Docker 内のバッファのメモリ不足が発生する可能性があるため、潜在的なログ損失の問題を解決するのに役立ちます。詳細については、「Fluentd バッファ制限」を参照してください。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.19 以上を使用する必要があります。
secretOptions
-
タイプ: オブジェクト配列
必須: いいえ
ログ設定に渡すシークレットを表すオブジェクト。詳細については、「機密データの指定」を参照してください。
name
-
型: 文字列
必須: はい
コンテナの環境変数として設定する値。
valueFrom
-
型: 文字列
必須: はい
コンテナのログ設定に公開するシークレット。
"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "
splunk-token
", "valueFrom": "/ecs/logconfig/splunkcred
" }] }
-
firelensConfiguration
-
タイプ: FirelensConfiguration オブジェクト
必須: いいえ
コンテナの FireLens 設定。これは、コンテナログのログルーターの指定と設定に使用されます。詳細については、「カスタムログルーティング」を参照してください。
{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options
-
タイプ: 文字列間のマッピング
必須: いいえ
ログルーターを設定するときに使用するオプション。このフィールドはオプションで、カスタム設定ファイルを指定するか、タスク、タスク定義、クラスター、コンテナインスタンスの詳細などのメタデータをログイベントに追加するために使用できます。指定した場合、使用する構文は
"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}
です。詳細については、「FireLens 設定を使用するタスク定義の作成」を参照してください。 type
-
型: 文字列
必須: はい
使用するログルーター。有効な値は
fluentd
またはfluentbit
です。
セキュリティ
privileged
-
タイプ: ブール値
必須: いいえ
このパラメータが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス権限 (
root
ユーザーと同様) が付与されます。このパラメータは、Docker Remote API
のコンテナの作成 セクションの Privileged
にマップされ、--privileged
オプションは docker runにマップされます。 注記 このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。
"privileged": true|false
user
-
タイプ: 文字列
必須: いいえ
コンテナ内で使用するユーザー。このパラメータは、Docker Remote API
のコンテナの作成 セクションの User
にマップされ、--user
オプションは docker runにマップされます。 重要 host
ネットワークモードを使用してタスクを実行する場合、ルートユーザー (UID 0) を使用してコンテナを実行しないでください。ルート以外のユーザーを使用することがベストプラクティスとして推奨されます。以下の形式を使用して、
user
を指定できます。UID または GID を指定する場合は、正の整数として指定する必要があります。-
user
-
user:group
-
uid
-
uid:gid
-
user:gid
-
uid:group
注記 このパラメータは Windows コンテナではサポートされません。
"user": "string"
-
dockerSecurityOptions
-
タイプ: 文字列配列
有効な値: "no-new-privileges" | "apparmor:PROFILE" | "label:
value
" | "credentialspec:CredentialSpecFilePath
"必須: いいえ
SELinux と AppArmor のマルチレベルセキュリティシステムのカスタムラベルになる文字列のリスト。有効な値の詳細については、「Docker Run Security Configration
」を参照してください。このフィールドは、Fargate 起動タイプを使用するタスク内のコンテナには無効です。 Windows コンテナでは、Active Directory 認証用にコンテナを構成するときに、このパラメータを使用して認証情報仕様ファイルを参照できます。詳細については、「Windows コンテナでの gMSA の使用」を参照してください。
このパラメータは、Docker Remote API
のコンテナの作成 セクションの SecurityOpt
にマップされ、--security-opt
オプションは dockerにマップされます。 "dockerSecurityOptions": ["string", ...]
注記 コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、
ECS_SELINUX_CAPABLE=true
またはECS_APPARMOR_CAPABLE=true
環境変数を使用してセキュリティシステムを登録する必要があります。その後、そのインスタンスに配置されたコンテナがこれらのセキュリティオプションを使用できるようになります。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。
リソースの制限
ulimits
-
タイプ: オブジェクト配列
必須: いいえ
コンテナに定義する
ulimit
値の一覧。この値は、オペレーティングシステムのデフォルトのリソース制限設定を上書きします。このパラメータは、Docker Remote APIのコンテナの作成 セクションの Ulimits
にマップされ、--ulimit
オプションは docker runにマップされます。 Fargate でホストされる Amazon ECS タスクは、オペレーションシステムで設定されたデフォルトのリソース制限値を使用します。ただし、Fargate がオーバーライドする
nofile
リソース制限パラメータを除きます。nofile
リソース制限は、コンテナが使用できるオープンファイルの数の制限を設定します。デフォルトのnofile
ソフト制限は1024
であり、ハード制限は4096
です。詳細については、「タスクリソースの制限」を参照してください。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
注記 このパラメータは Windows コンテナではサポートされません。
"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]
name
-
タイプ: 文字列
有効な値:
"core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"
必須: はい (
ulimits
を使用する場合)ulimit
のtype
。 hardLimit
-
タイプ: 整数
必須: はい (
ulimits
を使用する場合)ulimit
タイプのハード制限。 softLimit
-
タイプ: 整数
必須: はい (
ulimits
を使用する場合)ulimit
タイプのソフト制限。
Docker のラベル
dockerLabels
-
タイプ: 文字列間のマッピング
必須: いいえ
コンテナに追加するラベルのキー/値マップ。このパラメータは、Docker Remote API
のコンテナの作成 セクションの Labels
にマップされ、--label
オプションは docker runにマップされます。 このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
"dockerLabels": {"string": "string" ...}
その他のコンテナ定義のパラメータ
以下のコンテナ定義パラメータは、[Configure via JSON (JSON による設定)] オプションを使用して、Amazon ECS コンソールでタスク定義を登録するときに使用できます。詳細については、「新しいコンソールを使用したタスク定義の作成」を参照してください。
Linux パラメータ
linuxParameters
-
型: LinuxParameters オブジェクト
必須: いいえ
KernelCapabilities など、コンテナに適用される Linux 固有のオプション。
注記 このパラメータは Windows コンテナではサポートされません。
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities
-
型: KernelCapabilities オブジェクト
必須: いいえ
Docker によって提供されているデフォルト設定に対して追加または削除する、コンテナ用の Linux 機能。デフォルト機能およびデフォルト以外の使用可能な機能の詳細については、Docker 実行リファレンスのランタイム権限および Linux 機能
を参照してください。これらの Linux 機能の詳細については、Linux マニュアルページの「機能(7) 」を参照してください。 add
-
タイプ: 文字列配列
有効な値:
"ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"
必須: いいえ
Docker によって提供されているデフォルト設定に追加する、コンテナ用の Linux 機能。このパラメータは、Docker Remote API
のコンテナの作成 セクションの CapAdd
にマップされ、--cap-add
オプションは docker runにマップされます。 注記 Fargate で起動したタスクでサポートされるのは、
SYS_PTRACE
カーネル機能の追加のみです。 drop
-
タイプ: 文字列配列
有効な値:
"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"
必須: いいえ
Docker によって提供されているデフォルト設定から削除する、コンテナ用の Linux 機能。このパラメータは、Docker Remote API
のコンテナの作成 セクションの CapDrop
にマップされ、--cap-drop
オプションは docker runにマップされます。
devices
-
コンテナに公開するすべてのホストデバイス。このパラメータは、Docker Remote API
のコンテナの作成 セクションの Devices
にマップされ、--device
オプションは docker runにマップされます。 注記 Fargate 起動タイプを使用するタスクを使用している場合、
devices
パラメータはサポートされません。型: デバイスオブジェクト配列
必須: いいえ
hostPath
-
ホストコンテナインスタンス上のデバイスのパス。
型: 文字列
必須: はい
containerPath
-
ホストデバイスを公開するコンテナ内のパス。
型: 文字列
必須: いいえ
permissions
-
デバイス用のコンテナを提供する明示的なアクセス許可 デフォルトでは、コンテナにはデバイスの
read
、write
、およびmknod
のアクセス許可があります。タイプ: 文字列の配列
有効な値:
read
|write
|mknod
initProcessEnabled
-
信号を転送しプロセスを利用するコンテナ内で、
init
を実行。このパラメータは、docker runの --init
オプションにマッピングされます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.25 以上を使用する必要があります。
maxSwap
-
コンテナが使用できるスワップメモリの合計 (MiB 単位)。このパラメータは、docker run
の --memory-swap
オプションに変換されます。ここで、値はコンテナメモリの合計にmaxSwap
値を加えた値です。0
のmaxSwap
値を指定した場合、コンテナはスワップを使用しません。許容値は、0
または任意の正の整数です。maxSwap
パラメータを省略すると、コンテナは実行中のコンテナインスタンスのスワップ設定を使用します。swappiness
パラメータを使用するには、maxSwap
値を設定する必要があります。注記 Fargate 起動タイプを使用するタスクを使用している場合、
maxSwap
パラメータはサポートされません。 sharedMemorySize
-
/dev/shm
ボリュームのサイズ値 (MiB) です。このパラメータは、docker runの --shm-size
オプションにマッピングされます。注記 Fargate 起動タイプを使用するタスクを使用している場合、
sharedMemorySize
パラメータはサポートされません。タイプ: 整数
swappiness
-
これにより、コンテナのメモリスワップ動作を調整できます。
swappiness
値が0
の場合、絶対に必要な場合を除き、スワップは行われません。swappiness
値が100
の場合、ページは非常に積極的にスワップされます。使用できる値は、0
と100
の間の整数です。swappiness
パラメータを指定しない場合、デフォルト値の60
が使用されます。maxSwap
の値が指定されていない場合、このパラメータは無視されます。このパラメータは、docker runの --memory-swappiness
オプションにマッピングされます。注記 Fargate 起動タイプを使用するタスクを使用している場合、
swappiness
パラメータはサポートされません。 tmpfs
-
Tmpfs マウントのコンテナパス、マウントオプション、最大サイズ (MiB) です。このパラメータは、docker run
の --tmpfs
オプションにマッピングされます。注記 Fargate 起動タイプを使用するタスクを使用している場合、
tmpfs
パラメータはサポートされません。型: Tmpfs オブジェクト配列
必須: いいえ
containerPath
-
tmpfs ボリュームがマウントされる絶対ファイルパス。
型: 文字列
必須: はい
mountOptions
-
tmpfs ボリュームのマウントオプションのリスト。
タイプ: 文字列の配列
必須: いいえ
有効な値:
"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"
size
-
tmpfs ボリュームの最大サイズ (MiB単位)。
タイプ: 整数
必須: はい
コンテナの依存関係
dependsOn
-
型: ContainerDependency オブジェクトの配列
必須: いいえ
コンテナの起動と停止に定義されている依存関係。コンテナには複数の依存関係を含めることができます。依存関係がコンテナの起動に対して定義されている場合、コンテナの停止の場合、依存関係は逆になります。例については、例: コンテナの依存関係 を参照してください。
注記 コンテナが依存関係の制約を満たさない場合、または制約を満たす前にタイムアウトした場合、Amazon ECS は依存コンテナを次の状態に進めません。
Amazon EC2 インスタンスでホストされている Amazon ECS タスクの場合、コンテナの依存関係を有効にするには、インスタンスにバージョン
1.26.0
以上のコンテナエージェントが必要です。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新については、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。Amazon ECS 対応 Amazon Linux AMI を使用している場合、インスタンスでは、ecs-init
パッケージの1.26.0-1
バージョン以降が必要です。コンテナインスタンスがバージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、「Amazon ECS に最適化された AMI」を参照してください。Fargate でホストされている Amazon ECS タスクの場合、このパラメータでは、タスクまたはサービスがプラットフォームバージョン
1.3.0
以降 (Linux) または1.0.0
(Windows) を使用している必要があります。"dependsOn": [ { "containerName": "
string
", "condition": "string
" } ]containerName
-
タイプ: 文字列。
必須: はい
コンテナ名が指定された条件を満たしている必要があります。
condition
-
型: 文字列
必須: はい
コンテナの依存関係の条件です。使用可能な条件とその動作を以下に示します。
-
START
- この条件は、すぐに現在のリンクとボリュームの動作をエミュレートします。他のコンテナの開始を許可する前に、依存コンテナが開始されていることを検証します。 -
COMPLETE
- この条件は、他のコンテナの開始を許可する前に、依存コンテナの実行が完了 (終了) することを検証します。これは、スクリプトを実行して終了する不要なコンテナに役立ちます。この条件は、必須コンテナには設定できません。 -
SUCCESS
- この条件はCOMPLETE
と同じですが、コンテナがzero
ステータスで終了していることも必要です。この条件は、必須コンテナには設定できません。 -
HEALTHY
- この条件は、他のコンテナの開始を許可する前に、依存コンテナが Docker ヘルスチェックに合格したことを検証します。これには、依存コンテナにヘルスチェックが設定されている必要があります。タスクの起動時にのみ、この条件が確認されます。
-
コンテナのタイムアウト
startTimeout
-
タイプ: 整数
必須: いいえ
値の例:
120
コンテナの依存関係解決の再試行を止めるまでの待機時間 (秒)。
たとえば、タスク定義内に 2 つのコンテナを指定するとします。
containerA
は、COMPLETE
、SUCCESS
、またはHEALTHY
のいずれかのステータスに到達するcontainerB
に依存関係を持ちます。startTimeout
の値がcontainerB
に指定されていて、時間内に目標のステータスを達成しない場合、containerA
は再試行を開始しません。注記 コンテナが依存関係の制約を満たさない場合、または制約を満たす前にタイムアウトした場合、Amazon ECS は依存コンテナを次の状態に進めません。
Fargate でホストされている Amazon ECS タスクの場合、このパラメータでは、タスクまたはサービスがプラットフォームバージョン
1.3.0
以降 (Linux) を使用している必要があります。 stopTimeout
-
タイプ: 整数
必須: いいえ
値の例:
120
コンテナが正常に終了しなかった場合にコンテナが強制終了されるまでの待機時間 (秒)。
Fargate 起動タイプを使用するタスクの場合、タスクまたはサービスにはプラットフォームバージョン 1.3.0 以降 (Linux) または 1.0.0 以降 (Windows) が必要です。最大停止タイムアウト値は 120 秒です。パラメータを指定しない場合は、デフォルト値の 30 秒が使用されます。
EC2 起動タイプを使用するタスクでは、
stopTimeout
パラメータが指定されていない場合、Amazon ECS コンテナエージェント設定変数ECS_CONTAINER_STOP_TIMEOUT
に設定された値がデフォルトで使用されます。stopTimeout
パラメータまたはECS_CONTAINER_STOP_TIMEOUT
エージェント設定変数のいずれも設定されていない場合、Linux コンテナの場合は 30 秒、Windows コンテナの場合は 30 秒というデフォルト値が使用されます。コンテナインスタンスには、コンテナ停止タイムアウト値を有効にするために、コンテナエージェントのバージョン 1.26.0 以上が必要です。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認と最新バージョンへの更新については、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。Amazon ECS 対応 Linux Amazon AMI を使用している場合、インスタンスでは、ecs-init
パッケージの 1.26.0-1 バージョン以上が必要です。コンテナインスタンスがバージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、「Amazon ECS に最適化された AMI」を参照してください。
システムコントロール
systemControls
-
型: SystemControl オブジェクト
必須: いいえ
コンテナ内で設定する名前空間カーネルパラメータのリスト。このパラメータは、Docker Remote API
のコンテナの作成 セクションの Sysctls
にマップされ、--sysctl
オプションは docker runにマップされます。 awsvpc
またはhost
ネットワークモードのいずれかを使用する単一のタスクで複数のコンテナに対してネットワーク関連のsystemControls
パラメータを指定することが推奨されない理由は次のとおりです。-
awsvpc
ネットワークモードを使用するタスクの場合、systemControls
をコンテナ用に設定した場合、タスク内のすべてのコンテナに適用されます。単一のタスクの複数のコンテナに対して異なるsystemControls
を設定すると、最後に開始されたコンテナにより有効になるsystemControls
が決定します。 -
host
ネットワークモードを使用するタスクでは、ネットワーク名前空間systemControls
はサポートされていません。
タスクのコンテナに使用するため IPC リソース名前空間を設定している場合は、次のようにシステムコントロールに適用されます。詳細については、「IPC モード」を参照してください。
-
host
IPC モードを使用するタスクの場合、IPC 名前空間のsystemControls
はサポートされていません。 -
task
IPC モードを使用するタスクでは、IPC 名前空間のsystemControls
値はタスク内のすべてのコンテナに適用されます。
注記 このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。
"systemControls": [ { "namespace":"
string
", "value":"string
" } ]namespace
-
型: 文字列
必須: いいえ
value
を設定する名前空間カーネルパラメータ。有効な IPC 名前空間値:
"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"
、および"fs.mqueue.*"
で始まる Sysctls有効なネットワーク名前空間値:
"net.*"
で始まる Sysctls value
-
型: 文字列
必須: いいえ
namespace
で指定された名前空間カーネルパラメータの値。
-
インタラクティブ
interactive
-
タイプ: ブール値
必須: いいえ
このパラメータは
true
で、コンテナ化されたアプリケーションをデプロイすることができます。これには stdin または tty を割り当てる必要があります。このパラメータは、Docker Remote APIのコンテナの作成 セクションの OpenStdin
にマップされ、--interactive
オプションは docker runにマップされます。
擬似ターミナル
pseudoTerminal
-
タイプ: ブール値
必須: いいえ
このパラメータが
true
の場合、TTY が割り当てられます。このパラメータは、Docker Remote APIのコンテナの作成 セクションの Tty
にマップされ、--tty
オプションは docker runにマップされます。
タスク配置の制約事項
タスク定義の登録時、Amazon ECS でのタスク配置方法をカスタマイズするタスク配置の制約を指定できます。
Fargate 起動タイプを使用している場合、タスク配置の制約事項はサポートされません。デフォルトでは、Fargate タスクはアベイラビリティーゾーンにまたがって分散されています。
EC2 起動タイプを使用するタスクの場合、アベイラビリティーゾーン、インスタンスタイプ、またはカスタム属性に基づいたタスク配置の制約を使用できます。詳細については、「Amazon ECS タスク配置の制約事項」を参照してください。
以下のパラメータをコンテナ定義で使用できます。
expression
-
タイプ: 文字列
必須: いいえ
制約に適用されるクラスタークエリ言語式。詳細については、「クラスタークエリ言語」を参照してください。
type
-
タイプ: 文字列
必須: はい
制約事項のタイプ。選択対象を有効な候補グループに制約するには、
memberOf
を使用します。
プロキシ設定
proxyConfiguration
-
タイプ: ProxyConfiguration オブジェクト
必須: いいえ
App Mesh プロキシの設定詳細。
EC2 起動タイプを使用するタスクの場合、プロキシ設定を有効にするには、コンテナインスタンスにコンテナエージェントのバージョン 1.26.0 以上と
ecs-init
パッケージのバージョン 1.26.0-1 以上が必要です。コンテナインスタンスが Amazon ECS に最適化された AMI バージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、「Amazon ECS に最適化された AMI」を参照してください。Fargate の起動タイプを使用するタスクの場合、この機能にはタスクまたはサービスでプラットフォームバージョン 1.3.0 以降を使用する必要があります。
注記 このパラメータは Windows コンテナではサポートされません。
"proxyConfiguration": { "type": "APPMESH", "containerName": "
string
", "properties": [ { "name": "string
", "value": "string
" } ] }type
-
型: 文字列
重要な値:
APPMESH
必須: いいえ
プロキシタイプ。
APPMESH
はサポートされる唯一の値です。 containerName
-
型: 文字列
必須: はい
App Mesh プロキシとして機能するコンテナの名前です。
properties
-
タイプ: パラメータオブジェクトの配列
必須: いいえ
Container Network Interface(CNI) プラグインを提供するネットワーク設定パラメータのセットで、キーと値のペアとして指定されます。
-
IgnoredUID
- (必須) コンテナ定義のuser
パラメータで定義されるプロキシコンテナのユーザー ID (UID)。これは、プロキシがそれ自体のトラフィックを無視するようにするために使用されます。IgnoredGID
を指定した場合は、このフィールドは空にできます。 -
IgnoredGID
- (必須) コンテナ定義のuser
パラメータで定義されるプロキシコンテナのグループ ID (GID)。これは、プロキシがそれ自体のトラフィックを無視するようにするために使用されます。IgnoredUID
を指定した場合は、このフィールドは空にできます。 -
AppPorts
- (必須) アプリケーションが使用するポートのリスト。これらのポートへのネットワークトラフィックはProxyIngressPort
およびProxyEgressPort
に転送されます。 -
ProxyIngressPort
- (必須)AppPorts
への着信トラフィックが誘導されるポートを指定します。 -
ProxyEgressPort
- (必須)AppPorts
からの発信トラフィックが誘導されるポートを指定します。 -
EgressIgnoredPorts
– (必須) これらの指定されたポートに向かうアウトバウンドトラフィックは無視され、ProxyEgressPort
にリダイレクトされません。空のリストを指定できます。 -
EgressIgnoredIPs
– (必須) これらの指定された IP アドレスに向かうアウトバウンドトラフィックは無視され、ProxyEgressPort
にリダイレクトされません。空のリストを指定できます。
-
ボリューム
タスク定義を登録する際、コンテナインスタンスの Docker デーモンに渡されるボリュームのリストをオプションで指定することができます。これにより、同じコンテナインスタンス上の他のコンテナで使用できるようになります。
使用できるデータボリュームの種類は以下のとおりです。
-
Docker ボリューム — ホストの Amazon EC2 インスタンスで
/var/lib/docker/volumes
に作成される Docker マネージドボリューム。Docker ボリュームドライバー (プラグインとも呼ばれる) は、ボリュームを外部ストレージシステム (Amazon EBS など) と統合するために使用します。組み込みのlocal
ボリュームドライバーまたはサードパーティーのボリュームドライバーを使用できます。Docker ボリュームは、Amazon EC2 インスタンスでタスクを実行する場合にのみサポートされます。Windows コンテナでは、local
ドライバーの使用のみサポートされます。Docker ボリュームを使用するには、タスク定義でdockerVolumeConfiguration
を指定します。詳細については、「ボリュームの使用」を参照してください。 -
バインドマウント — ホストマシン上のファイルやディレクトリがコンテナにマウントされます。バインドマウントのホストボリュームは、AWS Fargate インスタンスまたは Amazon EC2 インスタンスでタスクを実行するときにサポートされます。バインドマウントのホストボリュームを使用するには、タスク定義で
host
およびオプションのsourcePath
値を使用します。詳細については、「Use bind mounts」を参照してください。
詳細については、「タスクでのデータボリュームの使用」を参照してください。
以下のパラメータをコンテナ定義で使用できます。
name
-
型: 文字列
必須: いいえ
ボリュームの名前。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。この名前は、コンテナ定義
mountPoints
オブジェクトのsourceVolume
パラメータで参照されます。 host
-
必須: いいえ
注記 host
パラメーターは、Amazon EC2 インスタンスでホストされているタスクを使用するときのみにサポートされます。host
パラメーターは、バインドマウントのライフサイクルを、タスクではなくホスト Amazon EC2 インスタンスと、それが格納されている場所に関連付けるために使用されます。host
パラメーターが空の場合、Docker デーモンはデータボリュームのホストパスを割り当てますが、関連付けられたコンテナの実行が停止した後にデータが保持されるとは限りません。Windows コンテナは
$env:ProgramData
と同じドライブに全部のディレクトリをマウントできます。sourcePath
-
型: 文字列
必須: いいえ
host
パラメータを使用する場合は、sourcePath
を指定して、コンテナに表示されるホスト Amazon EC2 インスタンスのパスを宣言します。このパラメータが空の場合は、Docker デーモンによってホストパスが割り当てられます。host
パラメータにsourcePath
の場所が含まれている場合、データボリュームは手動で削除するまでホスト Amazon EC2 インスタンスの指定された場所に保持されます。sourcePath
の値がホスト Amazon EC2 インスタンスに存在しない場合は、Docker デーモンによって作成されます。その場所が存在する場合は、ソースパスフォルダの内容がエクスポートされます。
dockerVolumeConfiguration
-
タイプ: オブジェクト
必須: いいえ
このパラメータは、Docker ボリュームを使用する場合に指定します。Docker ボリュームは、EC2 インスタンスでタスクを実行する場合にのみサポートされます。Windows コンテナでは、
local
ドライバーの使用のみサポートされます。バインドマウントを使用するには、代わりにhost
を指定します。scope
-
型: 文字列
有効な値:
task
|shared
必須: いいえ
Docker ボリュームのスコープ。これにより、ボリュームのライフサイクルが決定されます。Docker ボリュームの範囲が
task
の場合は、タスクが開始すると自動的にプロビジョンされ、タスクがクリーンアップされると破棄されます。Docker ボリュームの範囲がshared
の場合は、タスクの停止後も保持されます。 autoprovision
-
タイプ: ブール値
デフォルト値:
false
必須: いいえ
この値が
true
の場合、既に存在していない場合は Docker ボリュームが作成されます。このフィールドは、scope
がshared
の場合のみ使用されます。scope
がtask
の場合、このパラメータは省略するか、false
に設定する必要があります。 driver
-
型: 文字列
必須: いいえ
使用する Docker ボリュームドライバー。ドライバーの値は、タスク配置に使用されるため、Docker で提供されているドライバー名と一致する必要があります。ドライバーが Docker プラグイン CLI を使用してインストール済みである場合は、
docker plugin ls
を使用してコンテナインスタンスからドライバー名を取得します。ドライバーが別の方法を使用してインストール済みである場合は、Docker プラグインの検出を使用してドライバー名を取得します。詳細については、「Docker プラグインの検出」を参照してください。このパラメータは、Docker Remote API のボリュームの作成 セクションの Driver
にマッピングされ、docker volume create
への --driver
オプションにマッピングされます。 driverOpts
-
型: 文字列
必須: いいえ
パススルーする Docker ドライバー固有のオプションのマップ。このパラメータは、Docker Remote API
のボリュームの作成 セクションの DriverOpts
にマッピングされ、docker volume create
への --opt
オプションにマッピングされます。 labels
-
型: 文字列
必須: いいえ
Docker ボリュームに追加するカスタムメタデータ。このパラメータは、Docker Remote API
のボリュームの作成 セクションの Labels
にマッピングされ、docker volume create
への --label
オプションにマッピングされます。
efsVolumeConfiguration
-
タイプ: オブジェクト
必須: いいえ
このパラメータは、Amazon EFS ボリュームを使用する場合に指定します。
fileSystemId
-
型: 文字列
必須: はい
使用する Amazon EFS ファイルシステムの ID。
rootDirectory
-
型: 文字列
必須: いいえ
ホスト内にルートディレクトリとしてマウントする Amazon EFS ファイルシステム内のディレクトリ。このパラメータを省略すると、Amazon EFS ボリュームのルートが使用されます。
/
を指定すると、このパラメータを省略した場合と同じ結果になります。重要 authorizationConfig
に EFS アクセスポイントを指定する場合は、ルートディレクトリパラメータを省略するか、または/
に設定して EFS アクセスポイントにパスを設定する必要があります。 transitEncryption
-
型: 文字列
有効な値:
ENABLED
|DISABLED
必須: いいえ
Amazon ECS ホストと Amazon EFS サーバー間で Amazon EFS データの転送中の暗号化を有効にするかどうかを指定します。Amazon EFS IAM 認証を使用する場合は、転送中の暗号化を有効にする必要があります。このパラメータを省略すると、[
DISABLED
] のデフォルト値が使用されます。詳細については、Amazon Elastic ファイルシステムユーザーガイドの「転送中データの暗号化」を参照してください。 transitEncryptionPort
-
タイプ: 整数
必須: いいえ
Amazon ECS ホストと Amazon EFS サーバーの間で暗号化されたデータを送信するときに使用するポート。転送中の暗号化のポートを指定しないと、Amazon EFS マウントヘルパーが使用するポート選択方法が使用されます。詳細については、Amazon Elastic ファイルシステムユーザーガイドの EFS マウントヘルパーを参照してください。
authorizationConfig
-
タイプ: オブジェクト
必須: いいえ
Amazon EFS ファイルシステムの認証設定の詳細。
accessPointId
-
型: 文字列
必須: いいえ
使用するアクセスポイント ID。アクセスポイントを指定する場合は、
efsVolumeConfiguration
のルートディレクトリ値を省略するか、これを/
に設定して EFS アクセスポイントにパスを設定する必要があります。アクセスポイントを使用する場合は、EFSVolumeConfiguration
で転送中の暗号化を有効にする必要があります。詳細については、Amazon Elastic ファイルシステムユーザーガイドのAmazon EFS アクセスポイントの使用を参照してください。 iam
-
型: 文字列
有効な値:
ENABLED
|DISABLED
必須: いいえ
Amazon EFS ファイルシステムのマウント時にタスク定義で定義した Amazon ECS タスクの IAM ロールを使用するかどうかを指定します。使用する場合は、[
EFSVolumeConfiguration
] で転送中の暗号化を有効にする必要があります。このパラメータを省略すると、[DISABLED
] のデフォルト値が使用されます。詳細については、「タスク用の IAM ロール」を参照してください。
FSxWindowsFileServerVolumeConfiguration
-
タイプ: オブジェクト
必須: はい
このパラメータは、タスクストレージに FSx for Windows File Server ファイルシステムを使用するときに指定します。
fileSystemId
-
型: 文字列
必須: はい
使用する FSx for Windows File Server ファイルシステムID。
rootDirectory
-
型: 文字列
必須: はい
ホスト内にルートディレクトリとしてマウントする FSx for Windows File Server ファイルシステム内のディレクトリ。
authorizationConfig
-
credentialsParameter
-
型: 文字列
必須: はい
承認の認証情報オプション。
options:
AWSSecrets Manager シークレットの Amazon リソースネーム (ARN)。
AWSSystems Manager パラメータのARN。
domain
-
型: 文字列
必須: はい
AWS Directory Service マネージド Microsoft AD (アクティブディレクトリ) またはセルフホスト型 EC2 AD によってホストされる完全修飾ドメイン名。
[Tags] (タグ)
タスク定義の登録する際、タスク定義に適用されるメタデータタグをオプションで指定できます。タグは、タスク定義を分類して組織化するのに役立ちます。タグはそれぞれ、1 つのキーとオプションの 1 つの値で構成されており、どちらもお客様側が定義します。詳細については、「Amazon ECS リソースのタグ付け」を参照してください。
個人情報 (PII) などの機密情報や秘匿性の高い情報はタグに追加しないでください。タグは、多くの AWS のサービス (請求など) からアクセスできます。タグは、プライベートデータや機密データに使用することを意図していません。
タグオブジェクトでは、次のパラメータを使用できます。
key
-
タイプ: 文字列
必須: いいえ
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。
value
-
タイプ: 文字列
必須: いいえ
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。
その他のタスク定義パラメータ
以下のタスク定義パラメータは、[Configure via JSON (JSON による設定)] オプションを使用して、Amazon ECS コンソールでタスク定義を登録するときに使用できます。詳細については、「新しいコンソールを使用したタスク定義の作成」を参照してください。
エフェメラルストレージ
ephemeralStorage
-
タイプ: オブジェクト
必須: いいえ
タスクに割り当てるエフェメラルストレージの容量(GB)。このパラメーターを使用して、利用可能なエフェメラルストレージの総量を AWS Fargate に基づいてデフォルト容量を超えて拡張します。詳細については、「バインドマウント」を参照してください。
注記 このパラメータは、プラットフォームのバージョン
1.4.0
以降 (Linux) を使用して AWS Fargate でホストされたタスクでのみサポートされます。このパラメータは Fargate の Windows コンテナではサポートされません。
IPC モード
ipcMode
-
型: 文字列
必須: いいえ
タスク内のコンテナで使用する IPC リソースの名前空間。有効な値は
host
、task
またはnone
です。host
が指定されている場合、同じコンテナインスタンスでhost
IPC モードを指定したタスク内のすべてのコンテナは、ホスト Amazon EC2 インスタンスと同じ IPC リソースを共有します。task
が指定されている場合、指定したタスク内のすべてのコンテナは同じ IPC リソースを共有します。none
が指定されている場合、タスクのコンテナ内の IPC リソースはプライベートです。タスク内またはコンテナインスタンスの他のコンテナと共有されることはありません。値を指定しない場合、ipcMode の値はshareable
に設定されます。詳細については、Docker 実行リファレンスの IPC 設定を参照してください。 host
IPC モードを使用する場合は、意図せず IPC 名前空間が公開されるリスクが高いことに注意してください。詳細については、「Docker security」を参照してください。 タスクのコンテナに
systemControls
を使用して名前空間のカーネルパラメータを設定している場合は、次のように IPC リソース名前空間に適用されます。詳細については、「システムコントロール」を参照してください。-
host
IPC モードを使用するタスクの場合、systemControls
に関連する IPC 名前空間はサポートされていません。 -
task
IPC モードを使用するタスクでは、systemControls
に関連する IPC 名前空間はタスク内のすべてのコンテナに適用されます。
-
このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。
PID モード
pidMode
-
型: 文字列
必須: いいえ
タスクのコンテナで使用するプロセス名前空間。有効な値は
host
またはtask
です。host
が指定されている場合、同じコンテナインスタンスでhost
PID モードを指定したタスク内のすべてのコンテナは、ホスト Amazon EC2 インスタンスと同じ IPC リソースを共有します。task
が指定されている場合、指定したタスク内のすべてのコンテナは同じプロセス名前空間を共有します。値が指定されていない場合、デフォルトはプライベート名前空間です。詳細については、Docker 実行リファレンスの PID 設定を参照してください。 host
PID モードを使用する場合は、意図せずプロセス名前空間が公開されるリスクが高いことに注意してください。詳細については、「Docker security」を参照してください。
このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。