如何增加 AWS Fargate 上的 Amazon ECS 容器的磁盘空间?

上次更新日期:2022 年 8 月 2 日

我想为 AWS Fargate 上的 Amazon Elastic Container Service(Amazon ECS)容器增加磁盘空间。

简短描述

默认情况下,使用平台版本 1.40 启动的 Fargate 任务包含 20 GiB 的任务存储大小作为单个临时卷。如果您需要超过 20 GiB 的存储空间,可以使用两个选项配置更多存储空间:

  • 使用 Fargate 的短暂存储选项可存储高达 200 GiB 的存储空间。短暂存储是非持久性存储。
  • 使用 Amazon Elastic File System(Amazon EFS)卷进行可扩展的文件存储。Amazon EFS 卷提供持久性存储。

重要提示:在创建 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.    使用更新的任务定义运行任务。注意:对于与服务关联的任务,请通过选择新的任务定义修订来更新服务。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?