Amazon ECS タスク定義パラメータ
タスク定義は、タスクファミリー、AWS Identity and Access Management (IAM) タスクロール、ネットワークモード、コンテナ定義、ボリューム、タスク配置の制約、起動タイプの各部分に分かれています。ファミリとコンテナの定義は、タスク定義の必須項目です。これに対して、タスクロール、ネットワークモード、ボリューム、タスク配置の制約、起動タイプは省略することができます。
これらのパラメータを JSON ファイルで使用し、タスク定義を設定できます。
以下に示すのは、各タスク定義パラメータのより詳細な説明です。
ファミリー
family
-
型: 文字列
必須: はい
タスク定義を登録するときに、ファミリー (複数バージョンのタスク定義の名前のようなもの) を指定する必要があります。登録したタスク定義には、リビジョン番号が与えられます。特定のファミリーに登録した最初のタスク定義には、リビジョン 1 が与えられます。その後に登録したタスク定義には、連番でリビジョン番号が与えられます。
起動タイプ
タスク定義の登録時、Amazon ECS がタスク定義の検証基準となる起動タイプを指定できます。タスク定義が指定された互換性を検証しない場合、クライアント例外が返されます。詳しくは、「Amazon ECS 起動タイプ」を参照してください。
タスク定義では、以下のパラメータが使用できます。
requiresCompatibilities
-
タイプ: 文字列配列
必須:いいえ
有効な値:
EC2
|FARGATE
|EXTERNAL
タスク定義が検証された起動タイプ。これにより、タスク定義で使用されているすべてのパラメータが、起動タイプの要件を満たしていることの確認処理が開始されます。
タスクロール
taskRoleArn
-
型: 文字列
必須: いいえ
タスク定義を登録するときに、IAM ロールのタスクロールを割り当てて、タスクのコンテナに、関連するポリシーに指定された AWS API を呼び出すためのアクセス権限を付与できます。詳細については、「Amazon ECS タスクの IAM ロール」を参照してください。
Amazon ECS に最適化された Windows Server AMI を起動する場合、Windows タスク向けの IAM ロールでは、
-EnableTaskIAMRole
オプションが設定されている必要があります。また、コンテナでは、この機能を利用するために一部の構成コードを実行する必要があります。詳細については、「 Amazon EC2 Windows インスタンスの追加設定」を参照してください。
タスク実行ロール
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
ネットワークモードが使用されます。Fargate でホストされている Amazon ECS タスクでは、awsvpc
ネットワークモードが必要です。ネットワークモードに
none
を設定した場合、タスクのコンテナは外部への接続を持たないため、コンテナ定義でポートマッピングを指定することはできません。ネットワークモードが
bridge
の場合、タスクはそのタスクをホストする各 Amazon EC2 インスタンス内で実行される、Linux 上の Docker の組み込み仮想ネットワークを使用します。Linux の組み込み仮想ネットワークでは、bridge
Docker ネットワークドライバーが使用されます。ネットワークモードが
host
の場合、タスクはそのタスクをホストする Amazon EC2 インスタンスの ENI にコンテナポートを直接マッピングすることで Docker の組み込み仮想ネットワークをバイパスする、ホストのネットワークを使用します。ダイナミックポートマッピングは、このネットワークモードでは使用できません。このモードを使用するタスク定義内のコンテナには、特定のhostPort
番号を指定する必要があります。ホストのポート番号は、複数のタスクで使用できません。その結果として、1 つの Amazon EC2 インスタンスで同じタスク定義のタスクを複数実行することはできません。重要
host
ネットワークモードをによりタスクを実行する場合、より良いセキュリティーのために、ルートユーザー (UID 0) を使用してコンテナを実行しないでください。セキュリティのベストプラクティスとしては、常にルート以外のユーザーを使用します。Amazon EC2 起動タイプでは、ネットワークモードが
awsvpc
の場合、タスクに Elastic Network Interface が割り当てられるため、タスク定義を使用したサービスの作成時またはタスクの実行時にNetworkConfiguration
を指定する必要があります。詳細については、「EC2 起動タイプの Amazon ECS タスクネットワークオプション」を参照してください。ネットワークモードが
default
の場合、タスクはそのタスクをホストする各 Amazon EC2 インスタンス内で実行される、Windows 上の Docker の組み込み仮想ネットワークを使用します。Windows の組み込み仮想ネットワークはnat
Docker ネットワークドライバーを使用します。Fargate 起動タイプでは、ネットワークモードが
awsvpc
の場合、タスクに Elastic Network Interface が割り当てられるため、タスク定義を使用したサービスの作成時またはタスクの実行時にNetworkConfiguration
を指定する必要があります。詳細については、「Fargate Task Networking」を参照してください。awsvpc
ネットワークモードでは、コンテナのネットワークパフォーマンスは最大限になります。Amazon EC2 ネットワークスタックを使用するためです。公開されたコンテナのポートは、アタッチされた Elastic Network Interface ポートに直接マッピングされます。このため、動的ホストポートマッピングは使用できません。host
およびawsvpc
のネットワークモードは、Amazon EC2 のネットワークスタックを使用するので、コンテナのネットワークパフォーマンスが最大限発揮されます。host
およびawsvpc
ネットワークモードにおいて公開されるコンテナポートは、対応するホストポート (host
ネットワークモードの場合)、またはアタッチされた Elastic Network Interface ポート (awsvpc
ネットワークモードの場合) に直接マッピングされます。このため、動的ホストポートマッピングは使用できません。Fargate 起動タイプを使用している場合、
awsvpc
ネットワークモードが必要です。EC2 起動タイプを使用している場合、使用可能なネットワークモードは、基盤となる EC2 インスタンスのオペレーティングシステムによって異なります。Linux の場合は、どのネットワークモードも使用できます。Windows の場合、default
およびawsvpc
モードを使用できます。
ランタイムプラットフォーム
operatingSystemFamily
-
型: 文字列
必須: 条件による
デフォルト: LINUX
Fargate でホストされる Amazon ECS タスクでは、このパラメータは必須です。
タスク定義を登録する際、オペレーティングシステムファミリを指定します。
Fargate でホストされる Amazon ECS タスクの場合、有効な値は、
LINUX
、WINDOWS_SERVER_2019_FULL
、WINDOWS_SERVER_2019_CORE
、WINDOWS_SERVER_2022_FULL
、およびWINDOWS_SERVER_2022_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 タスクに必要です。パラメータを
null
のままにすると、Fargate でホストされているタスクの開始すしたときにデフォルト値が自動的に割り当てられます。タスク定義を登録する際は、CPU アーキテクチャを指定します。有効な値は
X86_64
およびARM64
です。サービスで使用されるすべてのタスク定義は、このパラメータに対して同じ値を設定する必要があります。
Fargate 起動タイプまたは EC2 起動タイプのいずれかの Linux タスクを使用する場合、値を
ARM64
に設定できます。詳細については、「64 ビット ARM ワークロードでの Amazon ECS タスク定義」を参照してください。
タスクサイズ
タスク定義の登録時に、そのタスクが使用する CPU とメモリの合計量を指定できます。これは、コンテナ定義レベルの cpu
および memory
の値とは異なります。Amazon EC2 インスタンスでホストされるタスクの場合、これらのフィールドは省略可能です。Fargate (Linux 向けと Windows 向けの両方) でホストされるタスクの場合、これらのフィールドは必須です。また、cpu
および memory
の両方について、特定の値がサポートされています。
注記
タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。Windows コンテナではコンテナレベルリソースを指定することをお勧めします。
以下のパラメータをタスク定義で使用できます。
cpu
-
型: 文字列
必須: 条件による
注記
このパラメータは Windows コンテナではサポートされません。
タスクに適用される CPU ユニットのハード制限。JSON ファイルでは、CPU 値を CPU ユニットまたは仮想 CPU (vCPU) の文字列として指定できます。例えば、CPU 値を
1 vCPU
(CPU ユニット) または1024
(vCPU) として指定できます。タスク定義が登録されると、vCPU 値は、CPU ユニットを示す整数に変換されます。EC2 または外部インスタンスで実行されるタスクの場合、このフィールドは省略可能です。クラスターに、要求された CPU ユニットが利用できる登録済みのコンテナインスタンスがない場合、タスクは失敗します。EC2 または外部インスタンスで実行されるタスクでサポートされている値は、
0.125
vCPU と10
vCPU の間です。Fargate (Linux と Windows コンテナの両方) で実行されるタスクの場合、このフィールドは必須であり、以下のいずれかの値を使用する必要があります。この値により
memory
パラメータでサポートされる値の範囲が決まります。以下の表に、タスクレベル CPU とメモリの有効な組み合わせを示します。CPU の値 メモリの値 AWS Fargate でサポートされるオペレーティングシステム 256 (.25 vCPU) 512 MiB、1 GB、2 GB Linux 512 (.5 vCPU) 1 GB、2 GB、3 GB、4 GB Linux 1,024 (1 vCPU) 2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB Linux、Windows 2,048 (2 vCPU) 4 GB ~ 16 GB (1 GB のインクリメント) Linux、Windows 4,096 (4 vCPU) 8 GB ~ 30 GB (1 GB のインクリメント) Linux、Windows 8192 (8 vCPU) 注記
このオプションには Linux プラットフォーム
1.4.0
以降が必要です。16 GB~60 GB (4 GB のインクリメント) Linux 16384 (16vCPU) 注記
このオプションには Linux プラットフォーム
1.4.0
以降が必要です。32 GB~120 GB (8 GB のインクリメント) Linux
memory
-
型: 文字列
必須: 条件による
注記
このパラメータは Windows コンテナではサポートされません。
タスクに適用されるメモリのハード制限です。タスク定義のメモリの値は、メビバイト (MiB) またはギガバイト (GB) の文字列として指定できます。例えば、メモリの値を
3072
(MiB) または3 GB
(GB) のいずれかで指定できます。タスク定義が登録されると、GB 値は、MiB を示す整数に変換されます。Amazon EC2 インスタンスでホストされるタスクの場合、このフィールドは省略可能であり、任意の値が使用可能です。タスクレベルでメモリ値が指定されている場合、コンテナレベルのメモリ値の設定は省略可能です。クラスターに、要求されたメモリが利用できる登録済みのコンテナインスタンスがない場合、タスクは失敗します。特定のインスタンスタイプについて、タスクにできるだけ多くのメモリを提供することで、リソースの使用率を最大化することができます。詳細については、「Amazon ECS Linux コンテナインスタンスのメモリを予約する」を参照してください。
Fargate (Linux と Windows コンテナの両方) でホストしたタスクの場合、このフィールドは必須であり、以下のいずれかの値を使用する必要があります。この値により
cpu
パラメータでサポートされる値の範囲が決まります。メモリ値 (単位 MiB、ほぼ同等の GB での値を付記) 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) 1,024 (1 vCPU) Linux、Windows 4,096 (4 GB)~16,384 (16 GB) (1,024 (1 GB) 単位の増加) 2,048 (2 vCPU) Linux、Windows 8,192 (8 GB)~30,720 (30 GB) (1,024 (1 GB) 単位の増加) 4,096 (4 vCPU) Linux、Windows 16 GB~60 GB (4 GB のインクリメント) 注記
このオプションには Linux プラットフォーム
1.4.0
以降が必要です。8192 (8 vCPU) Linux
32 GB~120 GB (8 GB のインクリメント) 注記
このオプションには Linux プラットフォーム
1.4.0
以降が必要です。16384 (16vCPU) Linux
コンテナ定義
タスク定義を登録するときは、コンテナインスタンスの Docker デーモンに渡されるコンテナ定義のリストを指定する必要があります。以下のパラメータをコンテナ定義で使用できます。
標準のコンテナ定義のパラメータ
以下のタスク定義のパラメータは必須であるか、ほとんどのコンテナ定義で使用されます。
名前
name
-
型: 文字列
必須: はい
コンテナの名前。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。タスク定義で複数のコンテナをリンクしている場合、あるコンテナの
name
を別のコンテナのlinks
に入力できます。これにより、コンテナ同士を接続します。
イメージ
image
-
型: 文字列
必須: はい
コンテナの開始に使用するイメージ。この文字列は Docker デーモンに直接渡されます。デフォルトでは、Docker Hub レジストリのイメージを使用できます。
またはrepository-url
/image
:tag
で他のリポジトリを指定することもできます。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコア、コロン、ピリオド、スラッシュ、シャープ記号を使用できます。このパラメータは、docker create-container コマンドのrepository-url
/image
@digest
Image
と docker run コマンドのIMAGE
パラメータにマッピングされます。-
新しいタスクが開始されると、Amazon ECS コンテナエージェントは、指定されたイメージおよびタグの最新バージョンをプルしてコンテナで使用します。ただし、リポジトリイメージの後続の更新がすでに実行されているタスクに反映されることはありません。
-
プライベートレジストリのイメージがサポートされています。詳細については、「Amazon ECS での AWS 以外のコンテナイメージの使用」を参照してください。
-
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 Hub の公式リポジトリのイメージでは、1 つの名前 (例:
ubuntu
またはmongo
) を使用します。 -
Docker Hub の他のリポジトリのイメージは、組織名で修飾されます (例:
amazon/amazon-ecs-agent
)。 -
他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例:
quay.io/assemblyline/ubuntu
)。
-
「メモリ」
memory
-
型: 整数
必須:いいえ
コンテナに適用されるメモリの量 (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。タスク内のすべてのコンテナ用に予約されるメモリの合計量は、タスクの
memory
値より小さくする必要があります (指定されている場合)。このパラメータは docker create-container コマンドの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 未満のメモリを指定しないようにします。
注記
リソースの使用率を最大化することを目的に、特定のインスタンスタイプにおいて、タスクにできるだけ多くのメモリを提供する場合には、「Amazon ECS Linux コンテナインスタンスのメモリを予約する」を参照してください。
memoryReservation
-
型: 整数
必須:いいえ
コンテナ用に予約するメモリのソフト制限 (MiB 単位)。システムメモリに競合がある場合、Docker はコンテナのメモリ量をこのソフト制限値内に維持しようとします。ただし、コンテナは必要に応じてより多くのメモリを使用することができます。コンテナは、
memory
パラメーターで指定されたハード制限 (該当する場合) またはコンテナインスタンス上の利用可能なすべてのメモリのいずれか早く達する方まで使用できます。このパラメータは docker create-container コマンドのMemoryReservation
にマッピングされ、--memory-reservation
オプションは docker run にマッピングされます。タスクレベルでメモリ値を指定しない場合、コンテナ定義で
memory
またはmemoryReservation
の一方または両方に 0 以外の整数を指定する必要があります。両方を指定する場合、memory
はmemoryReservation
より大きいことが必要です。memoryReservation
を指定する場合、コンテナが配置されているコンテナインスタンスで使用可能なメモリリソース量から、上記の値が減算されます。それ以外の場合は、memory
の値が使用されます。例えば、コンテナが通常 128 MiB のメモリを使用しているが、短期間にメモリが 256 MiB にバーストする場合があるとします。128 MiB の
memoryReservation
と 300 MiB のmemory
ハード制限を設定できます。この設定では、コンテナが、コンテナインスタンスの残りのリソースから 128 MiB のメモリのみを予約できます。同時に、この構成により、コンテナは必要に応じてより多くのメモリ リソースを使用できるようになります。注記
このパラメータは Windows コンテナではサポートされません。
Docker デーモン 20.10.0 以降によって、コンテナ用として 6 MiB 以上のメモリが予約されます。従って、このコンテナに対しては 6 MiB 未満のメモリは指定しないようにします。
Docker デーモン 19.03.13-ce 以降では、コンテナ用として 4 MiB 以上のメモリが予約されます。このため、このコンテナ用には 4 MiB 未満のメモリを指定しないようにします。
注記
リソースの使用率を最大化することを目的に、特定のインスタンスタイプにおいて、タスクにできるだけ多くのメモリを提供する場合には、「Amazon ECS Linux コンテナインスタンスのメモリを予約する」を参照してください。
ポートマッピング
portMappings
-
タイプ: オブジェクト配列
必須:いいえ
ポートマッピングは、コンテナのネットワークポートを外部に公開します。これは、クライアントがアプリケーションにアクセスすることを可能にします。これは、同じタスク内にあるコンテナ間の通信にも使用されます。
awsvpc
ネットワークモードを使用するタスク定義 (Fargate と EC2 両方の起動タイプ) では、containerPort
のみを指定します。hostPort
は常に無視され、コンテナポートはホスト上の番号が大きいランダムなポートに自動的にマップされます。Windows のポートマッピングでは、
localhost
の代わりにNetNAT
ゲートウェイを使用します。Windows のポートマッピングにはループバックが存在しないため、ホスト自体からコンテナのマッピングされたポートにアクセスはできません。このパラメータのほとんどのフィールド (
containerPort
、hostPort
、protocol
を含む) は docker create-container コマンドのPortBindings
にマッピングされ、--publish
オプションは docker run にマッピングされます。タスク定義でネットワークモードをhost
に設定している場合、ホストポートは未定義とするか、ポートマッピングのコンテナポートと一致させる必要があります。注記
タスクが
RUNNING
ステータスに達すると、手動および自動で割り当てられたホストとコンテナポートが次の場所で表示されます:-
コンソール: 指定されたタスクのコンテナ詳細の [Network Bindings] セクション。
-
AWS CLI:
networkBindings
コマンド出力の describe-tasks セクション。 -
API:
DescribeTasks
レスポンス。 -
メタデータ: タスクメタデータのエンドポイント。
appProtocol
-
型: 文字列
必須: いいえ
ポートマッピングに使用されるアプリケーションプロトコル。このパラメータは Service Connect にのみ適用されます。アプリケーションが使用するプロトコルと一貫性を持つように、このパラメータを設定することをお勧めします。このパラメータを設定すると、Amazon ECS はサーバー コネクト プロキシにプロトコル固有の接続処理を追加します。このパラメータを設定すると、Amazon ECS は Amazon ECS コンソールと CloudWatch にプロトコル固有のテレメトリを追加します。
このパラメータ値を設定しないと、TCP が使用されます。ただし、Amazon ECS では、TCP 用のプロトコル固有のテレメトリーは追加されません。
詳細については、「Service Connect を使用して Amazon ECS サービスを短縮名で接続する」を参照してください。
有効なプロトコル値:
"HTTP" | "HTTP2" | "GRPC"
containerPort
-
型: 整数
必須: はい (
portMappings
を使用する場合)ユーザーが指定したホストポートまたは自動的に割り当てられたホストポートにバインドされるコンテナポートの番号。
Fargate 起動タイプを使用するタスク、または
awsvpc
ネットワークモードを使用する EC2 タスクには、containerPort
を使用して公開ポートを指定できます。Fargate 上の Windows コンテナの場合、
containerPort
にポート 3150 は使用できません。このポートは予約済みです。EC2 起動タイプのタスクでコンテナを使用しており、ホストポートではなくコンテナ ポートを指定するとします。その後、コンテナはエフェメラルポート範囲内のホストポートを自動で受け取ります。詳細については、「
hostPort
」を参照してください。この方法で自動的に割り当てられるれるポートマッピングは、コンテナインスタンスの予約済みポート数 100 個のクォータに対してはカウントされません。 containerPortRange
-
型: 文字列
必須: いいえ
動的にマッピングされたホストポート範囲にバインドされるコンテナのポート番号の範囲。
このパラメータは、
register-task-definition
API を使用してのみ設定できます。このオプションは、portMappings
パラメータで使用できます。詳細については、「AWS Command Line Interface リファレンス」の「register-task-definition」を参照してください。containerPortRange
を指定するときは、以下のルールが適用されます。-
bridge
ネットワークモードまたはawsvpc
ネットワークモードのいずれかを使用する必要があります。 -
このパラメータは EC2 と AWS Fargate 起動タイプの両方で使用できます。
-
このパラメータは、Linux と Windows の両オペレーティングシステムで使用できます。
-
コンテナインスタンスには、少なくともコンテナエージェントのバージョン 1.67.0 と
ecs-init
パッケージのバージョン 1.67.0-1 が必要です。 -
各コンテナにつき、最大 100 のポートレンジを指定できます。
-
hostPortRange
は指定しません。hostPortRange
の値は次のように設定されます。-
awsvpc
ネットワークモードのタスク内のコンテナでは、hostPort
はcontainerPort
と同じ値に設定されます。これは静的マッピング戦略です。 -
bridge
ネットワークモードのタスク内のコンテナの場合、Amazon ECS エージェントはデフォルトの一時範囲から開いているホストポートを見つけ、それを docker に渡してコンテナポートにバインドします。
-
-
containerPortRange
の有効な値は 1~65535 です。 -
1 つのポートは、コンテナごとに 1 つのポートマッピングにのみ含められます。
-
重複するポート範囲は指定できません。
-
範囲内の最初のポートは、最後のポートよりも小さくなければなりません。
-
Docker では、ポートの数が多い場合は、Docker デーモン設定ファイルの docker-proxy をオフにすることをお勧めします。
詳細については、GitHub の Issue #11185
を参照してください。 Docker デーモン設定ファイルの docker-proxy をオフにする方法については、Amazon ECS 開発者ガイドの「Docker デーモン」を参照してください。
DescribeTasks
を呼び出し、コンテナポートにバインドされているホストポートであるhostPortRange
を表示できます。ポート範囲は、EventBridge に送信される Amazon ECS タスクイベントに含まれません。詳細については、「EventBridge を使用して Amazon ECS エラーへの対応を自動化する」を参照してください。
-
hostPortRange
-
型: 文字列
必須: いいえ
ネットワークバインディングで使用されるホストのポート番号範囲。これは Docker によって割り当てられ、Amazon ECS エージェントによって配信されます。
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 個の予約済みポートクォータにはカウントされません。 name
-
型: 文字列
必須: いいえ。サービスに Service Connect を設定する場合は必要です。
ポートマッピングに使用される名前。このパラメータは Service Connect にのみ適用されます。このパラメータは、サービスの Service Connect 設定で使用する名前です。
詳細については、「Service Connect を使用して Amazon ECS サービスを短縮名で接続する」を参照してください。
次の例では、Service Connect の 2 つの必須フィールドが使用されています。
"portMappings": [ { "name":
string
, "containerPort":integer
} ] protocol
-
型: 文字列
必須: いいえ
ポートマッピングに使用されるプロトコル。有効な値は、
tcp
およびudp
です。デフォルト:tcp
。重要
tcp
は Service Connect でのみサポートされます。このフィールドが設定されていない場合は、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 } ... ]
-
プライベートリポジトリの認証情報
repositoryCredentials
-
タイプ: RepositoryCredentials オブジェクト
必須:いいえ
プライベートレジストリ認証用のリポジトリ認証情報。
詳細については、「Amazon ECS での AWS 以外のコンテナイメージの使用」を参照してください。
-
credentialsParameter
-
型: 文字列
必須: はい (
repositoryCredentials
を使用する場合)プライベートリポジトリの認証情報が含まれているシークレットの Amazon リソースネーム (ARN)。
詳細については、「Amazon ECS での AWS 以外のコンテナイメージの使用」を参照してください。
注記
Amazon ECS API、AWS CLI、または AWS SDK を使用する場合、起動するタスクと同じリージョンにシークレットが存在する場合は、シークレットの完全な ARN または名前のどちらも使用できます。AWS Management Console を使用する場合は、シークレットの完全な ARN を指定する必要があります。
必要なパラメータが含まれるタスク定義のスニペットを、以下に示します。
"containerDefinitions": [ { "image": "
private-repo/private-image
", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name
" } } ]
-
詳細コンテナ定義パラメータ
以下のコンテナ定義用の詳細パラメータは、Amazon ECS コンテナインスタンスでのコンテナの起動に使用する docker run コマンドの拡張機能を追加します。
再起動ポリシー
restartPolicy
-
コンテナ再起動ポリシーと関連する設定パラメータ。コンテナの再起動ポリシーを設定すると、Amazon ECS はタスクを置き換えることなくコンテナを再起動できます。詳細については、「コンテナ再起動ポリシーを使用して Amazon ECS タスク内の個々のコンテナを再起動する」を参照してください。
enabled
-
型: ブール値
必須: はい
コンテナに対して再起動ポリシーを有効にするかどうかを指定します。
ignoredExitCodes
-
タイプ: 整数配列
必須:いいえ
Amazon ECS が無視し、再起動を試みない終了コードのリスト。最大 50 個のコンテナ終了コードを指定できます。デフォルトでは、Amazon ECS はいずれの終了コードも無視しません。
restartAttemptPeriod
-
型: 整数
必須:いいえ
再起動を試みる前にコンテナが実行する必要がある時間 (秒単位)。コンテナを再起動できるのは、
restartAttemptPeriod
秒に 1 回のみです。コンテナがこの期間実行できずに早く終了した場合、コンテナは再起動されません。最小のrestartAttemptPeriod
は 60 秒、最大のrestartAttemptPeriod
は 604,800 秒 (7 日間) を指定できます。デフォルトでは、コンテナは再起動の前に 300 秒間実行する必要があります。
ヘルスチェック
healthCheck
-
コンテナに対するヘルスチェックのコマンドと、コンテナのための関連する設定パラメータです。詳細については、「コンテナのヘルスチェックを使用して Amazon ECS タスク状態を判定する」を参照してください。
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 以外の終了コードは失敗を示します。 interval
-
各ヘルスチェック間の時間間隔 (秒単位)。5 〜 300 秒を指定できます。デフォルトの値は 30 秒です。
timeout
-
成功まで待機しているヘルスチェックが、失敗したと見なされるまでの期間 (秒単位) です。2 〜 60 秒を指定できます。デフォルト値は 5 秒です。
retries
-
コンテナが異常と見なされるまでに、失敗したヘルスチェックを再試行する回数です。1〜10 回を指定できます。デフォルト値は 3 回の再試行です。
startPeriod
-
失敗したヘルスチェックの再試行が最大回数に達する前に、コンテナにブートストラップための時間を提供するオプションの猶予期間です。0 〜 300 秒を指定できます。デフォルトでは、
startPeriod
は無効となっています。
環境
cpu
-
型: 整数
必須:いいえ
Amazon ECS コンテナエージェントがコンテナ用に予約した
cpu
ユニットの数。Linux では、このパラメータは「Create a container」セクションの CpuShares
にマッピングされます。Fargate 起動タイプを使用するタスクでは、このフィールドは省略可能です。タスク内のすべてのコンテナのために予約されている CPU の合計量は、タスクレベルの
cpu
値以上にはできません。注記
Amazon EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を決定できます。これを行うには、Amazon EC2 インスタンス
の詳細ページでそのインスタンスタイプにリストされている vCPU の数を 1,024 倍します。 Linux コンテナは、割り当てられた CPU ユニットと同じ比率を使用して、割り当てられていない CPU ユニットをコンテナインスタンス上の他コンテナと共有します。例えば、そのコンテナ用に 512 個の CPU ユニットが指定された単一コアインスタンスタイプで、唯一のコンテナタスクを実行するとします。さらに、そのタスクはコンテナインスタンスで実行される唯一のタスクです。この場合のコンテナは、1,024 個の CPU ユニット配分を任意のタイミングで使用できます。一方、そのコンテナインスタンスで同じタスクのコピーを別途起動したと仮定します。各タスクには、必要に応じて少なくとも 512 個の CPU ユニットが保証されます。同様に、その他のコンテナが残りの CPU を使用していない場合、各コンテナは CPU 使用率を高められます。ただし、両方のタスクが常に 100% アクティブである場合、使用できるのは 512 CPU ユニットに制限されます。
Linux コンテナインスタンスでは、コンテナインスタンス上の Docker デーモンは、CPU 値を使用して、実行中のコンテナに対する相対 CPU 配分比率を計算します。Linux カーネルが許可する最小の有効な CPU 共有値は 2 で、Linux カーネルが許可する最大の有効な CPU 共有値は 262,144 です。ただし、CPU のパラメータは必須ではなく、コンテナ定義では 2 未満の CPU 値および 262144 より大きな CPU 値を使用できます。CPU 値が 2 未満 (null を含む) および 262144 より大きな値である場合、動作は Amazon ECS コンテナエージェントのバージョンによって異なります。
-
Agent versions <= 1.1.0: Null およびゼロの CPU 値は Docker に 0 として渡され、Docker は 1,024 個の CPU 配分に変換します。1 の CPU 値は、Docker に対しては 1 として渡され、Linux カーネルではそれが 2 個の CPU 配分に変換されます。
-
エージェントバージョン >= 1.2.0: Null、0、および 1 の CPU 値は、Docker に 2 個の CPU 配分として渡されます。
-
エージェントバージョン >= 1.84.0: 256 vCPU を超える CPU 値は Docker に 256 として渡されます。これは 262144 CPU 共有に相当します。
Windows コンテナインスタンスでは、CPU クォータは絶対クォータとして適用されます。Windows コンテナは、タスク定義で定義されている指定された量の CPU にのみアクセスできます。null またはゼロの CPU 値が
0
として Docker に渡されます。次に Windows はこの値を 1 つの CPU の 1% として解釈します。その他の例については、「Amazon ECS で CPU およびメモリリソースの管理方法
」を参照してください。 -
gpu
-
タイプ: ResourceRequirement オブジェクト
必須:いいえ
Amazon ECS コンテナエージェントがコンテナ用に予約した物理
GPUs
の数。タスク内でコンテナ用に予約されているすべての GPU の数は、タスクが起動されたコンテナインスタンスで使用できる GPU の数を超えることはできません。詳細については、「GPU ワークロード向けの Amazon ECS タスク定義」を参照してください。注記
このパラメータは、Windows コンテナ、または Fargate でホストされたコンテナではサポートされません。
Elastic Inference accelerator
-
タイプ: ResourceRequirement オブジェクト
必須:いいえ
InferenceAccelerator
タイプでは、value
はタスク定義で指定されるInferenceAccelerator
のdeviceName
と一致します。詳細については、「Elastic Inference アクセラレーター名」を参照してください。注記
このパラメータは、Windows コンテナ、または Fargate でホストされたコンテナではサポートされません。
essential
-
型: ブール値
必須:いいえ
コンテナの
essential
パラメーターがtrue
としてマークされており、そのコンテナが何らかの理由で失敗するか停止するとします。その後、タスクの一部である他のすべてのコンテナが停止されます。コンテナのessential
パラメータをfalse
にマークしておくと、そのコンテナ失敗はタスク内にある残りのコンテナに影響を与えません。このパラメータを省略した場合、コンテナは必須と見なされます。すべてのタスクには少なくとも 1 つの必須コンテナが必要です。複数のコンテナで構成されるアプリケーションがあるとします。次に、共通の目的で使用されるコンテナをコンポーネントにグループ化し、さまざまなコンポーネントを複数のタスク定義に分離します。詳細については、「Amazon ECS 用のアプリケーションの構築」を参照してください。
"essential": true|false
entryPoint
-
重要
初期のバージョンの Amazon ECS コンテナエージェントは、
entryPoint
パラメータを正しく処理しません。entryPoint
の使用時に問題が発生する場合は、コンテナエージェントを更新するか、代わりにcommand
配列項目としてコマンドと引数を入力します。タイプ: 文字列配列
必須:いいえ
コンテナに渡されるエントリポイント。
"entryPoint": ["string", ...]
command
-
タイプ: 文字列配列
必須:いいえ
コンテナに渡されるコマンド。このパラメータは create-container コマンドの
Cmd
にマッピングされ、COMMAND
パラメータは docker run にマッピングされます。複数の引数がある場合、各引数は配列内で、区切られた文字列により指定する必要があります。"command": ["string", ...]
workingDirectory
-
型: 文字列
必須: いいえ
コマンドを実行するコンテナ内の作業ディレクトリ。このパラメータは、Docker Remote API
の Create a container (コンテナを作成する) セクションの WorkingDir
にマップされ、--workdir
オプションは docker container runにマップされます。 "workingDirectory": "string"
environmentFiles
-
タイプ: オブジェクト配列
必須:いいえ
コンテナに渡す環境変数が含まれるファイルのリスト。このパラメータは docker run コマンドの
--env-file
オプションにマッピングされます。EC2 起動タイプを使用するホストで FIPS が有効化されている場合、ピリオド (.) が使用されているバケット名 (amzn-s3-demo-bucket1.name.example など) はサポートされません。バケット名にピリオド (.) を使用すると、エージェントが Amazon S3 から環境変数ファイルを取得できなくなるため、タスクが開始されません。
これは Fargate の Windows コンテナと Windows コンテナでは使用できません
最大 10 個の環境ファイルを指定できます。ファイルには、ファイル拡張子
.env
が必要です。環境ファイルの各行には、VARIABLE=VALUE
形式で環境変数が含まれています。#
で始まる行はコメントとして扱われ、無視されます。コンテナ定義に個別の環境変数が指定されている場合は、環境ファイルに含まれる変数よりも優先されます。同じ変数を含む複数の環境ファイルが指定されている場合、それらのファイルは上から下に処理されます。一意の変数名を使用することをお勧めします。詳細については、「個々の環境変数を Amazon ECS コンテナに渡す」を参照してください。
value
-
型: 文字列
必須: はい
環境変数ファイルを含む Amazon S3 オブジェクトの Amazon リソースネーム (ARN)。
type
-
型: 文字列
必須: はい
使用するファイルのタイプ。
s3
はサポートされる唯一の値です。
environment
-
タイプ: オブジェクト配列
必須:いいえ
コンテナに渡す環境変数。このパラメータは docker create-container コマンドの
Env
にマッピングされ、--env
オプションは docker run コマンドにマッピングされます。重要
認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。
name
-
型: 文字列
必須: はい (
environment
を使用する場合)環境変数の名前。
value
-
型: 文字列
必須: はい (
environment
を使用する場合)環境変数の値。
"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets
-
タイプ: オブジェクト配列
必須:いいえ
コンテナに公開するシークレットを表すオブジェクトです。詳細については、「Amazon ECS コンテナに機密データを渡す」を参照してください。
name
-
型: 文字列
必須: はい
コンテナの環境変数として設定する値。
valueFrom
-
型: 文字列
必須: はい
コンテナに公開するシークレット。サポートされている値は、AWS Secrets Manager シークレットの完全な Amazon リソースネーム (ARN)、または AWS Systems Manager Parameter Store 内のパラメータの完全な ARN のいずれかです。
注記
起動するタスクと同じ AWS リージョン に Systems Manager パラメータストアのパラメータまたは Secrets Manager のパラメータが存在する場合は、シークレットの完全な ARN または名前のいずれかを使用できます。パラメータが別のリージョンに存在する場合は、完全な ARN を指定する必要があります。
"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
" } ]
ネットワーク設定
disableNetworking
-
タイプ: ブール値
必須:いいえ
このパラメータが true のとき、ネットワークはコンテナ内でオフになります。
注記
awsvpc
ネットワークモードを使用するタスクもしくは Windows コンテナでは、このパラメータはサポートされません。デフォルト:
false
。"disableNetworking": true|false
links
-
タイプ: 文字列配列
必須:いいえ
link
パラメータでは、コンテナがポートマッピングを必要とせずに互いに通信することを許可します。このパラメータは、タスク定義のネットワークモードがbridge
に設定されている場合にのみサポートされます。name:internalName
コンストラクトは Docker リンクのname:alias
に似ています。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。注記
awsvpc
ネットワークモードを使用するタスクもしくは Windows コンテナでは、このパラメータはサポートされません。重要
同じコンテナインスタンスに配置されたコンテナ同士は、リンクやホストポートマッピングを必要とせずに、互いに通信する場合があります。コンテナインスタンスでのネットワークの分離は、セキュリティグループと VPC 設定によって制御されます。
"links": ["name:internalName", ...]
hostname
-
型: 文字列
必須: いいえ
コンテナに使用するホスト名。このパラメータは docker create-container の
Hostname
にマッピングされ、--hostname
オプションは docker run にマッピングされます。注記
awsvpc
ネットワークモードを使用している場合、hostname
パラメータはサポートされません。"hostname": "string"
dnsServers
-
タイプ: 文字列配列
必須:いいえ
コンテナに提示する DNS サーバーのリスト。
注記
awsvpc
ネットワークモードを使用するタスクもしくは Windows コンテナでは、このパラメータはサポートされません。"dnsServers": ["string", ...]
dnsSearchDomains
-
タイプ: 文字列配列
必須:いいえ
パターン: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$
コンテナに提示する DNS 検索ドメインのリスト。このパラメータは docker create-container コマンドの
DnsSearch
にマッピングされ、--dns-search
オプションは docker run にマッピングされます。注記
このパラメータは Windows コンテナまたは、
awsvpc
ネットワークモードを使用するタスクではサポートされていません。"dnsSearchDomains": ["string", ...]
extraHosts
-
タイプ: オブジェクト配列
必須:いいえ
コンテナ上の
/etc/hosts
ファイルに追加する、ホスト名と IP アドレスのマッピングリスト。このパラメータは docker create-container コマンドの
ExtraHosts
にマッピングされ、--add-host
オプションは docker run にマッピングされます。注記
このパラメータは Windows コンテナまたは、
awsvpc
ネットワークモードを使用するタスクではサポートされていません。"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname
-
型: 文字列
必須: はい (
extraHosts
を使用する場合)/etc/hosts
エントリで使用するホスト名。 ipAddress
-
型: 文字列
必須: はい (
extraHosts
を使用する場合)/etc/hosts
エントリで使用する IP アドレス。
ストレージとログ記録
readonlyRootFilesystem
-
タイプ: ブール値
必須:いいえ
このパラメータが true のとき、コンテナはそのルートファイルシステムへの読み取り専用アクセスを許可されます。このパラメータは docker create-container コマンドの
ReadonlyRootfs
にマッピングされ、--read-only
オプションは docker run にマッピングされます。注記
このパラメータは Windows コンテナではサポートされません。
デフォルト:
false
。"readonlyRootFilesystem": true|false
mountPoints
-
タイプ: オブジェクト配列
必須:いいえ
コンテナでのデータボリュームのマウントポイント。このパラメータは creat-container Docker API の
Volumes
にマッピングされ、docker run の--volume
オプションにマッピングされます。Windows コンテナは
$env:ProgramData
と同じドライブに全部のディレクトリをマウントできます。Windows コンテナは、別のドライブにディレクトリをマウントすることはできません。また、マウントポイントは複数のドライブにまたがることはできません。Amazon EBS ボリュームを Amazon ECS タスクに直接アタッチするには、マウントポイントを指定する必要があります。sourceVolume
-
型: 文字列
必須: はい (
mountPoints
を使用する場合)マウントするボリュームの名前。
containerPath
-
型: 文字列
必須: はい (
mountPoints
を使用する場合)ボリュームをマウントするコンテナ内のパス。
readOnly
-
型: ブール値
必須: いいえ
この値が
true
の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値がfalse
の場合、コンテナはボリュームに書き込むことができます。デフォルト値はfalse
です。Windows オペレーティングシステムを実行している EC2 インスタンスで実行されるタスクの場合、 値をデフォルト の
false
のままにします。
volumesFrom
-
タイプ: オブジェクト配列
必須: いいえ
別コンテナからマウントするデータボリューム。このパラメータは docker create-container コマンドの
VolumesFrom
にマッピングされ、--volumes-from
オプションは docker run にマッピングされます。sourceContainer
-
型: 文字列
必須: はい (
volumesFrom
を使用する場合)ボリュームのマウント元のコンテナの名前。
readOnly
-
タイプ: ブール値
必須: いいえ
この値が
true
の場合、コンテナはボリュームへの読み取り専用アクセスを許可されます。この値がfalse
の場合、コンテナはボリュームに書き込むことができます。デフォルト値はfalse
です。
"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration
-
タイプ: LogConfiguration オブジェクト
必須:いいえ
コンテナに対するログ構成の仕様です。
ログ設定を使用したタスク定義の例については、「Amazon ECS のタスク定義の例」を参照してください。
このパラメータは docker create-container コマンドの
LogConfig
にマッピングされ、--log-driver
オプションは docker run にマッピングされます。デフォルトでは、コンテナは 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 に送信する方法については、「Amazon ECS ログを CloudWatch に送信する 」を参照してください。awsfirelens
ログドライバーの使用の詳細については、「カスタムログのルーティング」を参照してください。注記
上記に示されていないカスタムドライバーがある場合、GitHub で入手できる
Amazon ECS コンテナエージェントプロジェクトを fork し、そのドライバーを使用するようにカスタマイズできます。含めたい変更については、プルリクエストを送信することをお勧めします。ただし、現時点では、このソフトウェアの変更されたコピーの実行はサポートされていません。 このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
options
-
型: 文字列間のマッピング
必須:いいえ
ログドライバーに送信する設定オプションの Key-Value マップ。
指定できるオプションは、ログドライバーに応じて異なります。
awslogs
ルーターを使用して Amazon CloudWatch にログをルーティングするときに指定できるオプションには、以下が含まれます。awslogs-create-group
-
必須:いいえ
ロググループを自動的に作成させるかどうかを指定します。このオプションを指定しない場合、デフォルトは
false
です。注記
awslogs-create-group
を使用する前に、IAM ポリシーにはアクセス許可logs:CreateLogGroup
が含まれている必要があります。 awslogs-region
-
必須: はい
awslogs
ログドライバが Docker ログを送信する先の、AWS リージョン を指定します。CloudWatch Logs では、異なるリージョンのクラスターからすべてのログを 1 つのリージョンに送信するように選択できます。これにより、すべてのログを一元的な場所で確認できるようになります。他にも、リージョンごとにそれらを分離して、より細分化することが可能です。このオプションで指定するリージョンに、対象のロググループが存在することを確認してください。 awslogs-group
-
必須: はい
awslogs
ログドライバーがログストリームを送信する先の、ロググループを指定する必要があります。 awslogs-stream-prefix
-
必須:EC2 launch タイプの場合はオプション。Fargate 起動タイプの場合は必須。
指定したプレフィックス、コンテナ名、コンテナが属する Amazon ECS タスクの ID にログストリームを関連付けるには、
awslogs-stream-prefix
オプションを使用します。このオプションでプレフィックスを指定した場合、ログストリームの形式は以下のようになります。prefix-name
/container-name
/ecs-task-id
このオプションでプレフィックスを指定しない場合、ログストリームには、コンテナインスタンスの Docker デーモンによって割り当てられたコンテナ ID に基づいた名前が付けられます。Docker コンテナ ID (コンテナインスタンスでのみ使用可能) だけでそのログを送信したコンテナを追跡するのは難しいため、このオプションでプレフィックスを指定することをお勧めします。
Amazon ECS サービスでは、サービス名をプレフィックスとして使用できます。これにより、コンテナが属するサービスへのログストリームと、それを送信したコンテナの名前、そのコンテナが所属するタスクの ID を追跡できます。
Amazon ECS コンソールを使用する際に [Log] ペインにログを表示するためには、ログのストリームプレフィックスを指定する必要があります。
awslogs-datetime-format
-
必須:いいえ
このオプションは、Python
strftime
形式で複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。一致する 1 行とは、ログメッセージ間の区切りです。この形式を使用する場合のユースケースの例としては、スタックダンプなどの解析された出力があり、これを使用しなければ、複数のエントリに記録されることになります。適切なパターンにより、単一のエントリにキャプチャさせます。
詳細については、awslogs-datetime-format
を参照してください。 awslogs-datetime-format
とawslogs-multiline-pattern
オプションの両方を設定することはできません。注記
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。
awslogs-multiline-pattern
-
必須:いいえ
このオプションでは、正規表現を使用する複数行起動パターンを定義します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。一致する 1 行とは、ログメッセージ間の区切りです。
詳細については、「awslogs-multiline-pattern
」を参照してください。 awslogs-datetime-format
も設定されている場合は、このオプションは無視されます。awslogs-datetime-format
とawslogs-multiline-pattern
オプションの両方を設定することはできません。注記
複数行のログ記録は、すべてのログメッセージの正規表現の解析とマッチングを実行します。これによりログ記録のパフォーマンスに悪影響が及ぶ可能性があります。
mode
-
必須:いいえ
有効な値:
non-blocking
|blocking
このオプションは、コンテナから CloudWatch Logs へのログメッセージの配信モードを定義します。選択した配信モードは、コンテナから CloudWatch へのログの流れが中断されたときのアプリケーションの可用性に影響します。
blocking
モードを使用しており、CloudWatch へのログのフローが中断されると、stdout
ストリームとstderr
ストリームに書き込むためのコンテナコードからの呼び出しがブロックされます。その結果、アプリケーションのロギングスレッドがブロックされます。これにより、アプリケーションが応答しなくなり、コンテナのヘルスチェックが失敗する可能性があります。non-blocking
モードを使用する場合、コンテナのログは代わりにmax-buffer-size
オプションで設定されたメモリ内の中間バッファに保存されます。これにより、ログを CloudWatch に送信できない場合にアプリケーションが応答しなくなるのを防ぎます。サービスの可用性を確保したいが、多少のログ損失があっても問題ない場合は、このモードを使用することをおすすめします。詳細については、「Preventing log loss with non-blocking mode in theawslogs
container log driver」を参照してください。 max-buffer-size
-
必須:いいえ
デフォルト値:
1m
non-blocking
モードが使用されている場合、max-buffer-size
ログオプションは、中間メッセージ用のストレージに使用されるバッファのサイズを制御します。アプリケーションに基づいて、必ず適切なバッファサイズを指定してください。バッファがいっぱいになると、それ以上ログを保存できなくなります。保存できないログは失われます。
splunk
ログルーターを使用してログをルーティングするには、splunk-token
とsplunk-url
を指定する必要があります。ログの保存と分析のための AWS のサービス または AWS Partner Network を送信先としたログのルーティングに
awsfirelens
ログルーターを使用するときは、log-driver-buffer-limit
オプションを設定して、イベントがログルーターコンテナに送信される前に、メモリでバッファリングされるイベントの数を制限できます。この制限は、スループットが高い場合に発生する可能性がある、Docker 内のバッファのメモリ不足による、潜在的なログ損失の問題を解決するのに役立ちます。詳細については、「高スループットの Amazon ECS ログの設定」を参照してください。awsfirelens
を使用してログをルーティングするときに指定できるその他のオプションは、送信先に応じて異なります。Amazon Data Firehose にログをエクスポートするときは、region
を使用して AWS リージョンを指定し、delivery_stream
を使用してログストリームの名前を指定することができます。Amazon Kinesis Data Streams にログをエクスポートするときは、
region
を使用して AWS リージョンを指定し、stream
を使用してデータストリーム名を指定することができます。Amazon OpenSearch Service にログをエクスポートするときは、
Name
、Host
(プロトコルを使用しない OpenSearch Service エンドポイント)、Port
、Index
、Type
、Aws_auth
、Aws_region
、Suppress_Type_Name
、およびtls
といったオプションを指定できます。Amazon S3 にログをエクスポートするときは、
bucket
オプションを使用してバケットを指定できます。また、region
、total_file_size
、upload_timeout
、およびuse_put_object
をオプションとして指定することもできます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.19 以上を使用する必要があります。
secretOptions
-
タイプ: オブジェクト配列
必須:いいえ
ログ設定に渡すシークレットを示すオブジェクト。ログ構成で使用されるシークレットには、認証トークン、証明書、または暗号化キーを含められます。詳細については、「Amazon ECS コンテナに機密データを渡す」を参照してください。
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 構成。これは、コンテナログのログルーターの指定と設定に使用されます。詳細については、「Amazon ECS ログを AWS サービスまたは AWS Partner に送信する」を参照してください。
{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options
-
型: 文字列間のマッピング
必須:いいえ
ログルーターの設定時に使用するオプションの Key-Value マップ。このフィールドはオプションで、カスタム設定ファイルを指定するか、タスク、タスク定義、クラスター、コンテナインスタンスの詳細などのメタデータをログイベントに追加するために使用できます。指定した場合、使用する構文は
"options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::
です。詳細については、「Amazon ECS タスク定義の例: FireLens にログをルーティングする」を参照してください。amzn-s3-demo-bucket
/fluent.conf|filepath"} type
-
型: 文字列
必須: はい
使用するログルーター。有効な値は
fluentd
またはfluentbit
です。
セキュリティ
コンテナセキュリティの詳細については、「Amazon ECS ベストプラクティスガイド」の「Task and container security」(タスクとコンテナのセキュリティ) を参照してください。
credentialSpecs
-
タイプ: 文字列配列
必須:いいえ
Active Directory 認証用のコンテナを設定する認証情報仕様 (
CredSpec
) ファイルへの SSM または Amazon S3 の ARN のリスト。dockerSecurityOptions
の代わりに、このパラメータを使用することをお勧めします。ARN の最大数は 1 です。各 ARN には 2 つの形式があります。
- credentialspecdomainless:MyARN
-
Secrets Manager にシークレットの追加セクションを持つ
CredSpec
を提供するためにcredentialspecdomainless:MyARN
を使用します。シークレットでドメインへのログイン認証情報を指定します。任意のコンテナインスタンスで実行される各タスクは、異なるドメインに参加できます。
この形式は、コンテナインスタンスをドメインに結合しなくても使用できます。
- credentialspec:MyARN
-
単一ドメインに対して
CredSpec
を提供するためにcredentialspec:MyARN
を使用します。このタスク定義を使用するタスクを開始する前に、コンテナインスタンスをドメインに参加させる必要があります。
どちらの形式でも、SSM または Amazon S3 で
MyARN
を ARN に置き換えます。credspec
は、ユーザー名、パスワード、接続先のドメインを含むシークレットの ARN を Secrets Manager に提供する必要があります。セキュリティ向上のため、インスタンスはドメインレス認証のドメインに参加しません。インスタンス上の他のアプリケーションは、ドメインレス認証情報を使用できません。このパラメータを使用すると、タスクが別のドメインに参加する必要がある場合でも、同じインスタンスでタスクを実行できます。詳細については、「Windows コンテナでの gMSAs の使用」および「Linux コンテナ向け gMSAs を使用する」を参照してください。 privileged
-
型: ブール値
必須:いいえ
このパラメータが true のとき、コンテナには、ホストコンテナインスタンスに対する昇格されたアクセス権限 (
root
ユーザーと同様) が付与されます。privileged
でコンテナを実行することはお勧めしません。ほとんどの場合、privileged
を使用する代わりに特定のパラメータを使用することで、必要な権限を正確に指定できます。このパラメータは docker create-container コマンドの
Privileged
にマッピングされ、--privileged
オプションは docker run にマッピングされます。注記
このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。
デフォルト:
false
。"privileged": true|false
user
-
型: 文字列
必須: いいえ
コンテナ内で使用するユーザー。このパラメータは docker create-container コマンドの
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
"必須:いいえ
複数のセキュリティシステムのカスタム設定を指定する文字列のリスト。このフィールドは、Fargate 起動タイプを使用するタスク内のコンテナには無効です。
EC2 での Linux タスクの場合、このパラメータを使用して、SELinux および AppArmor マルチレベルセキュリティシステムのカスタムラベルを参照できます。
EC2 上の任意のタスクでは、このパラメータを使用して、Active Directory 認証用のコンテナを設定する認証情報仕様ファイルを参照できます。詳細については、Amazon ECS の EC2 Windows コンテナで gMSA を使用する方法について説明します。およびAmazon EC2 の Linux コンテナで gMSA を使用するを参照してください。
このパラメータは docker create-container コマンドの
SecurityOpt
にマッピングされ、--security-opt
オプションは docker run にマッピングされます。"dockerSecurityOptions": ["string", ...]
注記
コンテナインスタンスで実行される Amazon ECS コンテナエージェントは、
ECS_SELINUX_CAPABLE=true
またはECS_APPARMOR_CAPABLE=true
環境変数を登録する必要があります。これにより、そのインスタンスに配置されたコンテナが、これらのセキュリティオプションを使用できるようになります。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。
リソースの制限
ulimits
-
タイプ: オブジェクト配列
必須:いいえ
コンテナに定義する
ulimit
値の一覧。この値は、オペレーティングシステムのデフォルトのリソースクォータ設定を上書きします。このパラメータは docker create-container コマンドのUlimits
にマッピングされ、--ulimit
オプションは docker run にマッピングされます。Fargate でホストされる Amazon ECS タスクは、オペレーションシステムで設定されたデフォルトのリソース制限値を使用します。ただし、
nofile
リソース制限パラメータを除きます。nofile
リソース制限は、コンテナが使用できるオープンファイルの数の制限を設定します。Fargate では、デフォルトのnofile
ソフト制限は65535
で、ハード制限は65535
です。両方の制限の値を設定できます (最大1048576
)。詳細については、「タスクリソースの制限」を参照してください。このパラメータは、コンテナインスタンスで 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
タイプのハード制限。値は、ulimit
のtype
に応じて、バイト、秒、またはカウントとして指定できます。 softLimit
-
型: 整数
必須: はい (
ulimits
を使用する場合)ulimit
タイプのソフト制限。値は、ulimit
のtype
に応じて、バイト、秒、またはカウントとして指定できます。
Docker のラベル
dockerLabels
-
型: 文字列間のマッピング
必須:いいえ
コンテナに追加するラベルのキー/値マップ。このパラメータは docker create-container コマンドの
Labels
にマッピングされ、--label
オプションは docker run にマッピングされます。このパラメータは、コンテナインスタンスで Docker Remote API バージョン 1.18 以上を使用する必要があります。
"dockerLabels": {"string": "string" ...}
その他のコンテナ定義のパラメータ
以下のコンテナ定義パラメータは、[Configure via JSON] (JSON による設定) オプションを使用して、Amazon ECS コンソールでタスク定義を登録する際に使用できます。詳細については、「コンソールを使用した Amazon ECS タスク定義の作成」を参照してください。
Linux パラメータ
linuxParameters
-
型: LinuxParameters オブジェクト
必須:いいえ
KernelCapabilities など、コンテナに適用される Linux 固有のオプション。
注記
このパラメータは Windows コンテナではサポートされません。
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities
-
型: KernelCapabilities オブジェクト
必須:いいえ
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 create-container コマンドの
CapAdd
にマッピングされ、--cap-add
オプションは docker run にマッピングされます。注記
Fargate で起動したタスクでは、
SYS_PTRACE
カーネル機能の追加のみがサポートされます。 add
-
タイプ: 文字列配列
有効な値:
"SYS_PTRACE"
必須:いいえ
Docker によって提供されているデフォルト設定のコンテナに追加する Linux 機能。このパラメータは docker create-container コマンドの
CapAdd
にマッピングされ、--cap-add
オプションは docker run にマッピングされます。 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 create-container コマンドの
CapDrop
にマッピングされ、--cap-drop
オプションは docker run にマッピングされます。
devices
-
コンテナに公開するすべてのホストデバイス。このパラメータは docker create-container コマンドの
Devices
にマッピングされ、--device
オプションは docker run にマッピングされます。注記
Fargate 起動タイプまたは Windows コンテナを使用する場合、
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
の間の整数です。値を指定しない場合、デフォルト値の60
が適用されます。また、maxSwap
の値が指定されていない場合、このパラメータは無視されます。このパラメータは docker run の--memory-swappiness
オプションにマッピングされます。注記
Fargate 起動タイプを使用するタスクを使用している場合、
swappiness
パラメータはサポートされません。Amazon Linux 2023 でタスクを使用している場合、
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 に最適化された Linux 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
— この条件は、他のコンテナの開始を許可する前に、依存コンテナがそのコンテナのヘルスチェックに合格したことを検証します。これには、タスク定義に設定されているヘルスチェックが依存コンテナにある必要があります。タスクの起動時にのみ、この条件が確認されます。
-
[コンテナのタイムアウト]
startTimeout
-
タイプ: 整数
必須:いいえ
値の例:
120
コンテナの依存関係解決の再試行を止めるまでの待機時間 (秒)。
例えば、タスク定義内に 2 つのコンテナを指定するとします。
containerA
は、COMPLETE
、SUCCESS
、またはHEALTHY
のいずれかのステータスに到達するcontainerB
に依存関係を持ちます。startTimeout
の値にcontainerB
が指定されていて、コンテナが時間内に目標のステータスまで到達しない場合、containerA
は開始しません。注記
あるコンテナが依存関係における制限事項を満たさない場合、または制限を満たす前にタイムアウトした場合、Amazon ECS は、依存関係にある他のコンテナの状態も次に遷移させることはしません。
Fargate でホストされている Amazon ECS タスクの場合、このパラメータのために、タスクまたはサービスがプラットフォームバージョン
1.3.0
以降 (Linux) を使用している必要があります。最大値は 120 秒です。 stopTimeout
-
型: 整数
必須:いいえ
値の例:
120
コンテナが正常に終了しなかった場合にコンテナが強制終了されるまでの待機時間 (秒)。
Fargate でホストされている Amazon ECS タスクの場合、このパラメータのために、タスクまたはサービスがプラットフォームバージョン
1.3.0
以降 (Linux) を使用している必要があります。このパラメータを指定しない場合には、デフォルト値の 30 秒が適用されます。Fargate の最大値は 120 秒です。EC2 起動タイプを使用するタスクでは、
stopTimeout
パラメータが指定されていない場合、Amazon ECS コンテナエージェント構成変数ECS_CONTAINER_STOP_TIMEOUT
に設定された値がデフォルトで使用されます。stopTimeout
パラメータまたはECS_CONTAINER_STOP_TIMEOUT
エージェント設定変数のいずれも設定されていない場合、Linux コンテナと Windows コンテナに対して、デフォルト値の 30 秒が適用されます。コンテナインスタンスには、コンテナ停止タイムアウト値を有効にするために、コンテナエージェントのバージョン 1.26.0 以上が必要です。ただし、最新のコンテナエージェントのバージョンを使用することをお勧めします。エージェントのバージョンの確認方法と最新バージョンへの更新方法については、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。Amazon ECS に最適化された Linux Amazon AMI を使用している場合、インスタンスには、少なくともecs-init
パッケージの 1.26.0-1 バージョン以上が必要です。バージョン20190301
以降から起動されるコンテナインスタンスには、必要なバージョンのコンテナエージェントやecs-init
が含まれています。詳細については、「Amazon ECS に最適化された Linux AMI」を参照してください。
システムコントロール
systemControls
-
型: SystemControl オブジェクト
必須:いいえ
コンテナ内で設定する名前空間カーネルパラメータのリスト。このパラメータは docker create-container コマンドの
Sysctls
にマッピングされ、--sysctl
オプションは docker run にマッピングされます。例えば、接続をより長く維持するようにnet.ipv4.tcp_keepalive_time
設定を構成できます。awsvpc
またはhost
ネットワークモードも使用する単一のタスクで、複数のコンテナに対してネットワーク関連のsystemControls
パラメータを指定することは推奨されません。これを行うと、次のような欠点があります。-
Fargate を含む
awsvpc
ネットワークモードを使用するタスクの場合、systemControls
をコンテナ用に設定した場合、タスク内のすべてのコンテナに適用されます。単一のタスクの複数のコンテナに対して異なるsystemControls
を設定すると、最後に開始されたコンテナによって、有効になるsystemControls
が決定します。 -
host
ネットワークモードを使用するタスクでは、ネットワーク名前空間のsystemControls
はサポートされていません。
タスク内でコンテナに使用するため IPC リソース名前空間を設定している場合、システムコントロールには以下の条件が適用されます。詳細については、「IPC モード」を参照してください。
-
host
IPC モードを使用するタスクの場合、IPC 名前空間のsystemControls
はサポートされていません。 -
task
IPC モードを使用するタスクでは、IPC 名前空間のsystemControls
値が、タスク内のすべてのコンテナに適用されます。
注記
このパラメータは Windows コンテナではサポートされません。
注記
このパラメータは、プラットフォームバージョン
1.4.0
以降 (Linux) を使用する場合に、AWS Fargate でホストされたタスクでのみサポートされます。このパラメータは Fargate 上の Windows コンテナではサポートされません。"systemControls": [ { "namespace":"
string
", "value":"string
" } ]namespace
-
型: 文字列
必須: いいえ
value
を設定する名前空間カーネルパラメータ。有効な IPC 名前空間の値:
"fs.mqueue.*"
で開始する"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"
、およびSysctls
有効なネットワーク名前空間値:
"net.*"
で始まるSysctls
これらの値はすべて Fargate でサポートされています。
value
-
型: 文字列
必須: いいえ
namespace
で指定された名前空間カーネルパラメータの値。
-
インタラクティブ
interactive
-
型: ブール値
必須:いいえ
このパラメータが
true
の場合、stdin
またはtty
を割り当てる必要がある、コンテナ化されたアプリケーションをデプロイすることができます。このパラメータは docker create-container コマンドのOpenStdin
にマッピングされ、--interactive
オプションは docker run にマッピングされます。デフォルト:
false
。
擬似ターミナル
pseudoTerminal
-
タイプ: ブール値
必須:いいえ
このパラメータが
true
の場合、TTY が割り当てられます。このパラメータは docker create-container コマンドのTty
にマッピングされ、--tty
オプションは docker run にマッピングされます。デフォルト:
false
。
Elastic Inference アクセラレーター名
タスク定義用の Elastic Inference アクセラレーターのリソース要件。
注記
Amazon Elastic Inference (EI) は利用できなくなりました。
以下のパラメータをタスク定義で使用できます。
deviceName
-
型: 文字列
必須: はい
Elastic Inference アクセラレーターのデバイス名。
deviceName
は、コンテナ定義でも参照されます。Elastic Inference accelerator を参照してください。 deviceType
-
型: 文字列
必須: はい
使用する Elastic Inference アクセラレーター。
タスク配置の制約事項
タスク定義の登録時、Amazon ECS でのタスク配置方法をカスタマイズするタスク配置の制約を指定できます。
Fargate 起動タイプを使用している場合、タスク配置に関する制約事項はサポートされません。デフォルトでは、Fargate タスクはアベイラビリティーゾーンにまたがって分散されています。
EC2 起動タイプを使用するタスクの場合、アベイラビリティーゾーン、インスタンスタイプ、またはカスタム属性に基づいたタスク配置の制約を使用できます。詳細については、「Amazon ECS がタスクに使用するコンテナインスタンスを定義する」を参照してください。
以下のパラメータをコンテナ定義で使用できます。
expression
-
型: 文字列
必須: いいえ
制約に適用されるクラスタークエリ言語表現。詳細については、「Amazon ECS タスク用のコンテナインスタンスを定義する式を作成する」を参照してください。
type
-
型: 文字列
必須: はい
制約のタイプ。選択対象を有効な候補グループに制約するには、
memberOf
を使用します。
プロキシ設定
proxyConfiguration
-
タイプ: ProxyConfiguration オブジェクト
必須:いいえ
App Mesh プロキシ設定の詳細。
EC2 起動タイプを使用するタスクでプロキシ設定を有効にする場合、コンテナインスタンスには、コンテナエージェントのバージョン 1.26.0 以上と
ecs-init
パッケージのバージョン 1.26.0-1 以上が必要です。コンテナインスタンスが Amazon ECS に最適化された AMI バージョン20190301
以降から起動される場合、コンテナエージェントおよびecs-init
の必要なバージョンが含まれます。詳細については、「Amazon ECS に最適化された Linux 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
にリダイレクトされません。空のリストを指定できます。
name
-
型: 文字列
必須: いいえ
キーと値のペアの名前。
value
-
型: 文字列
必須: いいえ
キーと値のペアの値。
-
ボリューム
タスク定義を登録する際、コンテナインスタンスの Docker デーモンに渡されるボリュームのリストを任意で指定することができます。すると、同じコンテナインスタンス上の他のコンテナで使用できるようになります。
使用できるデータボリュームの種類は以下のとおりです。
-
Amazon EBS ボリューム – データ集約型のコンテナ化されたワークロード向けに、費用対効果が高く、耐久性があり、高性能なブロックストレージを提供します。スタンドアロンタスクを実行するとき、またはサービスを作成または更新するときに、Amazon ECS タスクごとに 1 つの Amazon EBS ボリュームをアタッチできます。Amazon EBS ボリュームは、Fargate または Amazon EC2 インスタンスでホストされている Linux タスクでサポートされています。詳細については、「Amazon ECS での Amazon EBS ボリュームの使用」を参照してください。
-
Amazon EFS ボリューム - Amazon ECS タスクで使用するためのシンプルかつスケーラブルで、永続的なファイルストレージを提供します。Amazon EFSでは、ストレージ容量は伸縮性があります。この容量は、ファイルの追加や削除に伴い自動的に拡大および縮小されます。アプリケーションは、必要なときに必要なストレージを確保できます。Fargate または Amazon EC2 インスタンスでホストされているタスクが、Amazon EFS ボリュームをサポートしています。詳細については、「Amazon ECS での Amazon EFS ボリュームの使用」を参照してください。
-
FSx for Windows File Server ボリューム – 完全マネージド型の Microsoft Windows ファイルサーバーを提供します。これらのファイルサーバは、Windows ファイルシステムによってバックアップされています。Amazon ECS と共に FSx for Windows File Server を使用する場合、永続的、分散型、共有型、および静的なファイルストレージを使用して、Windows タスクをプロビジョニングすることが可能です。詳細については、「Amazon ECS での FSx for Windows File Server ボリュームの使用」を参照してください。
このオプションは Fargate の Windows コンテナではサポートされません。
-
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
値を使用します。
詳細については、「Amazon ECS タスクのストレージオプション」を参照してください。
以下のパラメータをコンテナ定義で使用できます。
name
-
タイプ: 文字列
必須: いいえ
ボリュームの名前。最大 255 文字の英字 (大文字と小文字の区別あり)、数字、ハイフン (
-
)、アンダースコア (_
) を使用できます。この名前は、コンテナ定義mountPoints
オブジェクトのsourceVolume
パラメータで参照されます。 host
-
必須:いいえ
host
パラメーターは、バインドマウントのライフサイクルを、タスクではなくホスト Amazon EC2 インスタンスと、それが格納されている場所に関連付けるために使用されます。host
パラメーターが空の場合、Docker デーモンはデータボリュームのホストパスを割り当てますが、関連付けられたコンテナの実行が停止した後にデータが保持されるとは限りません。Windows コンテナは
$env:ProgramData
と同じドライブに全部のディレクトリをマウントできます。注記
sourcePath
パラメータは、Amazon EC2 インスタンスでホストされているタスクを使用する場合にのみサポートされます。sourcePath
-
型: 文字列
必須: いいえ
host
パラメータを使用する場合は、sourcePath
を指定して、コンテナに表示されるホスト Amazon EC2 インスタンスのパスを宣言します。このパラメータが空の場合は、Docker デーモンによってホストパスが割り当てられます。host
パラメータにsourcePath
の場所が含まれている場合、データボリュームは手動で削除するまでホスト Amazon EC2 インスタンスの指定された場所に保持されます。sourcePath
の値がホスト Amazon EC2 インスタンスに存在しない場合は、Docker デーモンによって作成されます。その場所が存在する場合は、ソースパスフォルダの内容がエクスポートされます。
configuredAtLaunch
-
型: ブール値
必須:いいえ
起動時にボリュームを設定可能にするかどうかを指定します。
true
に設定すると、スタンドアロンタスクを実行するとき、またはサービスを作成または更新するときにボリュームを設定できます。true
に設定すると、タスク定義内で別のボリューム設定を提供することはできません。タスクにアタッチする Amazon EBS ボリュームを設定するには、このパラメータをtrue
に設定する必要があります。configuredAtLaunch
をtrue
に設定し、ボリューム設定を起動フェーズに先送りすることで、ボリュームタイプや特定のボリューム設定に限定されないタスク定義を作成できます。こうすることで、タスク定義をさまざまな実行環境で再利用できるようになります。詳細については、「Amazon EBS ボリューム」を参照してください。 dockerVolumeConfiguration
-
タイプ: DockerVolumeConfiguration オブジェクト
必須:いいえ
このパラメータは、Docker ボリュームを使用する場合に指定します。Docker ボリュームは、EC2 インスタンスでタスクを実行する場合にのみサポートされます。Windows コンテナでは、
local
ドライバーの使用のみがサポートされます。バインドマウントを使用するには、代わりにhost
を指定します。scope
-
型: 文字列
有効な値:
task
|shared
必須: いいえ
Docker ボリュームのスコープ。これにより、ボリュームのライフサイクルが決定されます。Docker ボリュームの範囲が
task
の場合は、タスクが開始すると自動的にプロビジョンされ、タスクが停止すると破棄されます。Docker ボリュームの範囲がshared
の場合は、タスクの停止後も保持されます。 autoprovision
-
タイプ: ブール値
デフォルト値:
false
必須:いいえ
この値が
true
の場合、既に存在していない場合は Docker ボリュームが作成されます。このフィールドは、scope
がshared
の場合にのみ使用されます。scope
がtask
の場合、このパラメータは省略する必要があります。 driver
-
型: 文字列
必須: いいえ
使用する Docker ボリュームドライバー。この名前はタスク配置に使用されるため、ドライバー値は Docker で提供されているドライバー名と一致する必要があります。ドライバーが Docker プラグイン CLI を使用してインストールされた場合は、
docker plugin ls
を使用してコンテナインスタンスからドライバー名を取得します。ドライバーが別の方法でインストール済みである場合は、Docker プラグイン検出を使用してドライバー名を取得します。 driverOpts
-
型: 文字列
必須: いいえ
パススルーする Docker ドライバー固有のオプションのマップ。このパラメータは、Docker の「Create a volume」セクションの
DriverOpts
にマッピングされます。 labels
-
型: 文字列
必須: いいえ
Docker ボリュームに追加するカスタムメタデータ。
efsVolumeConfiguration
-
タイプ: 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 File System User Guide] (Amazon Elastic File System ユーザーガイド) のEFS Mount Helper] (EFS マウントヘルパー) を参照してください。
authorizationConfig
-
タイプ: EFSAuthorizationConfiguration オブジェクト
必須:いいえ
Amazon EFS ファイルシステムに対する認可構成の詳細。
accessPointId
-
型: 文字列
必須: いいえ
使用するアクセスポイント ID。アクセスポイントが指定されている場合は、
efsVolumeConfiguration
のルートディレクトリ値を省略するか/
に設定して、EFS アクセスポイントにパスを設定する必要があります。アクセスポイントを使用する場合は、EFSVolumeConfiguration
で転送中の暗号化を有効にする必要があります。詳細については、Amazon Elastic ファイルシステムユーザーガイドのAmazon EFS アクセスポイントの使用を参照してください。 iam
-
型: 文字列
有効な値:
ENABLED
|DISABLED
必須:いいえ
タスク定義で定義した Amazon ECS タスクの IAM ロールを、Amazon EFS ファイルシステムのマウント時に使用するかどうかを指定します。使用する場合は、
EFSVolumeConfiguration
で転送中の暗号化を有効にする必要があります。このパラメータを省略すると、DISABLED
のデフォルト値が使用されます。詳細については、「タスク用の IAM ロール」を参照してください。
FSxWindowsFileServerVolumeConfiguration
-
タイプ: FSxWindowsFileServerVolumeConfiguration オブジェクト
必須: はい
このパラメータは、タスクストレージに Amazon FSx for Windows File Server ファイルシステムを使用する場合に指定します。
fileSystemId
-
型: 文字列
必須: はい
使用する FSx for Windows File Server ファイルシステムID。
rootDirectory
-
型: 文字列
必須: はい
ホスト内にルートディレクトリとしてマウントする FSx for Windows File Server ファイルシステム内のディレクトリ。
authorizationConfig
-
credentialsParameter
-
型: 文字列
必須: はい
認可の認証情報オプション。
options:
AWS Secrets Manager シークレットの Amazon リソースネーム (ARN)。
AWS Systems Manager パラメータの ARN。
domain
-
型: 文字列
必須: はい
AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) ディレクトリまたはセルフホスト型 EC2 Active Directory によってホストされる完全修飾ドメイン名。
タグ
タスク定義の登録する際、タスク定義に適用されるメタデータタグをオプションで指定できます。タグは、タスク定義を分類して組織化するのに役立ちます。各タグは、キー、および値 (オプション) で構成されます。両方を定義します。詳細については、「Amazon ECS リソースにタグ付けする」を参照してください。
重要
タグには、個人が特定可能な情報や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグは、多くの AWS のサービス (請求など) からアクセスできます。タグは、プライベートデータや機密データに使用することを意図していません。
タグオブジェクトでは、次のパラメータを使用できます。
key
-
型: 文字列
必須: いいえ
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。
value
-
型: 文字列
必須: いいえ
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。
その他のタスク定義パラメータ
以下のタスク定義パラメータは、Amazon ECS コンソールから、[Configure via JSON (JSON による設定)] オプションを使用してタスク定義を登録する際に使用します。詳細については、「コンソールを使用した Amazon ECS タスク定義の作成」を参照してください。
エフェメラルストレージ
ephemeralStorage
-
タイプ: EphemeralStorage オブジェクト
必須:いいえ
タスクに割り当てるエフェメラルストレージの容量(GB 単位)。このパラメーターは、AWS Fargate でホストされるタスクにおいて、利用可能なエフェメラルストレージの総量をデフォルトの容量を超えて拡張する際に使用します。詳細については、「Amazon ECS でのバインドマウントの使用」を参照してください。
注記
このパラメータは、プラットフォームバージョン
1.4.0
以降 (Linux) または1.0.0
以降 (Windows) を使用して AWS Fargate でホストされたタスクでのみサポートされます。
IPC モード
ipcMode
-
型: 文字列
必須: いいえ
タスクのコンテナで使用する IPC リソースの名前空間。有効な値は
host
、task
またはnone
です。host
が指定されている場合、同一のコンテナインスタンス上にある (host
IPC モードを指定した) タスク内のすべてのコンテナは、ホスト Amazon EC2 インスタンスと同じ IPC リソースを共有します。task
が指定されている場合、指定されたタスク内のすべてのコンテナは同じ IPC リソースを共有します。none
が指定されている場合、タスクのコンテナ内の IPC リソースはプライベートです。タスク内またはコンテナインスタンスの他のコンテナと共有されることはありません。値を指定しない場合、IPC リソース名前空間の共有はコンテナインスタンスの Docker デーモンの設定によって異なります。host
IPC モードを使用する場合は、意図せず IPC 名前空間が公開されるリスクが高いことに注意してください。タスク内のコンテナに、
systemControls
を使用して名前空間のカーネルパラメータを設定している場合は、以下の点が IPC リソース名前空間に適用されます。-
host
IPC モードを使用するタスクの場合、systemControls
に関連する IPC 名前空間はサポートされません。 -
task
IPC モードを使用するタスクでは、IPC 名前空間に関連するsystemControls
が、タスク内のすべてのコンテナに適用されます。
-
注記
このパラメータは、Windows コンテナ、または Fargate 起動タイプを使用するタスクではサポートされていません。
PID モード
pidMode
-
型: 文字列
有効な値:
host
|task
必須:いいえ
タスクのコンテナで使用するプロセス名前空間。有効な値は
host
またはtask
です。Linux コンテナ用の Fargate では、有効な値はtask
のみです。例えば、サイドカーのモニタリングでは、pidMode
が同じタスクで実行されている他のコンテナに関する情報にアクセスする必要となる場合があります。host
が指定されている場合、同じコンテナインスタンスでhost
PID モードを指定したタスク内のすべてのコンテナは、ホスト Amazon EC2 インスタンスと同じプロセス名前空間を共有します。task
が指定されている場合、指定したタスク内のすべてのコンテナは同じプロセス名前空間を共有します。値が指定されていない場合、デフォルトは各コンテナのプライベート名前空間です。
host
PID モードを使用する場合は、意図せずプロセス名前空間が公開されるリスクが高いことに注意してください。
注記
このパラメータは Windows コンテナではサポートされません。
注記
このパラメータは、プラットフォームバージョン 1.4.0
以降 (Linux) を使用する場合に、AWS Fargate でホストされたタスクでのみサポートされます。このパラメータは Fargate 上の Windows コンテナではサポートされません。