亚马逊AWS官方博客

宣布推出全新的 Amazon S3 Express One Zone 高性能存储类

全新的 Amazon S3 Express One Zone 存储类旨在提供比 S3 Standard 存储类高出 10 倍的性能,同时每秒可处理数十万个请求,并且延迟始终保持在个位数毫秒级,因此非常适合存储最常访问的数据和要求最苛刻的应用程序。将对象存储和复制到单个 AWS 可用区内的专门构建硬件上,这样就可将存储和计算(Amazon EC2、Amazon ECS 和 Amazon EKS)资源放在同一位置,以进一步减少延迟。

Amazon S3 Express One Zone
由于计算和存储之间的延迟非常低,Amazon S3 Express One Zone 存储类可以协助显著缩短数据密集型应用程序的运行时间,尤其是使用成百上千个并行计算节点处理大量数据以进行 AI/ML 训练、财务建模、媒体处理、实时广告投放、高性能计算等操作的应用程序。这些应用程序通常会在相对较短的时间段内保存数据,但在此期间以非常高的频率访问数据。

此全新的存储类可以处理任何规模的对象,但对于较小的对象来说尤其作用明显。这是因为对于较小的对象,第一个字节的处理时间与最后一个字节的处理时间非常接近。在所有存储系统中,较大的对象需要更长的时间进行流式处理,因为在传输过程中需要下载更多的数据,并且因此存储延迟对对象读取总时间的影响较小。因此,与大型对象相比,较小的对象可以从较低的存储延迟中获得巨大的优势。由于 S3 Express One Zone 具有持续的极低延迟,因此与 S3 Standard 相比,读取小型对象的速度最多可以提升 10 倍。

Amazon S3 Express One Zone 提供的极低延迟,加上比 S3 Standard 存储类低 50% 的请求成本,意味着您的 Spot按需计算资源可更高效地使用,并且可以更早关闭,从而降低总体处理成本。

每个 Amazon S3 Express One Zone 目录存储桶都存在于选择的单个可用区中,可以使用一组常用的 S3 API 函数进行访问:CreateBucketPutObjectGetObjectListObjectsV2 等。这些存储桶还支持一组精心选择的 S3 功能,包括字节范围提取分段上传分段复制预签名 URLS3 访问分析器。可以直接上传对象、编写使用 CopyObject 的代码或使用 S3 批量操作

为了减少延迟并使该存储类尽可能高效和可扩展,我们引入新的存储桶类型、新的身份验证模型和存储桶命名惯例:

新的存储桶类型 – 全新的目录存储桶特定用于该存储类别,每秒支持处理数十万个请求。它们具有分层命名空间,并以类似目录的方式存储对象键名称。路径分隔符必须为“/”,并且提供给 ListObjectsV2 的任何前缀都必须以分隔符结尾。此外,列表操作会在不先排序结果的情况下返回结果,因此无法执行“特定位置之后开始”的检索。

新的身份验证模型 – 全新的 CreateSession 函数返回会话令牌,该令牌授予对特定存储桶的访问权限,为期五分钟。在对运行于存储桶或其中对象的其他 S3 API 函数发出的请求中必须包含此令牌,CopyObject 除外,该函数需要 IAM 凭证。最新版本的 AWS SDK 会自动处理会话创建。

存储桶命名 – 目录存储桶名称在其 AWS 区域内必须是唯一的,并且必须以特殊格式的后缀指定可用区 ID。如果我的基础存储桶名称是 jbarr,并且它存在于可用区 use1-az5(美国东部(弗吉尼亚北部)区域中的可用区 5)中,那么我向 CreateBucket 提供的名称将是 jbarr--use1-az5--x-s3。尽管存储桶存在于特定的可用区内,但可以从该区域中的其他可用区访问该存储桶,并且对于从一个可用区中的计算资源到同一区域内另一个可用区中的目录存储桶的请求,不会收取数据传输费用。

