将 Amazon EBS 卷与 Amazon ECS 结合使用
Amazon Elastic Block Store(Amazon EBS)卷为数据密集型工作负载提供高度可用、经济高效、持久、高性能的块存储。Amazon EBS 卷可以与 Amazon ECS 任务一起用于高吞吐量和事务密集型应用程序。有关 Amazon EBS 卷的更多信息,请参阅《Amazon EBS 用户指南》https://docs.amazonaws.cn/ebs/latest/userguide/ebs-volumes.html中的 Amazon EBS 卷。
附加到 Amazon ECS 任务的 Amazon EBS 卷由 Amazon ECS 代表您管理。在独立任务启动期间,您可以提供用于将一个 EBS 卷附加到任务的配置。在创建或更新服务期间,您可以提供针对 Amazon ECS 服务管理的每个任务,用于为每个任务挂载一个 EBS 卷的配置。您可以配置新的空卷以进行附加,也可以使用快照从现有卷加载数据。
注意
使用快照配置卷时,您可以指定一个 volumeInitializationRate(以 MiB/s 为单位),以该速度从快照中提取数据,从而创建在可预测的时间内完全初始化的卷。有关卷初始化的更多信息,请参阅《Amazon EBS 用户指南》中的 Initialize Amazon EBS volumes。有关配置 Amazon EBS 卷的更多信息,请参阅在 Amazon ECS 任务定义中将卷配置推迟到启动时间和指定 Amazon ECS 部署时的 Amazon EBS 卷配置。
使用任务定义中的 configuredAtLaunch 参数将卷配置推迟到启动时间。通过在启动时提供卷配置而不是在任务定义中提供,您可以创建不受特定数据卷类型或特定 EBS 卷设置限制的任务定义。然后,您可以在不同的运行时环境中重复使用任务定义。例如在部署期间,您可以为生产工作负载提供比预生产环境更多的吞吐量。
附加到任务的 Amazon EBS 卷可以使用 Amazon Key Management Service(Amazon KMS)密钥进行加密,以保护您的数据。有关更多信息,请参阅加密附加到 Amazon ECS 任务的 Amazon EBS 卷中存储的数据。
要监控卷的性能,您还可以使用 Amazon CloudWatch 指标。有关 Amazon EBS 卷的 Amazon ECS 指标的更多信息,请参阅 Amazon ECS CloudWatch 指标 和 Amazon ECS Container Insights 指标。
所有支持 Amazon ECS 的商业和中国 Amazon Web Services 区域 都支持将 Amazon EBS 卷附加到任务。
支持的操作系统和容量
下表提供了支持的操作系统和容量配置。
| 容量 | Linux | Windows |
|---|---|---|
| Fargate | 平台版本 1.4.0 或更高版本(Linux)支持 Amazon EBS 卷。有关更多信息,请参阅 适用于 Amazon ECS 的 Fargate 平台版本。 |
不支持 |
| EC2 | 托管在基于 Nitro 的实例上并具有经 Amazon ECS 优化的亚马逊机器映像(AMI)的任务支持 Amazon EBS 卷。有关实例类型的信息,请参阅《Amazon EC2 用户指南》中的实例类型。 ECS 优化型 AMI |
在使用 Amazon ECS 优化型亚马逊机器映像(AMI)的基于 Nitro 的实例上托管的任务。有关实例类型的信息,请参阅《Amazon EC2 用户指南》中的实例类型。 ECS 优化型 AMI |
| Amazon ECS 托管实例 | Linux 上的 Amazon ECS 托管实例上托管的任务支持 Amazon EBS 卷。 |
不支持 |
注意事项
使用 Amazon EBS 卷时应考虑以下事项:
-
您无法将 Amazon EBS 卷配置为附加到
use1-az3可用区中的 Fargate Amazon ECS 任务。 -
托管在 Fargate 上的任务不支持磁性(
standard)Amazon EBS 卷类型。有关 Amazon EBS 卷类型的更多信息,请参阅《Amazon EC2 用户指南》https://docs.amazonaws.cn/ebs/latest/userguide/ebs-volume-types.html中的 Amazon EBS 卷。 -
创建服务或在部署时配置卷的独立任务时,需要 Amazon ECS 基础设施的 IAM 角色。您可以将 Amazon 托管的
AmazonECSInfrastructureRolePolicyForVolumesIAM 策略附加到角色,也可以使用托管策略作为指南,以创建并附加您自己的具有满足您特定需求的权限的策略。有关更多信息,请参阅 Amazon ECS 基础设施 IAM 角色。 -
您最多可以将一个 Amazon EBS 卷附加到每个 Amazon ECS 任务,并且该卷必须是新卷。您不能将现有的 Amazon EBS 卷挂载到任务中。但是,您可以在部署时使用现有卷的快照来配置新的 Amazon EBS 卷。
-
要将 Amazon EBS 卷与 Amazon ECS 服务结合使用,部署控制器必须是
ECS。使用此部署控制器时,支持滚动和蓝/绿部署策略。 -
要使任务中的容器写入已装载的 Amazon EBS 卷,该容器必须具有适当的文件系统权限。当您在容器定义中指定非根用户时,Amazon ECS 会自动为卷配置基于组的权限,以允许指定的用户读取和写入该卷。如果未指定用户,则容器以根用户身份运行,并拥有对卷的完全访问权限。
-
Amazon ECS 会自动将保留的标签
AmazonECSCreated和AmazonECSManaged添加到附加的卷中。如果您从卷中移除这些标签,则 Amazon ECS 将无法代表您管理该卷。有关标记 Amazon EBS 卷的更多信息,请参阅标记 Amazon EBS 卷。有关标记 Amazon ECS 源的更多信息,请参阅标记 Amazon ECS 资源。 -
不支持通过包含分区的 Amazon EBS 卷的快照预调配卷。
-
附加到由服务管理的任务的卷不会被保留,并且总是会在任务终止时被删除。
-
您无法将 Amazon EBS 卷配置为附加到正在 Amazon Outposts 上运行的 Amazon ECS 任务。