教程:开始使用 S3 Express One Zone - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

教程:开始使用 S3 Express One Zone

Amazon S3 Express One Zone 存储类是第一种可以在其中选择单个可用区的 S3 存储类,您可以选择将您的对象存储与计算资源联合托管在一个位置,从而提供尽可能高的访问速度。S3 Express One Zone 中的数据存储在 S3 目录存储桶中。有关目录存储桶的更多信息,请参阅目录存储桶

S3 Express One Zone 非常适合任何务必尽可能减少请求延迟的应用程序。此类应用程序可以是人机交互式工作流,例如视频编辑,在这种情况下,创意专业人士需要在通过用户界面访问内容时获得快速的响应。对数据响应能力具有类似要求的分析和机器学习工作负载也可以从 S3 Express One Zone 中获益,尤其是对于有大量访问小文件或大量随机访问的工作负载。S3 Express One Zone 可以与其它 Amazon 服务一起使用来支持分析以及人工智能与机器学习(AI/ML)工作负载,例如 Amazon EMR、Amazon Athena、Amazon Glue Data Catalog 和 Amazon SageMaker Model Training。可以通过 Amazon S3 控制台、Amazon SDK、Amazon 命令行界面(Amazon CLI)和 Amazon S3 REST API 使用 S3 Express One Zone 存储类和目录存储桶。有关更多信息,请参阅什么是 S3 Express One Zone?S3 Express One Zone 有哪些不同?

目标

在本教程中,您将学习如何创建网关端点、创建和附加 IAM 策略、创建目录存储桶,然后使用“导入”操作用当前存储在通用存储桶中的对象填充目录存储桶。或者,您可以手动将对象上传到目录存储桶。

先决条件

在开始本教程之前,您必须具有 Amazon Web Services 账户,您可使用具有正确权限的 Amazon Identity and Access Management(IAM)用户登录此账户。

创建 Amazon Web Services 账户

要完成此教程,您需要一个Amazon Web Services 账户。在注册 Amazon 时,将在 Amazon 中为您的 Amazon Web Services 账户 自动注册所有服务,包括 Amazon S3。您只需为使用的服务付费。有关定价的更多信息,请参阅 S3 定价

在 Amazon Web Services 账户中创建 IAM 用户(控制台)

Amazon Identity and Access Management(IAM)是一项 Amazon Web Services 服务,有助于管理员安全地控制对 Amazon 资源的访问。IAM 管理员可控制哪些用户能够通过身份验证(登录)和获得授权(拥有权限),来在 S3 Express One Zone 中访问对象和使用目录存储桶。使用 IAM 不会产生额外的费用。

默认情况下,用户没有访问目录存储桶和执行 S3 Express One Zone 操作的权限。要授予对目录存储桶和 S3 Express One Zone 操作的访问权限,您可以使用 IAM 创建用户或角色,然后将权限附加到这些身份。有关如何创建 IAM 用户的更多信息,请参阅 《IAM 用户指南》中的创建 IAM 用户(控制台)。有关如何创建 IAM 角色的更多信息,请参阅《IAM 用户指南》中的创建向 IAM 用户委派权限的角色

为简单起见,本教程创建并使用 IAM 用户。完成本教程后,请记住 删除 IAM 用户。对于生产用途,我们建议您遵循《IAM 用户指南》中的 IAM 中的安全最佳实践。最佳实践要求人类用户将联合身份验证与身份提供商结合使用,以使用临时凭证访问 Amazon。另一项最佳实践是要求工作负载使用带有 IAM 角色的临时凭证访问 Amazon。要详细了解如何使用 Amazon IAM Identity Center 创建具有临时凭证的用户,请参阅《Amazon IAM Identity Center 用户指南》中的 Getting started

警告

IAM 用户具有长期凭证,这会带来安全风险。为帮助减轻这种风险,我们建议仅向这些用户提供执行任务所需的权限,并在不再需要这些用户时将其移除。

创建 IAM 策略并将其附加到 IAM 用户或角色(控制台)

默认情况下,用户没有目录存储桶和 S3 Express One Zone 操作的权限。要授予对目录存储桶的访问权限,您可以使用 IAM 创建用户、组或角色,然后将权限附加到这些身份。对于 S3 Express One Zone 访问权限,目录存储桶是唯一可以包括在存储桶策略或 IAM 身份策略中的资源。

