Amazon ECS タスク定義でバインドマウントを指定する
Fargate または Amazon EC2 インスタンスでホストされている Amazon ECS タスクについて、以下のタスク定義 JSON スニペットにタスク定義向け volumes
、mountPoints
、ephemeralStorage
オブジェクトの構文を示します。
{ "family": "", ... "containerDefinitions" : [ { "mountPoints" : [ { "containerPath" : "
/path/to/mount_volume
", "sourceVolume" : "string
" } ], "name" : "string
" } ], ... "volumes" : [ { "name" : "string
" } ], "ephemeralStorage": { "sizeInGiB":integer
} }
Amazon EC2 インスタンスでホストされる Amazon ECS タスクで、タスクボリュームの詳細を指定する場合は、オプションの host
パラメータおよび sourcePath
を使用できます。これを指定すると、バインドマウントはコンテナではなくタスクのライフサイクルに紐付けされます。
"volumes" : [ { "host" : { "sourcePath" : "
string
" }, "name" : "string
" } ]
以下では、各タスク定義パラメータについて詳しく説明します。
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 デーモンによって作成されます。その場所が存在する場合は、ソースパスフォルダの内容がエクスポートされます。
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
のままにします。
ephemeralStorage
-
タイプ: オブジェクト
必須: いいえ
タスクに割り当てるエフェメラルストレージの容量(GB)。このパラメータは、AWS Fargate プラットフォームバージョン
1.4.0
以降 (Linux) または1.0.0
以降 (Windows) を使用してホストされているタスクの場合、利用可能なエフェメラルストレージの総量をデフォルト容量を超えて拡張するために使用されます。コパイロットCLI、CloudFormation、AWSSDK または CLI を使用して、バインドマウントのエフェメラルストレージを指定します。