Amazon EFS 卷 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EFS 卷

Amazon Elastic File System (Amazon EFS) 提供简单的可扩展文件存储以供您的Amazon Batch个作业。使用亚马逊 EFS,存储容量是弹性的。在您添加和删除文件时,它将自动缩放。您的应用程序可在需要时获得所需存储。

您可以将亚马逊 EFS 文件系统与Amazon Batch以便导出跨容器实例队列的文件系统数据。这样,您的任务可以访问相同的持久性存储。但是,您必须将容器实例 AMI 配置为在 Docker 守护程序启动前挂载 Amazon EFS 文件系统。此外,您的作业定义必须引用容器实例上的卷挂载才能使用该文件系统。下面几节可帮助您了解如何将 Amazon EFS 与配合使用。Amazon Batch。

Amazon EFS 卷注意事项

使用 Amazon EFS 卷时应注意以下事项:

  • 对于使用 EC2 资源的任务,Amazon EFS 文件系统支持已作为一个公共预览版添加,其中包括 Amazon ECS 优化 AMI 版本以及 Amazon EFS20191212与容器代理版本 1.35.0。但是,Amazon EFS 文件系统支持已通过 Amazon ECS 优化 AMI 版本进入正式发布20200319版本 1.38.0 正式推出,其中包含 Amazon EFS 访问点和 IAM 授权功能。我们建议您使用 Amazon ECS 优化 AMI 版本20200319或更高版本以利用这些功能。有关更多信息,请参阅 。亚马逊云服务器优化 AMI 版本中的Amazon Elastic Container Service 开发指南

    注意

    如果您创建自己的 AMI,则必须使用容器代理 1.38.0 版或更高版本、ecs-init版本 1.38.0-1 或更高版本,并在 Amazon EC2 实例上运行以下命令。这一切都是为了启用亚马逊云服务器卷插件。命令取决于您使用 Amazon Linux 2 还是 Amazon Linux 2 还是 Amazon Linux 作为基本映像。

    Amazon Linux 2
    yum install amazon-efs-utils systemctl enable --now amazon-ecs-volume-plugin
    Amazon Linux
    yum install amazon-efs-utils sudo shutdown -r now

    Amazon Linux 2

  • 对于使用 Fargate 资源的作业,在使用平台版本 1.4.0 或更高版本时已添加 Amazon EFS 文件系统支持。有关更多信息,请参阅 。AmazonFargate 平台版本中的Amazon Elastic Container Service 开发指南

  • 在使用 Fargate 资源的作业中指定 Amazon EFS 卷时,Fargate 将创建负责管理 Amazon EFS 卷的主管容器。主管容器使用少量的作业内存。查询任务元数据版本 4 终端节点时将显示主管容器。有关更多信息,请参阅 。任务元数据终端节点版本 4中的Amazon Elastic Container Service 开发指南

使用亚马逊 EFS 接入点

Amazon EFS 访问点是 EFS 文件系统中特定于应用程序的入口点,便于轻松地管理应用程序对共享数据集的访问。有关 Amazon EFS 访问点以及如何控制对其访问的更多信息,请参阅使用 Amazon EFS 访问点中的Amazon Elastic File System 用户指南

访问点可以为通过访问点发出的所有文件系统请求强制执行用户身份(包括用户的 POSIX 组)。访问点还可以为文件系统强制执行不同的根目录,以便客户端只能访问指定目录或其子目录中的数据。

注意

创建 EFS 访问点时,您可以在文件系统上指定用作根目录的路径。当您使用访问点 ID 引用 EFS 文件系统时Amazon Batch作业定义时,必须省略根目录或将其设置为/这将强制执行 EFS 接入点上设置的路径。

您可以使用Amazon Batch作业 IAM 角色强制特定应用程序使用特定的访问点。通过将 IAM 策略与访问点相结合,您可以轻松地为您的应用程序提供对特定数据集的安全访问。此功能使用 Amazon ECS IAM 角色来执行任务功能。有关更多信息,请参阅 。适用于任务的 IAM 角色中的Amazon Elastic Container Service 开发指南

在您的任务定义中指定 Amazon EFS 文件系统

要为容器使用 Amazon EFS 文件系统卷,您必须在任务定义中指定卷和挂载点配置。下面的作业定义 JSON 代码段显示volumesmountPoints对象:

{ "containerProperties": [ { "name": "container-using-efs", "image": "amazonlinux:2" ], "command": [ "ls", "-la", "/mount/efs" ], "mountPoints": [ { "sourceVolume": "myEfsVolume", "containerPath": "/mount/efs", "readOnly": true } ], "volumes": [ { "name": "myEfsVolume", "efsVolumeConfiguration": { "fileSystemId": "fs-12345678", "rootDirectory": "/path/to/my/data", "transitEncryption": "ENABLED", "transitEncryptionPort": integer, "authorizationConfig": { "accessPointId": "fsap-1234567890abcdef1", "iam": "ENABLED" } } } ] } ] }
efsVolumeConfiguration

类型: Object

:必需 否

使用 Amazon EFS 卷时将指定此参数。

fileSystemId

类型: 字符串

:必需 是

要使用的 Amazon EFS 文件系统 ID。

rootDirectory

类型: 字符串

:必需 否

Amazon EFS 文件系统中要作为主机内的根目录挂载的目录。如果忽略此参数,将使用 Amazon EFS 卷的根目录。指定/与忽略此参数效果相同。其长度最多为 4,096 个字符。

重要

如果 EFS 访问点已在authorizationConfig,则必须省略根目录参数或将其设置为/。这将强制执行 EFS 接入点上设置的路径。

transitEncryption

类型: 字符串

有效值:ENABLED | DISABLED

:必需 否

确定是否对 Amazon EFS 数据启用加密,这些数据在Amazon Batch主机和亚马逊 EFS 服务器。如果使用 Amazon EFS IAM 授权,则必须启用传输加密。如果忽略此参数,将使用 DISABLED 的默认值。有关更多信息,请参阅 。对传输中的数据加密中的Amazon Elastic File System 用户指南

transitEncryptionPort

类型: 整数

:必需 否

在Amazon Batch主机和亚马逊 EFS 服务器。如果未指定传输加密端口,将使用 Amazon EFS 挂载帮助程序使用的端口选择策略。该值的长度必须介于 0 到 65,535 之间。有关更多信息,请参阅 。EFS 挂载帮助程序中的Amazon Elastic File System 用户指南

authorizationConfig

类型: Object

:必需 否

Amazon EFS 文件系统的授权配置详细信息。

accessPointId

类型: 字符串

:必需 否

要使用的访问点 ID。如果指定了访问点,将在efsVolumeConfiguration必须省略或将其设置为/。这将强制执行 EFS 接入点上设置的路径。如果使用访问点,则必须在 EFSVolumeConfiguration 中启用传输加密。有关更多信息,请参阅 。使用 Amazon EFS 访问点中的Amazon Elastic File System 用户指南

iam

类型: 字符串

有效值:ENABLED | DISABLED

:必需 否

确定是否使用Amazon Batch挂载 Amazon EFS 文件系统时在任务定义中定义的任务 IAM 角色。如果启用,则必须在 EFSVolumeConfiguration 中启用传输加密。如果忽略此参数,将使用 DISABLED 的默认值。有关执行 IAM 角色的更多信息,请参阅Amazon Batch执行 IAM 角色