要在 S3 Express One Zone 中使用区域端点 API 操作(存储桶级或控制面板操作),请使用 IAM 授权模型,该模型不涉及会话管理。对于操作,将单独授予权限。要使用可用区端点 API 操作(对象级或数据面板操作),可以使用 CreateSession 来创建和管理会话,这些会话经过优化,可为数据请求提供低延迟授权。要检索和使用会话令牌,您必须在基于身份的策略或存储桶策略中,允许对目录存储桶执行 s3express:CreateSession 操作。如果您在 Amazon S3 控制台中通过 Amazon 命令行界面(Amazon CLI)或使用 Amazon SDK 访问 S3 Express One Zone,S3 Express One Zone 会代表您创建会话。有关更多信息,请参阅 CreateSession 授权适用于 S3 Express One Zone 的 Amazon Identity and Access Management(IAM)

创建 IAM 策略并将该策略附加到 IAM 用户(或角色)
  1. 登录 Amazon 管理控制台,并打开 IAM 管理控制台。

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 选择 JSON

  5. 将以下策略复制到策略编辑器窗口。在创建目录存储桶或使用 S3 Express One Zone 之前,您必须向 Amazon Identity and Access Management(IAM)角色或用户授予必要的权限。此示例策略支持访问 CreateSession API 操作(与其它可用区或对象级 API 操作结合使用)和所有区域端点(存储桶级)API 操作。此策略允许将 CreateSession API 操作用于所有目录存储桶,但仅允许将区域端点 API 操作用于指定的目录存储桶。要使用此示例策略,请将 user input placeholders 替换为您自己的信息。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessRegionalEndpointAPIs", "Effect": "Allow", "Action": [ "s3express:DeleteBucket", "s3express:DeleteBucketPolicy", "s3express:CreateBucket", "s3express:PutBucketPolicy", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets" ], "Resource": "arn:aws:s3express:region:account_id:bucket/bucket-base-name--azid--x-s3/*" }, { "Sid": "AllowCreateSession", "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "*" } ] }
  6. 选择下一步

  7. 为该策略命名。

    注意

    S3 Express One Zone 不支持存储桶标签。

  8. 选择创建策略

  9. 创建 IAM 策略后,可以将其附加到 IAM 用户。在导航窗格中,选择策略

  10. 搜索栏中,输入策略的名称。

  11. 操作菜单中,选择附加

  12. 按实体类型筛选下,选择 IAM 用户角色

  13. 搜索字段中,键入您要使用的用户或角色的名称。

  14. 选择附加策略

步骤 1:配置网关 VPC 端点

您可以通过网关虚拟私有云(VPC)端点访问可用区和区域 API 操作。网关端点可让流量在不通过 NAT 网关的情况下到达 S3 Express One Zone。我们强烈建议使用网关端点,因为在使用 S3 Express One Zone 时,此类端点可提供最佳的联网路径。您可以从 VPC 访问 S3 Express One Zone 目录存储桶,而无需为 VPC 配备互联网网关或 NAT 设备,也无需任何额外费用。使用以下过程可配置连接到 S3 Express One Zone 存储类对象和目录存储桶的网关端点。

要访问 S3 Express One Zone,您需要使用不同于标准 Amazon S3 端点的区域和可用区端点。根据您使用的 Amazon S3 API 操作,需要区域端点或可用区端点。有关各端点类型支持的 API 操作的完整列表,请参阅 S3 Express One Zone 支持的 API 操作。您必须通过网关虚拟私有云(VPC)端点访问可用区端点和区域端点。

使用以下过程创建连接到 S3 Express One Zone 存储类对象和目录存储桶的网关端点。

配置网关 VPC 端点
  1. 打开位于 https://console.amazonaws.cn/vpc/ 的 Amazon VPC 控制台。

  2. 在侧导航窗格中的虚拟私有云下,选择端点

  3. 选择创建端点

  4. 为端点创建名称。

  5. 对于 Service category(服务类别),选择 Amazon Web Services 服务

  6. 服务下,使用筛选条件 Type=Gateway 进行搜索,然后选择 com.amazonaws.region.s3express 旁边的选项按钮。

  7. 对于 VPC,选择要在其中创建端点的 VPC。

  8. 对于 Route tables(路由表),选择端点要使用的路由表。Amazon VPC 自动添加路由,将流向服务的流量指向端点网络接口。

  9. 对于策略,请选择完整访问权限以允许所有主体通过 VPC 端点对所有资源执行所有操作。否则,选择自定义以附加 VPC 端点策略,该策略控制主体通过 VPC 端点对资源执行操作的权限。

  10. 选择创建端点

创建网关端点后,您可以使用区域 API 端点和可用区 API 端点来访问 Amazon S3 Express One Zone 存储类对象和目录存储桶。

步骤 2:创建目录存储桶

  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在页面顶部的导航栏中,选择当前所显示 Amazon Web Services 区域的名称。接下来,选择要在其中创建存储桶的区域。

    注意

    要最大程度地减少延迟和成本以及满足法规要求,请选择一个靠近您的区域。在某一区域存储的对象将一直留在该区域,除非您特意将其转移到其他区域。有关 Amazon S3 Amazon Web Services 区域的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Web Services 服务 端点

  3. 在左侧导航窗格中,选择存储桶

  4. 选择创建存储桶

    此时将打开创建存储桶页面。

  5. 常规配置下,查看将在其中创建存储桶的 Amazon Web Services 区域。

  6. 存储桶类型下,请选择目录

    注意
    • 如果您选择的区域不支持目录桶,则桶类型选项将消失,桶类型默认为通用桶。要创建目录桶,您必须选择受支持的区域。有关支持目录桶和 Amazon S3 Express One Zone 存储类的区域列表,请参阅S3 Express One Zone 可用区和区域

    • 在创建存储桶后,便无法更改存储桶类型。

    对于可用区,请选择计算服务本地的可用区。有关支持目录桶和 S3 Express One Zone 存储类的可用区列表,请参阅S3 Express One Zone 可用区和区域

    注意

    创建存储桶后无法更改可用区。

  7. 可用区下,选中复选框以确认在可用区中断时,您的数据可能不可用或丢失。

    重要

    尽管目录桶存储在单个可用区中的多个设备上,但目录桶不会跨可用区冗余存储数据。

  8. 对于存储桶名称,请输入目录存储桶的名称。

    以下命名规则适用于目录存储桶。

    • 在选定的 Amazon Web Services 区域和可用区内是唯一的。

    • 名称的长度必须介于 3(最小)到 63(最大)个字符之间,包括后缀。

    • 仅包含小写字母、数字和连字符(-)。

    • 以字母或数字开头和结尾。

    • 必须包含以下后缀:--azid--x-s3

    • 存储桶名称不得以前缀 xn-- 开头。

    • 存储桶名称不得以前缀 sthree- 开头。

    • 存储桶名称不得以前缀 sthree-configurator 开头。

    • 存储桶名称不得以前缀 amzn-s3-demo- 开头。

    • 存储桶名称不得以后缀 -s3alias 结尾。此后缀是为接入点别名预留的。有关更多信息,请参阅 为您的 S3 存储桶接入点使用存储桶式别名

    • 存储桶名称不得以后缀 --ol-s3 结尾。此后缀是为对象 Lambda 接入点别名预留的。有关更多信息,请参阅 如何为您的 S3 存储桶对象 Lambda 接入点使用存储桶式别名

    • 存储桶名称不得以后缀 .mrap 结尾。此后缀预留用于多区域接入点名称。有关更多信息,请参阅 命名 Amazon S3 多区域接入点的规则

    后缀将自动添加到您使用控制台创建目录存储桶时提供的基本名称中。此后缀包括您选择的可用区的可用区 ID。

    创建存储桶后,便无法更改其名称。有关给存储桶命名的更多信息,请参阅存储桶命名规则

    重要

    请勿在桶名称中包含敏感信息,如账号。存储桶名称会显示在指向存储桶中的对象的 URL 中。

  9. 对象所有权下,将自动启用强制桶拥有者设置,并禁用所有访问控制列表(ACL)。对于目录存储桶,无法启用 ACL。

    已禁用 ACL
    • 强制存储桶拥有者(默认)– ACL 已禁用,存储桶拥有者自动拥有并完全控制存储桶中的每个对象。ACL 不再影响对 S3 存储桶中数据的访问权限。存储桶专门使用策略来定义访问控制。

      Amazon S3 中的大多数现代使用案例不再需要使用 ACL。有关更多信息,请参阅 为您的存储桶控制对象所有权和禁用 ACL。

  10. 此桶的屏蔽公共访问权限设置下,目录桶的所有屏蔽公共访问权限设置已自动启用。无法修改目录桶的这些设置。有关阻止公共访问的更多信息,请参阅阻止对您的 Amazon S3 存储的公有访问

  11. 服务器端加密设置下,目录存储桶使用具有 Amazon S3 托管式密钥(SSE-S3)的服务器端加密来加密数据。

  12. 请选择创建存储桶

    创建存储桶后,您可以向存储桶中添加文件和文件夹。有关更多信息,请参阅 使用目录桶中的对象

以下步骤演示如何使用 Amazon S3 控制台中的“导入”操作在目录存储桶中填充数据。

步骤 3:将数据导入到目录存储桶

要完成此步骤,您必须有一个包含对象的通用存储桶,并且它与目录存储桶位于同一个 Amazon Web Services 区域中。

在 Amazon S3 中创建目录存储桶后,可以使用 Amazon S3 控制台中的“导入”操作在新的存储桶中填充数据。导入过程可让您选择要从中导入数据的前缀或通用存储桶,而无需单独指定要复制的所有对象,从而简化了将数据复制到目录存储桶的过程。导入过程使用 S3 批量操作,这会复制所选前缀或通用存储桶中的对象。可以通过 S3 批量操作任务详细信息页面监控“导入”复制任务的进度。

使用“导入”操作
  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在页面顶部的导航栏中,选择当前所显示 Amazon Web Services 区域的名称。接下来,选择与目录存储桶所在的可用区关联的区域。

  3. 在左侧导航窗格中,选择存储桶,然后选择目录存储桶选项卡。选择要将对象导入到的目录存储桶。

  4. 选择导入

  5. 对于,输入包含要导入的对象的通用存储桶(或包含前缀的存储桶路径)。要从列表中选择现有的通用存储桶,请选择浏览 S3

  6. 权限部分,可以选择自动生成 IAM 角色。或者,可以从列表中选择 IAM 角色,或直接输入 IAM 角色 ARN。

    • 要允许 Amazon S3 代表您创建新的 IAM 角色,请选择创建新的 IAM 角色

      注意

      如果您的源对象使用具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)进行加密,请不要选择创建新的 IAM 角色选项。而是指定具有 kms:Decrypt 权限的现有 IAM 角色。

      Amazon S3 将使用此权限来解密您的对象。在导入过程中,Amazon S3 将使用具有 Amazon S3 托管密钥的服务器端加密(SSE-S3)对这些对象进行重新加密。

    • 要从列表中选择现有 IAM 角色,请选择从现有 IAM 角色中选择

    • 要通过输入 Amazon 资源名称(ARN)指定现有 IAM 角色,请选择输入 IAM 角色 ARN,然后在相应字段中输入 ARN。

  7. 查看目标复制的对象设置部分中显示的信息。如果目标部分中的信息正确,请选择导入以启动复制作业。

    Amazon S3 控制台在批量操作页面上显示新作业的状态。有关作业的更多信息,请选择作业名称旁边的选项按钮,然后在操作菜单上选择查看详细信息。要打开要导入对象的目录存储桶,请选择查看导入目标

