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

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

Amazon EFS 卷

Amazon Elastic File System (Amazon EFS) 提供简单的可扩展文件存储以供您的 Amazon ECS 任务使用。使用 Amazon EFS 时,存储容量是弹性的,可在您添加和删除文件时自动增加和缩减。您的应用程序可在需要时获得所需存储。

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

Amazon EFS 卷注意事项

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

  • 对于在 上托管的任务Fargate,平台版本 1.4.0 或更高版本支持 Amazon EFS 文件系统。有关更多信息,请参阅AWS Fargate 平台版本

  • 在将 Amazon EFS 卷用于 上托管的任务时Fargate, Fargate 会创建一个负责管理该Amazon EFS卷的主管容器。主管容器使用少量的任务内存。主管容器在查询任务元数据版本 4 CloudWatch 终端节点时可见,但在 中不可见Container Insights。有关更多信息,请参阅 任务元数据终端节点版本 4

使用 Amazon EFS 访问点

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

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

注意

创建 EFS 访问点时,您可以在文件系统上指定一个路径以用作根目录。在Amazon ECS任务定义中引用具有访问点 ID 的 EFS 文件系统时,必须省略根目录或将其设置为 ( / 将强制实施 EFS 访问点上设置的路径)。

您可以使用 Amazon ECS 任务 IAM 角色强制特定应用程序使用特定的访问点。通过将 IAM 策略与访问点相结合,您可以轻松地为您的应用程序提供对特定数据集的安全访问。有关使用任务 IAM 角色的更多信息,请参阅 任务的 IAM 角色

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

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

{ "containerDefinitions": [ { "name": "container-using-efs", "image": "amazonlinux:2", "entryPoint": [ "sh", "-c" ], "command": [ "ls -la \mount\efs" ], "mountPoints": [ { "sourceVolume": "myEfsVolume", "containerPath": "\mount\efs", "readOnly": true } ] } ], "volumes": [ { "name": "myEfsVolume", "efsVolumeConfiguration": { "fileSystemId": "fs-1234", "rootDirectory": "\path\to\my\data", "transitEncryption": "ENABLED", "transitEncryptionPort": integer, "authorizationConfig": { "accessPointId": "fsap-1234", "iam": "ENABLED" } } } ] }
efsVolumeConfiguration

类型:对象

必需:否

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

fileSystemId

类型:字符串

必需:是

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

rootDirectory

类型:字符串

必需:否

Amazon EFS 文件系统中要作为主机内的根目录挂载的目录。如果忽略此参数,将使用 Amazon EFS 卷的根目录。指定 / 与忽略此参数具有相同的效果。

重要

如果在 中指定了 EFS 访问点authorizationConfig,则必须省略根目录参数或将其设置为 /,这将强制实施 EFS 访问点上设置的路径。

transitEncryption

类型:字符串

有效值: ENABLED | DISABLED

必需:否

是否对 Amazon EFS 主机和 Amazon ECS 服务器之间传输的 Amazon EFS 数据启用加密。如果使用 Amazon EFS IAM 授权,则必须启用传输加密。如果忽略此参数,将使用 DISABLED 的默认值。有关更多信息,请参阅 中的https://docs.amazonaws.cn/efs/latest/ug/encryption-in-transit.html加密传输中的数据Amazon Elastic File System 用户指南

transitEncryptionPort

类型:整数

必需:否

在 Amazon ECS 主机和 Amazon EFS 服务器之间发送加密数据时使用的端口。如果您未指定中转加密端口,它将使用Amazon EFS挂载帮助程序使用的端口选择策略。有关更多信息,请参阅 中的 EFS Amazon Elastic File System 用户指南挂载帮助程序

authorizationConfig

类型:对象

必需:否

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

accessPointId

类型:字符串

必需:否

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

iam

类型:字符串

有效值: ENABLED | DISABLED

必需:否

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