AWS Fargate の Amazon Elastic Container Service (Amazon ECS) コンテナのディスク容量を増やしたいと考えています。
簡単な説明
デフォルトでは、プラットフォームバージョン 1.40 で起動する Fargate タスクには、20 GiB のタスクストレージサイズが 1 つのエフェメラルボリュームとして含まれています。20 GiB を超えるストレージが必要な場合は、次の 2 つのオプションを使用してストレージを増やすことができます。
重要: Amazon EFS ボリュームを作成するときは、Fargate サービスに割り当てられているものと同じ Amazon Virtual Private Cloud (Amazon VPC) とサブネットを使用します。
解決方法
エフェメラルストレージの設定
注意: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用するようにしてください。
エフェメラルストレージの設定例については、「Bind mount examples」(バインドマウントの例) を参照してください。
Amazon EFS ボリュームでストレージを設定する
1. Amazon EFS マウントターゲット用のセキュリティグループを作成します。次に、ソースのタスクセキュリティグループからポート 2049 で NFS トラフィックを受け入れるインバウンドルールを追加します。
2. Amazon EFS ファイルシステムを作成し、手順 1 のセキュリティグループをマウントターゲットにアタッチします。
注: デフォルトでは、特定の AWS リージョンの各アベイラビリティーゾーンにマウントターゲットが設定されます。Fargate サービスの VPC サブネットがあるアベイラビリティーゾーンをすべて選択します。
3. ファイルシステムのファイルシステム ID (例えば、fs-12345678) をメモします。
4. タスク定義を作成または更新して、Amazon EFS ファイルシステムを持つ Amazon ECS タスクのボリュームを設定します 。例:
"volumes": [
{
"name": "efs-test-volume",
"efsVolumeConfiguration": {
"fileSystemId": "fs-12345678",
"transitEncryption": "ENABLED"
}
}
]
注: fs-12345678 をファイルシステム ID に置き換えます。
5. コンテナ定義セクションを使用して、コンテナ内にボリュームのマウントポイントを作成します。例:
"containerDefinitions": [
{
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80,
"protocol": "tcp"
}
],
"essential": true,
"mountPoints": [
{
"containerPath": "/mount/path/inside/container",
"sourceVolume": "efs-test-volume"
}
],
"name": "nginx",
"image": "nginx"
}
]
注: containerPath は、ボリュームをマウントするコンテナ内のパスです。sourceVolume は、ステップ 4 で定義したボリュームの名前です。
6. 更新されたタスク定義を使用してタスクを実行します。注意: サービスに関連付けられているタスクの場合は、新しいタスク定義のリビジョンを選択してサービスを更新します。