步骤 4:手动将对象上传到目录存储桶

也可以手动将对象上传到目录存储桶。

手动上传对象
  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在页面右上角的导航栏中,选择当前所显示的 Amazon Web Services 区域的名称。接下来,选择与目录存储桶所在的可用区关联的区域。

  3. 在左侧导航窗格中,选择存储桶

  4. 选择目录桶选项卡。

  5. 选择要将文件夹或文件上传到的桶的名称。

    注意

    如果您选择的目录存储桶与本教程前面的步骤中使用的目录存储桶相同,则目录存储桶将包含从“导入”工具上传的对象。请注意,这些对象现在存储在 S3 Express One Zone 存储类中。

  6. 对象列表中,选择上传

  7. 上传页面上,执行以下操作之一:

    • 将文件和文件夹拖放到虚线上传区域。

    • 选择添加文件添加文件夹,选择要上传的文件或文件夹,然后选择打开上传

  8. 校验和下,选择要使用的校验和函数

    注意

    我们建议使用 CRC32 和 CRC32C,以便在 S3 Express One Zone 存储类上获得最佳性能。有关更多信息,请参阅其它 S3 校验和最佳实践

    (可选)如果您要上传大小不到 16 MB 的单个对象,也可以指定预先计算的校验和值。当您提供预先计算的值时,Amazon S3 会将该值与它使用所选校验和函数计算的值进行比较。如果值不匹配,则上传不会开始。

  9. 权限属性部分中的选项会自动设置为默认设置,无法修改。将自动启用“屏蔽公共访问权限”,而无法为目录桶启用 S3 版本控制和 S3 对象锁定。

    (可选)如果要以键值对的形式向对象添加元数据,请展开属性部分,然后在元数据部分中选择添加元数据

  10. 要上传列出的文件和文件夹,请选择上传

    Amazon S3 会上传您的对象和文件夹。上传完成后,您可以在上传:状态页面上看到成功消息。

    您已成功创建了目录存储桶并将对象上传到存储桶。

