全新的对象存储服务 Amazon S3 Express One Zone 旨在提供比 Amazon S3 Standard 高出10倍的性能,同时每秒可处理数十万个请求,并且延迟始终保持在个位数毫秒级,因此非常适合存储最常访问的数据和要求最苛刻的应用程序。将对象存储和复制到单个亚马逊云科技可用区内的专门构建硬件上,这样就可将存储和计算(Amazon EC2、Amazon ECS 和 Amazon EKS)资源放在同一位置,以进一步减少延迟。
Amazon S3 Express One Zone :
https://aws.amazon.com/s3/storage-classes/express-one-zone/
Amazon S3 Express One Zone
由于计算和存储之间的延迟非常低,对象存储服务 Amazon S3 Express One Zone 可以协助显著缩短数据密集型应用程序的运行时间,尤其是使用成百上千个并行计算节点处理大量数据以进行 AI/ML 训练、财务建模、媒体处理、实时广告投放、高性能计算等操作的应用程序。这些应用程序通常会在相对较短的时间段内保存数据,但在此期间以非常高的频率访问数据。
此全新的对象存储服务可以处理任何规模的对象,但对于较小的对象来说尤其作用明显。这是因为对于较小的对象,第一个字节的处理时间与最后一个字节的处理时间非常接近。在所有存储系统中,较大的对象需要更长的时间进行流式处理,因为在传输过程中需要下载更多的数据,并且因此存储延迟对对象读取总时间的影响较小。因此,与大型对象相比,较小的对象可以从较低的存储延迟中获得巨大的优势。由于对象存储服务 Amazon S3 Express One Zone 具有持续的极低延迟,因此与 Amazon S3 Standard 相比,读取小型对象的速度最多可以提升 10 倍。
对象存储服务 Amazon S3 Express One Zone 提供的极低延迟,加上比对象存储服务 Amazon S3 Standard 低 50% 的请求成本,意味着您的 Spot 和按需计算资源可更高效地使用,并且可以更早关闭,从而降低总体处理成本。
每个对象存储服务 Amazon S3 Express One Zone 目录存储桶都存在于选择的单个可用区中,可以使用一组常用的 S3 API 函数进行访问:CreateBucket、PutObject、GetObject、ListObjectsV2 等。这些存储桶还支持一组精心选择的 Amazon S3 功能,包括字节范围提取、分段上传、分段复制、预签名 URL 和 S3 对象存储访问分析器。可以直接上传对象、编写使用 CopyObject 的代码或使用 Amazon S3 对象存储批量操作。
为了减少延迟并使该对象存储服务尽可能高效和可扩展,我们引入新的存储桶类型、新的身份验证模型和存储桶命名惯例:
新的存储桶类型 – 全新的目录存储桶特定用于该存储类别,每秒支持处理数十万个请求。它们具有分层命名空间,并以类似目录的方式存储对象键名称。路径分隔符必须为“ / ”,并且提供给 ListObjectsV2 的任何前缀都必须以分隔符结尾。此外,列表操作会在不先排序结果的情况下返回结果,因此无法执行“特定位置之后开始”的检索。
新的身份验证模型 – 全新的 CreateSession 函数返回会话令牌,该令牌授予对特定存储桶的访问权限,为期五分钟。在对运行于存储桶或其中对象的其他 S3 API 函数发出的请求中必须包含此令牌,CopyObject 除外,该函数需要 IAM 凭证。最新版本的 Amazon SDK 会自动处理会话创建。
存储桶命名 – 目录存储桶名称在其亚马逊云科技区域内必须是唯一的,并且必须以特殊格式的后缀指定可用区 ID。如果我的基础存储桶名称是 jbarr,并且它存在于可用区 use1-az5(美国东部(弗吉尼亚北部)区域中的可用区 5)中,那么我向 CreateBucket 提供的名称将是 jbarr--use1-az5--x-s3。尽管存储桶存在于特定的可用区内,但可以从该区域中的其他可用区访问该存储桶,并且对于从一个可用区中的计算资源到同一区域内另一个可用区中的目录存储桶的请求,不会收取数据传输费用。
Amazon S3 Express One Zone 实际操作
接下来使用此全新的对象存储服务。我将重点介绍命令行,但也可以使用亚马逊云科技管理控制台和 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"
}
}
左滑查看更多
安装最新版本的亚马逊云科技命令行界面(Amazon CLI)后,我创建自己的目录存储桶:
亚马逊云科技命令行界面(Amazon CLI)
https://aws.amazon.com/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 命令的目的地(第二处是解压缩 Amazon CLI 的目录):
$ aws s3 sync aws s3://jbarr--use1-az5--x-s3
左滑查看更多
列出目录存储桶的内容时,我看到 StorageClass 是 EXPRESS_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 批量操作
https://aws.amazon.com/s3/features/batch-operations/
作业已创建并开始执行:
注意事项
以下是有关此全新对象存储服务 Amazon S3 的一些重要事项:
区域 – 对象存储服务Amazon S3 Express One Zone 在美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(东京)和欧洲地区(斯德哥尔摩)区域推出,并计划在一段时间内扩展到其他区域。
其他亚马逊云科技服务 – 可以将对象存储服务 Amazon S3 Express One Zone 与其他亚马逊云科技服务(包括 Amazon SageMaker Model Training、Amazon Athena、Amazon EMR 和 Amazon Glue Data Catalog)结合使用,以加速处理您的机器学习和分析工作负载。还可以使用适用于 Amazon S3 对象存储的 Mountpoint,以面向文件的方式处理您的 S3 对象。
定价 – 与其他对象存储服务 Amazon S3 一样,按使用量付费方式定价。在美国东部(弗吉尼亚州北部)区域,您每月支付 0.16 USD/GB,每个对象的最低计费时间为一小时,某些请求类型还会额外收费。对于任何超过 512KB 的请求部分,您需要按 GB 额外支付费用。有关更多信息,请参阅 Amazon S3 对象存储定价页面。
耐用性 – 在全部或部分亚马逊云科技可用区丢失或损坏的极少数情况下,对象存储服务 Amazon S3 One Zone 中的数据可能会丢失。例如,火灾和水灾等事件可能导致数据丢失。除了这些类型的事件外,我们的 One Zone 存储类使用与区域存储类相似的工程设计来保护对象免受独立磁盘、主机和机架级故障的影响,并且每种类型都旨在提供 99.999999999% 的数据耐用性。
SLA – 对象存储服务 Amazon S3 Express One Zone 旨在提供 99.95% 的可用性,可用性 SLA 为 99.9%;有关信息,请参阅 Amazon S3 服务等级协议页面。
Amazon S3 服务等级协议
https://aws.amazon.com/s3/sla/
这一全新的对象存储服务现已推出,您可以立即开始使用!
本篇作者
Jeff Barr
亚马逊云科技副总裁、首席布道师。
星标不迷路,开发更极速!
关注后记得星标「亚马逊云开发者」
听说,点完下面4个按钮
就不会碰到bug了!