我想为 AWS Fargate 上的 Amazon Elastic Container Service(Amazon ECS)容器增加磁盘空间。
简短描述
默认情况下,使用平台版本 1.40 启动的 Fargate 任务包含 20 GiB 的任务存储大小作为单个临时卷。如果您需要超过 20 GiB 的存储空间,可以使用两个选项配置更多存储空间:
**重要提示:**在创建 Amazon EFS 卷时,请使用分配给您的 Fargate 服务的 Amazon Virtual Private Cloud(Amazon VPC)和子网。
解决方法
配置短暂存储
注意:如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您运行的是最新版本的 AWS CLI。
有关配置短暂存储的更多示例,请参阅绑定挂载示例。
使用 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. 使用更新的任务定义运行任务。**注意:**对于与服务关联的任务,请通过选择新的任务定义修订来更新服务。