步骤 5:清空目录存储桶

可以使用 Amazon S3 控制台来清空 Amazon S3 目录存储桶。

清空目录桶
  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在页面右上角的导航栏中,选择当前所显示的 Amazon Web Services 区域的名称。接下来,选择与目录存储桶所在的可用区关联的区域。

  3. 在左侧导航窗格中,选择存储桶

  4. 选择目录桶选项卡。

  5. 选择您要清空的桶名称旁边的选项按钮,然后选择清空

  6. 清空存储桶页面上,通过在文本字段中输入 permanently delete 来确认要清空存储桶,然后选择清空

  7. 清空桶:状态页面上监控桶清空过程的进度。

步骤 6:删除目录存储桶

清空目录存储桶并中止所有正在进行的分段上传后,可以使用 Amazon S3 控制台删除存储桶。

删除目录存储桶
  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在页面右上角的导航栏中,选择当前所显示的 Amazon Web Services 区域的名称。接下来,选择与目录存储桶所在的可用区关联的区域。

  3. 在左侧导航窗格中,选择存储桶

  4. 选择目录桶选项卡。

  5. 目录桶列表中,选择要删除的桶旁边的选项按钮。

  6. 选择删除

  7. 删除桶页面上,在文本字段中输入桶的名称以确认删除您的桶。

    重要

    无法撤消删除目录存储桶的操作。

  8. 要删除您的目录存储桶,请选择删除存储桶

