

# 将 Amazon EBS 卷与 Amazon ECS 结合使用
<a name="ebs-volumes"></a>

Amazon Elastic Block Store（Amazon EBS）卷为数据密集型工作负载提供高度可用、经济高效、持久、高性能的块存储。Amazon EBS 卷可以与 Amazon ECS 任务一起用于高吞吐量和事务密集型应用程序。有关 Amazon EBS 卷的更多信息，请参阅《Amazon EBS 用户指南》[https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html](https://docs.aws.amazon.com/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](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html)。有关配置 Amazon EBS 卷的更多信息，请参阅[在 Amazon ECS 任务定义中将卷配置推迟到启动时间](specify-ebs-config.md)和[指定 Amazon ECS 部署时的 Amazon EBS 卷配置](configure-ebs-volume.md)。

使用任务定义中的 `configuredAtLaunch` 参数将卷配置推迟到启动时间。通过在启动时提供卷配置而不是在任务定义中提供，您可以创建不受特定数据卷类型或特定 EBS 卷设置限制的任务定义。然后，您可以在不同的运行时环境中重复使用任务定义。例如在部署期间，您可以为生产工作负载提供比预生产环境更多的吞吐量。

 附加到任务的 Amazon EBS 卷可以使用 AWS Key Management Service（AWS KMS）密钥进行加密，以保护您的数据。有关更多信息，请参阅[加密附加到 Amazon ECS 任务的 Amazon EBS 卷中存储的数据](ebs-kms-encryption.md)。

要监控卷的性能，您还可以使用 Amazon CloudWatch 指标。有关 Amazon EBS 卷的 Amazon ECS 指标的更多信息，请参阅 [Amazon ECS CloudWatch 指标](available-metrics.md) 和 [Amazon ECS Container Insights 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)。

所有支持 Amazon ECS 的商业和中国 [AWS 区域](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#region) 都支持将 Amazon EBS 卷附加到任务。

## 支持的操作系统和容量
<a name="ebs-volumes-configuration"></a>

下表提供了支持的操作系统和容量配置。


| 容量 | Linux  | Windows | 
| --- | --- | --- | 
| Fargate |  平台版本 1.4.0 或更高版本（Linux）支持 Amazon EBS 卷。有关更多信息，请参阅 [适用于 Amazon ECS 的 Fargate 平台版本](platform-fargate.md)。 | 不支持 | 
| EC2 | 托管在基于 Nitro 的实例上并具有经 Amazon ECS 优化的亚马逊机器映像（AMI）的任务支持 Amazon EBS 卷。有关实例类型的信息，请参阅《Amazon EC2 用户指南》中的[实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)。ECS 优化型 AMI `20231219` 或更高版本支持 Amazon EBS 卷。有关更多信息，请参阅[检索经 Amazon ECS 优化的 AMI 元数据](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html)。 | 在使用 Amazon ECS 优化型亚马逊机器映像（AMI）的基于 Nitro 的实例上托管的任务。有关实例类型的信息，请参阅《Amazon EC2 用户指南》中的[实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)。ECS 优化型 AMI `20241017` 或更高版本支持 Amazon EBS 卷。有关更多信息，请参阅[检索 Amazon ECS 优化型 Windows AMI 元数据](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_windows_AMI.html)。 | 
| Amazon ECS 托管实例 | Linux 上的 Amazon ECS 托管实例上托管的任务支持 Amazon EBS 卷。 | 不支持 | 

## 注意事项
<a name="ebs-volume-considerations"></a>

 使用 Amazon EBS 卷时应考虑以下事项：
+ 您无法将 Amazon EBS 卷配置为附加到 `use1-az3` 可用区中的 Fargate Amazon ECS 任务。
+ 托管在 Fargate 上的任务不支持磁性（`standard`）Amazon EBS 卷类型。有关 Amazon EBS 卷类型的更多信息，请参阅《Amazon EC2 用户指南》[https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)中的 *Amazon EBS 卷*。
+ 创建服务或在部署时配置卷的独立任务时，需要 Amazon ECS 基础设施的 IAM 角色。您可以将 AWS 托管的 `AmazonECSInfrastructureRolePolicyForVolumes` IAM 策略附加到角色，也可以使用托管策略作为指南，以创建并附加您自己的具有满足您特定需求的权限的策略。有关更多信息，请参阅 [Amazon ECS 基础设施 IAM 角色](infrastructure_IAM_role.md)。
+ 您最多可以将一个 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 卷](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging)。有关标记 Amazon ECS 源的更多信息，请参阅[标记 Amazon ECS 资源](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)。
+ 不支持通过包含分区的 Amazon EBS 卷的快照预调配卷。
+ 附加到由服务管理的任务的卷不会被保留，并且总是会在任务终止时被删除。
+ 您无法将 Amazon EBS 卷配置为附加到正在 AWS Outposts 上运行的 Amazon ECS 任务。