Amazon S3 Express One Zone 实际操作
接下来使用此全新的存储类。我将重点介绍命令行,但也可以使用 AWS 管理控制台和 API 访问。

我的 EC2 实例正在我的 us-east-1f 可用区中运行。我使用 jq 将此值映射到可用区 ID:

$ aws ec2 describe-availability-zones --output json | \
  jq -r  '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'
use1-az5

我创建一个存储桶配置(s3express-bucket-config.json)并包括 ID:

{
        "Location" :
        {
                "Type" : "AvailabilityZone",
                "Name" : "use1-az5"
        },
        "Bucket":
        {
                "DataRedundancy" : "SingleAvailabilityZone",
                "Type"           : "Directory"
        }
}

安装最新版本的 AWS 命令行界面(AWS CLI)后,我创建自己的目录存储桶:

$ aws s3api create-bucket --bucket jbarr--use1-az5--x-s3 \
  --create-bucket-configuration file://s3express-bucket-config.json \
  --region us-east-1
-------------------------------------------------------------------------------------------
|                                       CreateBucket                                      |
+----------+------------------------------------------------------------------------------+
|  Location|  https://jbarr--use1-az5--x-s3.s3express-use1-az5.us-east-1.amazonaws.com/   |
+----------+------------------------------------------------------------------------------+

然后,我可以像往常一样使用目录存储桶作为其他 CLI 命令的目的地(第二个 aws 是我解压缩 AWS CLI 的目录):

$ aws s3 sync aws s3://jbarr--use1-az5--x-s3

列出目录存储桶的内容时,我看到 StorageClassEXPRESS_ONEZONE

$ aws s3api list-objects-v2 --bucket jbarr--use1-az5--x-s3 --output json | \
  jq -r '.Contents[] | {Key: .Key, StorageClass: .StorageClass}'
...
{
  "Key": "install",
  "StorageClass": "EXPRESS_ONEZONE"
}
...

S3 的管理控制台在单独的选项卡上显示通用存储桶和目录存储桶:

如上所示,我可以使用导入按钮将现有存储桶(或内容的前缀子集)的内容导入目录存储桶中。我选择一个源存储桶,单击“导入”,然后输入将用于生成源存储桶清单和创建 S3 批量操作作业的参数。

作业已创建并开始执行:

注意事项
以下是有关此全新 S3 存储类的一些重要事项:

区域 – Amazon S3 Express One Zone 在美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(东京)和欧洲地区(斯德哥尔摩)区域推出,并计划在一段时间内扩展到其他区域。

其他 AWS 服务 – 可以将 Amazon S3 Express One Zone 与其他 AWS 服务(包括Amazon SageMaker Model TrainingAmazon AthenaAmazon EMRAWS Glue Data Catalog)结合使用,以加速处理您的机器学习和分析工作负载。还可以使用适用于 Amazon S3 的 Mountpoint,以面向文件的方式处理您的 S3 对象。

定价 – 与其他 S3 存储类一样,按使用量付费方式定价。在美国东部(弗吉尼亚州北部)区域,您每月支付 0.16 USD/GB,每个对象的最低计费时间为一小时,某些请求类型还会额外收费。对于任何超过 512KB 的请求部分,您需要按 GB 额外支付费用。有关更多信息,请参阅 Amazon S3 定价页面。

耐用性 – 在全部或部分 AWS 可用区丢失或损坏的极少数情况下,One Zone 存储类中的数据可能会丢失。例如,火灾和水灾等事件可能导致数据丢失。除了这些类型的事件外,我们的 One Zone 存储类使用与区域存储类相似的工程设计来保护对象免受独立磁盘、主机和机架级故障的影响,并且每种类型都旨在提供 99.999999999% 的数据耐用性。

SLA – Amazon S3 Express One Zone 旨在提供 99.95% 的可用性,可用性 SLA 为 99.9%;有关信息,请参阅 Amazon S3 服务等级协议页面。

这一新存储类现已推出,您可以立即开始使用!

了解更多
Amazon S3 Express One Zone

Jeff