后续步骤

在本教程中,您学习了如何创建目录存储桶和使用 S3 Express One Zone 存储类。完成本教程后,您可以探索要与 S3 Express One Zone 存储类一起使用的相关 Amazon 服务。

您可以将以下 Amazon Web Services 服务与 S3 Express One Zone 存储类配合使用,以支持您的特定低延迟使用场景。

  • Amazon Elastic Compute Cloud(Amazon EC2)– Amazon EC2 在 Amazon Web Services 云 中提供安全可扩展的计算容量。使用 Amazon EC2 可减少前期的硬件投入,因此您能够快速开发和部署应用程序。您可以使用 Amazon EC2 启动所需数量的虚拟服务器,配置安全性和联网以及管理存储。

  • Amazon Lambda – Lambda 是一项计算服务,可使您无需预置或管理服务器即可运行代码。您在存储桶上配置通知设置,并向 Amazon S3 授予权限来根据函数的基于资源的权限策略调用函数。

  • Amazon Elastic Kubernetes Service(Amazon EKS)– Amazon EKS 是一项托管式服务,无需在 Amazon 上安装、操作和维护自己的 Kubernetes 控制面板。Kubernetes 是一个开源系统,用于自动管理、扩展和部署容器化应用程序。

  • Amazon Elastic Container Service(Amazon ECS)– Amazon ECS 是完全托管的容器编排服务,可协助您轻松地部署、管理和扩展容器化应用程序。

  • Amazon EMR – Amazon EMR 是一个托管式集群平台,可简化在 Amazon 上运行大数据框架(如 Apache Hadoop 和 Apache Spark)来处理和分析海量数据的过程。

  • Amazon Athena – Athena 是一种交互式查询服务,方便通过使用标准 SQL 直接分析 Amazon S3 中的数据。还可以使用 Athena,通过 Apache Spark 以交互方式运行数据分析,而无需规划、配置或管理资源。在 Athena 上运行 Apache Spark 应用程序时,您需要提交 Spark 代码以供处理并直接接收结果。

  • Amazon Glue Data Catalog – Amazon Glue 是一项无服务器数据集成服务,可让使用分析功能的用户轻松发现、准备、移动和集成来自多个来源的数据。您可以使用 Amazon Glue 进行分析、机器学习和应用程序开发。AmazonGlue Data Catalog 是一个集中式存储库,用于存储有关贵组织数据集的元数据。它充当数据来源的位置、架构和运行时指标的索引。

  • Amazon SageMaker Runtime 模型训练 – Amazon SageMaker Runtime 是一项完全托管式机器学习服务。借助 SageMaker Runtime,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型,然后直接将模型部署到生产就绪托管环境中。

有关 S3 Express One Zone 的更多信息,请参阅什么是 S3 Express One Zone?S3 Express One Zone 有哪些不同?