本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。
亚马逊云科技的 re:Invent 大会是一年一度的,面向全球技术开发者科技盛会。几乎每次都会发布云科技、云计算等相关领域的产品重磅更新,不但将时下主流热门的技术不断整合,也未将来的发展标明了方向。
其中的内容不仅仅展现了亚马逊云科技自身产品的更新,也为该行业的从业者提供了一个很好的学习和发展参照。回顾最近十年,科技领域的发展逐渐迅猛,技术的更替以及开发模式的变更都越来越快,尽早的了解科技的发展方向是尤为重要的。
2023年的 re:Invent 大会上,一口气发布了十余款核心产品的重磅更新,其中包括AI、芯片、对象存储、Serverless、ETL等等。本篇文章就主要来说说一直在用的 Amazon S3 对象存储。
首先对Amazon S3做一个简短的介绍,然后再来详细的说一说产品的进化版本。有些小伙伴可能之前还没有使用过亚马逊云的S3,但是相信一定听说过对象存储。这是自大数据兴起以来就不断焕发生机的产品,原因很简单,这个产品是和存储相关的,而存储又是在大数据分析、模型训练、机器学习等领域不可或缺的一环。
同时,产品本身的特性又使得它对媒体文件访问有很好的支持,这就决定了该产品和其它领域有着超强的结合性以及丰富的功能扩展性。因此,可以其它的产品很好的承接,便于数据的流通,提高整体效率。
根据官方文章的内容:General-Availability-of-Amazon-S3-Express-One-Zone,本次更新主要体现在性能方面,突破工作负载瓶颈。前文也提到了,产品的核心是存储,如果提高了效率,那也就意味着可以和更多的产品优雅的结合,毕竟产品的封装与打通更多的是业务逻辑上的,而对于性能上的提升往往需要更加大量的工作。
以下对于基于 Amazon S3 Express One Zone 和 Amazon S3 Standard :
其实,单是前两条就已经是十分出色了,因为对于讨论的背景是存储数百万亿和每秒亿次请求。
由于本次更新主要是在性能上的提升,小编不能带大家直接体验,这里介绍一下基本的使用帮助大家来入门,同时也讲一下与 EMR 进行结合的使用场景,真的不要太方便。
本人长期从事大数据方向的开发,通常完成一个数据计算流程要多个组件,整个流程中数据通常要存储或暂存在多个数据载体,而S3就可以作为这个载体,并且通过 Amazon S3 API 可以获取数据结果,结合到其它的业务流程中去,十分高效!
EMR相当于是一个封装好的,拆箱即用的云大数据环境,不再需要自己手动用服务器集群搭建和维护。同时,也一起解决了兼容性问题,由EMR发行版直接来进行管理。
这里主要是某些流程中将 S3 作为存储媒介会十分方便,而不是说用 S3 完全代替 HDFS。多了一个可选的存储位置,在很多场景下就可以更灵活的处理。因为S3存储的高存储扩展性,对于输入数据或输出数据的大小变化可以轻松应对,而不需要影响到EMR。
很多的结果数据输出产生后还需要进入到多个数据流程,同时要兼顾权限的管理等问题,都可以结合S3来实现共享和管理。特别是对于一个庞大的系统来说,数据之间的合理打通和使用是一个大问题,S3在这一方面提供了一个可选方案。
对于第一次使用对象存储产品的小伙伴,可以跟着实际操作一下。值得一提的是,S3同样属于新账号免费套餐产品,可以在一定额度下免费使用12个月。
只要注册一个账号就可以开始操作了,点击 开始使用Amazon S3 进入到创建界面,点击 创建存储桶 :
然后设置 AWS区域 和 存储桶名称 【需要找一个不重复的名称】:
在生产环境中,我们要对权限详细进行设置,在本例中,我们将其作为一个基本的图床来使用,上传一些图片来进行链接访问,因此先 开放公开访问 ,便于测试。
其它设置不需要更改,点击 创建存储桶 。
创建完成后可以看到存储桶列表,在其中可以创建文件夹或进行上传、下载,此时已经可以当作私人网盘来使用了。即使此前开放了公开访问,但是没有 配置策略 前还是不能公开访问的。首先进入存储桶,然后新建一个文件夹:
目前这部分操作就和使用网盘一样,十分简单,接下来我们在文件夹中上传文件。先切换到目标文件夹,然后点击 上传 按钮:
选择本地文件后,点击 上传:
上传完成后回到文件目录,勾选即可 下载:
此时大家可能注意到,文件上传后已经有了一个唯一的链接,但是如果直接访问会提示 AccessDeniedAccess Denied ,接下来演示一下策略的修改。这里要特别说明,是否进行策略的修改取决于大家的需要,小编此前也用过很多对象存储相关产品,有些是对媒体访问十分方便的,可以通过参数拼接URL实现图片的裁剪或放大缩小的显示。对于亚马逊云的产品,需要进行一些额外的操作,要稍微学习一下。
点击 权限 标签页下的存储桶策略 编辑 按钮:
点击 策略生成器,然后我们想干什么,选择就好了:
选择 S3 Bucket Policy,Principal填写 *,只读对应的Actions为 GetObject,最后填写路径:
最后的路径可以查看格式样例,以 arn:aws:s3::: 开头,然后填写存储桶名称,后面可以再拼接需要开放的路径。点击 Add Statement 后可以进行预览,确认无误点击 Generate Policy:
点击后得到如下一段代码:
{
"Id": "Policy1702166842711",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1702166753697",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::saXXXec/pic/*",
"Principal": "*"
}
]
}
将其粘贴到策略配置界面中,点击 保存更改。
配置完成后我们可以实际测试一下,找到刚刚上传的图片文件,可以看到一个 对象URL:
此时已经可以正常访问:
小编所在的项目中很多都是使用亚马逊云的产品,其中S3充当了十分重要的角色,只能说唯有亲身体会之后才能感觉到其中的便捷和强大。这一次的re:Invent大会同样还有其它的重磅消息,会在其它文章中继续为大家解读😄。