目录存储桶和 S3 Express One Zone
Amazon S3 Express One Zone 是高性能的单区 Amazon S3 存储类,专门用于为延迟要求极高的应用程序提供稳定的毫秒级数据访问。S3 Express One Zone 是目前具有极低延迟的云对象存储类,相比 S3 Standard,其数据访问速度要快 10 倍,且请求成本低 50%。请求的完成速度实现了数量级的提升,应用程序可以直接从中获益。S3 Express One Zone 提供与其它 S3 存储类相似的性能弹性。
与 Amazon S3 存储类一样,您无需事先规划或预调配容量或吞吐量需求。您可以根据需要纵向扩展或缩减,并通过 Amazon S3 API 访问数据。
S3 Express One Zone 是第一种可以在其中选择单个可用区的 S3 存储类,您可以选择将您的对象存储与计算资源联合托管在一个位置,从而提供尽可能高的访问速度。此外,为了进一步提高访问速度并支持每秒数十万个请求,S3 Express One Zone 存储类中的数据存储在新的桶类型中:Amazon S3 目录桶。无论键名或访问模式如何,每个目录存储桶均可支持数十万的每秒事务数(TPS)。
Amazon S3 Express One Zone 存储类设计为在单个可用区内提供 99.95% 的可用性,并由 Amazon S3 服务等级协议
S3 Express One Zone 非常适合任何需要尽可能减少访问对象所需延迟的应用程序。此类应用程序可以是人机交互式工作流,例如视频编辑,在这种情况下,创意专业人士需要在通过用户界面访问内容时获得快速的响应。对数据响应能力具有类似要求的分析和机器学习工作负载也可以从 S3 Express One Zone 中获益,尤其是大量访问小文件或者有大量随机访问情况时。S3 Express One Zone 可以与其它 AWS 服务一起使用来支持分析和人工智能与机器学习(AI/ML)工作负载,例如 Amazon EMR、Amazon SageMaker 和 Amazon Athena。
使用 S3 Express One Zone 时,您可以使用网关 VPC 端点,与虚拟私有云(VPC)中的目录桶进行交互。借助网关端点,您可以从 VPC 访问 S3 Express One Zone 目录桶,而无需为 VPC 配备互联网网关或 NAT 设备,也无需任何额外费用。
对于目录桶,您可以使用您用于通用桶和其它存储类的相同 Amazon S3 API 操作和特征。这些包括适用于 Amazon S3 的 Mountpoint、具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)具有 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)、S3 批量操作和 S3 屏蔽公共访问权限。您可以通过 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、AWS SDK 和 Amazon S3 REST API 访问 S3 Express One Zone。
有关 S3 Express One Zone 的更多信息,请参阅以下主题。
概述
为了优化性能和减少延迟,S3 Express One Zone 引入了以下新概念。
单可用区
Amazon S3 Express One Zone 存储类设计为在单个可用区内提供 99.95% 的可用性,并由 Amazon S3 服务等级协议
可用区是 AWS 区域 中一个或多个具有冗余电源、网络和连接的离散数据中心。创建目录存储桶时,您可以选择存储桶所在的可用区以及 AWS 区域。
目录存储桶
Amazon S3 桶有两种类型:S3 通用桶和 S3 目录桶。通用存储桶是默认的 Amazon S3 存储桶类型,用于绝大多数 S3 应用场景。目录存储桶仅使用 S3 Express One Zone 存储类,该类专为需要稳定的毫秒级延迟的工作负载或注重性能的应用程序而设计。选择最适合您的应用程序和性能要求的桶类型。
目录桶将数据按层次结构组织到目录中,而不是通用桶的扁平存储结构。目录存储桶没有前缀限制,单个目录可以横向扩展。
目录存储桶使用 S3 Express One Zone 存储类,该类专为注重性能的应用程序使用而构建。使用 S3 Express One Zone,您可以选择单个可用区,并可以选择将您的对象存储与计算资源放在同一个位置,从而提供尽可能高的访问速度。这与通用桶不同,后者在 AWS 区域的多个可用区中以冗余方式存储对象。
有关目录存储桶的更多信息,请参阅目录存储桶概述。有关通用存储桶的更多信息,请参阅存储桶概述。
端点和网关 VPC 端点
目录桶的桶管理 API 操作可通过区域端点使用,称为区域端点 API 操作。区域端点 API 操作的示例包括 CreateBucket
和 DeleteBucket
。创建目录存储桶后,您可以使用可用区端点 API 操作来上传和管理目录存储桶中的对象。可用区端点 API 操作可通过可用区端点执行。可用区端点 API 操作的示例包括 PutObject
和 CopyObject
。
您可以使用网关 VPC 端点从 VPC 访问 S3 Express One Zone。创建网关端点后,您可以将其添加作为路由表中的目标,用于从您的 VPC 流向 S3 Express One Zone 的流量。与 Amazon S3 一样,使用网关端点不会产生任何额外费用。有关如何配置网关 VPC 端点的更多信息,请参阅 S3 Express One Zone 联网
基于会话的授权
借助 S3 Express One Zone,您可以通过基于会话的新机制,对请求进行身份验证和授权,该机制经过优化,可提供极低的延迟。您可以使用 CreateSession
来请求临时凭证,以便提供对存储桶的低延迟访问。这些临时凭证的作用范围限制为特定的 S3 目录存储桶。会话令牌仅用于可用区(对象级)操作(CopyObject 除外)。有关更多信息,请参阅 使用 CreateSession 对可用区端点 API 操作进行授权。
S3 Express One Zone 支持的 AWS SDK 代表您处理会话的建立和刷新。为了保护您的会话,临时安全凭证在 5 分钟后过期。您在下载和安装 AWS SDK 并配置必要的 AWS Identity and Access Management(IAM)权限后,便可立即开始使用 API 操作。
S3 Express One Zone 的功能
以下 S3 功能可用于 S3 Express One Zone。有关支持的 API 操作和不支持的特征的完整列表,请参阅了解 S3 Express One Zone 有哪些不同。
访问管理和安全性
对于目录存储桶,您可以使用以下功能来审计和管理访问权限。默认情况下,目录存储桶为私有,只有被明确授予访问权限的用户才可以访问。与可以在存储桶、前缀或对象标签级设置访问控制边界的通用存储桶不同,目录存储桶只能在存储桶级设置访问控制边界。有关更多信息,请参阅 使用 IAM 对区域端点 API 进行授权。
-
S3 屏蔽公共访问权限 – 默认情况下,所有 S3 屏蔽公共访问权限设置均在桶级启用。无法修改此默认设置。
-
S3 对象所有权(默认情况下为强制桶拥有者)– 目录桶不支持访问控制列表(ACL)。目录桶对于 S3 对象所有权自动使用强制桶拥有者设置。强制桶拥有者意味着 ACL 被禁用,桶拥有者自动拥有并完全控制桶中的每个对象。无法修改此默认设置。
-
AWS Identity and Access Management(IAM)– IAM 有助于您安全地控制对目录存储桶的访问权限。您可以使用 IAM,通过
s3express:CreateSession
操作授予对桶管理(区域)API 操作和对象管理(可用区)API 操作的访问权限。有关更多信息,请参阅 使用 IAM 对区域端点 API 进行授权。与对象管理操作不同,存储桶管理操作不能跨账户。只有存储桶拥有者可以执行这些操作。 -
存储桶策略 – 使用基于 IAM 的策略语言,为目录存储桶配置基于资源的权限。您还可以使用 IAM 来控制对
CreateSession
API 的访问权限,这允许您使用可用区或对象管理 API 操作。您可以向可用区 API 操作授予同账户或跨账户访问权限。有关 S3 Express One Zone 权限和策略的更多信息,请参阅使用 IAM 对区域端点 API 进行授权。 -
适用于 S3 的 IAM Access Analyzer – 评估和监控您的访问策略,确保这些策略仅提供对 S3 资源的预期访问权限。
日记账记录和监控
S3 Express One Zone 使用以下 S3 日志记录和监控工具,您可以使用这些工具来监控和控制资源的使用方式:
-
Amazon CloudWatch 指标 – 通过使用 CloudWatch 收集和跟踪指标,监控您的 AWS 资源和应用程序。S3 Express One Zone 使用与其他 Amazon S3 存储类相同的 CloudWatch 命名空间(
AWS/S3
),并支持目录存储桶的日常存储指标:BucketSizeBytes
和NumberOfObjects
。有关更多信息,请参阅 使用 Amazon CloudWatch 监控指标。 -
AWS CloudTrail 日志 – AWS CloudTrail 是一项 AWS 服务,通过记录用户、角色或 AWS 服务执行的操作,协助您实现运营和风险审计、治理以及 AWS 账户合规性。对于 S3 Express One Zone,CloudTrail 将区域端点 API 操作(例如
CreateBucket
和PutBucketPolicy
)捕获为管理事件,并将可用区 API 操作(例如GetObject
和PutObject
)捕获为数据事件。这些事件包括了在 AWS Management Console、AWS Command Line Interface(AWS CLI)、AWS SDK 和 AWS API 操作中执行的操作。有关更多信息,请参阅使用 AWS CloudTrail 为 S3 Express One Zone 记录日志。
注意
S3 Express One Zone 不支持 Amazon S3 服务器访问日志。
对象管理
创建目录桶后,您可以使用 Amazon S3 控制台、AWS SDK 和 AWS CLI 管理对象存储。以下特征可用于 S3 Express One Zone 的对象管理:
AWS SDK 和客户端库
创建目录桶并将对象上传到桶后,您可以使用以下方法管理对象存储。
-
适用于 Amazon S3 的 Mountpoint
– 适用于 Amazon S3 的 Mountpoint 是一种开源文件客户端,可提供高吞吐量的访问,从而降低 Amazon S3 上数据湖的计算成本。适用于 Amazon S3 的 Mountpoint 将本地文件系统 API 调用转换为 S3 对象 API 调用,如 GET
和LIST
。它非常适合有大量读取操作的数据湖工作负载,在这种情况下需要处理数 PB 的数据,且需要 Amazon S3 提供的高弹性吞吐量来跨数千个实例进行纵向扩展和缩减。 -
S3A
– S3A 是推荐使用的 Hadoop 兼容接口,用于访问 Amazon S3 中的数据存储。S3A 取代了 S3N Hadoop 文件系统客户端。 -
AWS 上的 PyTorch – AWS 上的 PyTorch 是一个开源深度学习框架,它简化了机器学习模型开发以及将其部署到生产环境的过程。
-
AWS SDK
– 为 Amazon S3 开发应用程序时,您可以使用 AWS SDK。AWS SDK 包装了底层 Amazon S3 REST API,可以简化您的编程任务。有关将 AWS SDK 与 S3 Express One Zone 结合使用的更多信息,请参阅AWS SDK。
数据保护和加密
存储在目录桶中的对象自动通过采用 Amazon S3 托管式密钥的服务器端加密(SSE-S3)进行加密。目录存储桶还支持具有 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)。目录存储桶不支持具有客户提供的加密密钥的服务器端加密(SSE-C),也不支持具有 AWS KMS keys的双层服务器端加密(DSSE-KMS)。有关更多信息,请参阅 S3 Express One Zone 中的数据保护和加密。
S3 Express One Zone 可让您选择用于在上传或下载过程中验证数据的校验和算法。您可以选择以下安全哈希算法(SHA)或循环冗余校验(CRC)数据完整性检查算法之一:CRC32、CRC32C、SHA-1 和 SHA-256。S3 Express One Zone 存储类不支持基于 MD5 的校验和。
有关更多信息,请参阅 其他 S3 校验和最佳实践。
AWS 签名版本 4(SigV4)
S3 Express One Zone 使用 AWS 签名版本 4(SigV4)。SigV4 是一种签名协议,用于对通过 HTTPS 发送到 Amazon S3 的请求进行身份验证。S3 Express One Zone 使用 AWS Sigv4 对请求签名。有关更多信息,请参阅《Amazon Simple Storage Service API》参考中的验证请求 (AWS Signature Version 4)。
强一致性
在所有 AWS 区域中,S3 Express One Zone 为针对目录桶中对象的 PUT
和 DELETE
请求,提供了可靠的先写后读一致性。有关更多信息,请参阅 Amazon S3 数据一致性模型。
相关服务
您可以将以下 AWS 服务与 S3 Express One Zone 存储类配合使用,以支持您的特定低延迟使用场景。
-
Amazon Elastic Compute Cloud(Amazon EC2)– Amazon EC2 在 AWS Cloud 中提供安全可扩展的计算容量。使用 Amazon EC2 可减少前期的硬件投入,因此您能够快速开发和部署应用程序。您可以使用 Amazon EC2 启动所需数量的虚拟服务器,配置安全性和联网以及管理存储。
-
AWS Lambda – Lambda 是一项计算服务,可使您无需预置或管理服务器即可运行代码。您在存储桶上配置通知设置,并向 Amazon S3 授予权限来根据函数的基于资源的权限策略调用函数。
-
Amazon Elastic Kubernetes Service(Amazon EKS)– Amazon EKS 是一项托管式服务,无需在 AWS 上安装、操作和维护自己的 Kubernetes 控制面板。Kubernetes
是一个开源系统,用于自动管理、扩展和部署容器化应用程序。 -
Amazon Elastic Container Service(Amazon ECS)– Amazon ECS 是完全托管的容器编排服务,可协助您轻松地部署、管理和扩展容器化应用程序。
-
Amazon Athena – Athena 是一种交互式查询服务,方便通过使用标准 SQL 直接分析 Amazon S3 中的数据。还可以使用 Athena,通过 Apache Spark 以交互方式运行数据分析,而无需规划、配置或管理资源。在 Athena 上运行 Apache Spark 应用程序时,您需要提交 Spark 代码以供处理并直接接收结果。
-
Amazon SageMaker Runtime 模型训练 – Amazon SageMaker Runtime 是一项完全托管式机器学习服务。借助 SageMaker Runtime,数据科学家和开发人员可以快速、轻松地构建和训练机器学习模型,然后直接将模型部署到生产就绪托管环境中。
-
AWS Glue – AWS Glue 是一项无服务器数据集成服务,可让使用分析功能的用户轻松发现、准备、移动和集成来自多个来源的数据。您可以使用 AWS Glue 进行分析、机器学习和应用程序开发。AWS Glue 还包括用于编写、运行任务和实施业务工作流程的额外生产率和数据操作工具。
-
Amazon EMR – Amazon EMR 是一个托管式集群平台,可简化在 AWS 上运行大数据框架(如 Apache Hadoop 和 Apache Spark)来处理和分析海量数据的过程。
后续步骤
有关使用 S3 Express One Zone 存储类和目录存储桶的更多信息,请参阅以下主题: