Amazon Elastic Container Service (Amazon ECS) のタスクに Amazon Elastic Block Storage (Amazon EBS) ボリュームを使用したいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
前提条件
新しい EBS ボリュームをタスクにアタッチするには、mountPoints のタスク定義で次の構成を指定します。
- sourceVolume にマウントするボリュームの名前を入力します。
- containerPath にボリュームをマウントするコンテナインスタンスのパスを入力します。
- コンテナにボリュームへの読み取り専用アクセス許可があるかどうかに応じて、readOnly に true または false を入力します。
次に、configuredAtLaunch を true に設定します。
タスク定義の例
{
"family": "mytaskdef",
"containerDefinitions": [
{
....
#Some fields removed from example
....
"mountPoints": [
{
"sourceVolume": "myEBSVolume",
"containerPath": "/mount/ebs",
"readOnly": true
}
]
}
],
....
#Some fields removed from example
....
"volumes": [
{
"name": "myEBSVolume",
"configuredAtLaunch": true
}
]
}
タスク定義テンプレートを JSON ファイルとして保存し、register-task-definition を実行してタスク定義を登録します。
aws ecs register-task-definition \
--cli-input-json file://json_file_name.json \
--region Region_name
注: 実際のものでそれぞれ、json_file_name.json を JSON ファイルに、Region_name を AWS リージョンに置き換えます。
次に、スタンドアロンタスクを実行する際、デプロイ時の Amazon EBS ボリュームを設定します。サービスを作成または更新する際に設定してもかまいません。
既存の EBS ボリュームのデータを使用するには、ボリュームのスナップショットを作成します。次に、タスク定義の VolumeConfigurations で SnapshotID にスナップショット ID を追加します。設定例については、「サービス作成時のボリュームを設定する」を参照してください。
関連情報
Amazon ECS タスクに Amazon EBS ボリュームをアタッチする際のトラブルシューティング
Amazon ECS で Amazon EBS ボリュームを使用する