深入了解 Amazon S3

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/STG314-Dive_deep_on_Amazon_S3-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 为开发人员和 IT 团队提供云对象存储,提供业界领先的可扩展性、耐用性、安全性和性能。在本论坛中,深入研究 S3 的底层架构,了解它如何提供几乎无限的扩展性和弹性。了解数据持久性的文化和系统,以及它如何提供一致的性能,并了解如何将这些基础知识结合起来使 S3 不同于任何其他云存储。还可以了解 S3 存储类和跨安全性、访问管理、存储管理等的关键功能。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1400字,阅读时间大约是7分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 艾米·特雷里安(Amy Therrien)担任亚马逊S3部门的工程总监,她首先向观众表示欢迎并介绍了她自己以及她的同事、S3部门的高级首席工程师塞思·马克勒(Seth Markle)。她对观众们选择花时间阅读标准文档和视频之外的内容以深入了解S3表示感谢。 艾米解释说,S3团队是由一群充满好奇心的人才组成的,他们加入这个团队的目的就是去探索S3的内部运作,就像观众一样。她希望能分享团队所经历的幕后故事。艾米和塞思在S3上工作了十多年,但他们的好奇心仍未得到满足。 艾米提供了一些历史背景,她表示S3已向客户提供了17年以上的对象存储服务。在这漫长的时期里,团队一直在不断学习和改进软件系统,以使S3更加健壮和可靠。用艾米的话来说,团队一直在“训练基本的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型”,以在云中大规模操作对象存储。她对所取得的成果感到自豪。 在S3的早期阶段,团队经常遇到意想不到的问题,并必须应对这些问题。有许多夜晚,他们为了解决问题而熬夜工作。最初预测的S3使用量在吉字节范围内,但需求增长的速度远远超过了预期,达到了艾字节(1,000,000,000,000,000,000字节)规模。 为了变得更具前瞻性,S3团队开始利用一种名为威胁建模的技术——全面分析可能发生的所有潜在错误,并构建预防措施。威胁建模帮助团队从被动的态度转变为主动的态度。现在,他们的关注点变成了预防性地培养弹性。 艾米详细解释了如何在S3中应用威胁建模。团队将潜在的威胁和缓解措施以书面形式记录下来,以确保思考的稳定并防止忘记细节。然后,这些文件在与经验丰富的工程师(如塞思)的互动会议中进行广泛审查。这为新团队成员提供了一个很好的学习机会,以便在学习设计有弹性的系统的技能方面建立信心。 威胁建模文件详细阐述了各种威胁及其发生的可能性和潜在影响。这些威胁可能源于意外的顾客使用高峰、软件错误或操作失误等多种原因。了解可能发生的情况有助于确定哪些威胁需要采取最强大的应对措施。同样,评估受影响的区域有助于为影响到系统大部分部分的威胁分配适当的资源来进行缓解。 艾米强调,在实施缓解措施之前,首先进行全面的威胁分析是非常重要的。有时候,引入缓解措施可能会无意中引发新的威胁,因此在所有高优先级威胁都已得到解决且不会导致其他问题时,不断迭代是关键。 讨论随后集中在了S3如何利用威胁建模在服务本身内部构建内部缓解措施。艾米还表示他们将会介绍客户如何利用S3的功能来应对诸如意外使用高峰之类的威胁。 为了提供背景,艾米简要介绍了S3的写入路径,即数据如何通过PUT请求被写入。这个请求将进入包含DNS服务器、路由器、Web服务器以及其他网络组件的S3前端。Web服务器会将对象键发送到索引系统,然后将对象数据发送到存储系统。 艾米强调了S3前端的庞大规模,其每秒能处理超过1,000 TB的数据。这种庞大的容量使得客户能够通过利用S3前端的规模来应对预期的工作负载。 艾米提出了客户可以利用前端规模的三种策略: 1. 分块上传,以并行处理大型对象而非以单线程方式处理。这提供了更快的吞吐量,并在出现故障时最小化了重新上传的需求。 2. 范围获取,以并行获取对象而非以单线程方式获取。这提供了更快的吞吐量。 3. 多值DNS分散服务器的负载。这增加了针对单个IP地址的服务能力。 接下来,艾米谈到了S3索引存储超过350万亿个对象,并且每秒处理超过1亿次请求。为了处理这个巨大规模,索引会将对象键按照字母顺序分布到服务器上。如果发现热门前缀(例如“n”)存在热点情况,索引会主动将这些前缀分布在更多的服务器上,以分散负载。 客户可以通过优化关键名称和日期开头的基数来提高性能,从而实现更高的分区和负载分布。例如,Amy通过智能分割前缀实现了每秒22,000笔交易。为了在减少客户工程努力的同时提供S3的可扩展性,S3团队构建了一个包含最佳实践的运行时库,如多部分、范围获取和多值DNS等。这些库被包含在亚马逊云科技的SDK、CLI和其他应用程序中,如S3挂载点和S3文件系统连接器等。 接下来,Seth Markle介绍了S3的持久性和可用性保护。他强调,S3运营着存储数百万亿字节数据的硬盘驱动器。著名的11个九的耐用性考虑了驱动器故障、数据损坏、软件错误和人为操作错误等风险。S3端到端地对数据进行校验和存储,并在驱动器之间进行冗余存储,同时接受独立审计员的持续监控。一旦检测到故障驱动器,就会从其他驱动器复制数据。这个11个九的耐用性数字是通过观察到的驱动器故障率和恢复速度的数学建模得出的。 为了保护防止区域故障,S3在每个写入请求时将数据复制到不同区域。这样即使整个区域被删除,也不会发生数据丢失。但是,使用One Zone存储类的交易需要在区域失败时重新创建数据。 Seth解释了S3的设计旨在通过自动绕开故障区域来保持可用性。自动化会将从故障区域除名的故障区域从DNS中移除,并且部署谨慎地逐个区域逐步展开以限制错误的扩散范围。此外,S3通过威胁建模等方式在架构上进行正确性设计,并悲观地假设会出现故障,并添加安全措施,如试验部署和控制平面限制。这种深度防御对于像S3这样的高度可靠的服务至关重要。 总之,S3团队的数十年经验使它们专注于基本原理,如弹性、可用性和可扩展性。复杂性并非来自快乐的路径,而是来自边缘情况。将健壮的异常处理软件和组织纳入服务要比仅处理正常情况困难得多,但对于像S3这样的服务来说,这是至关重要的。 艾米和塞思随后提供了一些关于客户如何使用S3功能来减轻威胁并满足使用情况的例子: - 一个客户在使用S3时遭遇了延迟问题。经过分析后发现,他们将所有流量集中到了一个单一IP地址上。通过使用多值DNS分散到不同IP地址,这个问题得到了解决。 - 对于那些需要对存储桶进行一次性清理的顾客,可以使用S3版本控制来保留对象的历史记录以防止出现错误。将版本控制与用于过期旧版本的生命周期策略相结合,可以在不丧失控制的情况下进行清理。 - S3复制功能可以在跨区域或跨账户之间复制数据以实现灾难恢复。复制时间控制在15分钟内即可完成对象的复制,保证了SLA。 - 遵循法规要求的客户通常会使用S3对象锁定功能在指定时间段内使对象不可删除。这样可以防止意外删除。 - 备份系统为客户提供了备份历史的健壮目录和可靠的恢复功能。客户应定期与等待灾难的情况相比对恢复过程进行测试。 演示展示了S3团队如何凭借数十年的经验构建了一个专注于基本要素(如可用性、持久性和规模)的高弹性服务。无论是S3软件还是团队文化,都通过诸如威胁建模和深度防御等实践加强了弹性。客户可以利用S3的功能来减轻威胁并满足各种需要稳定性的使用情况。 **下面是一些演讲现场的精彩瞬间:** 一个好的备份系统应该提供浏览备份历史并选择恢复点的功能,同时也需要一个无需恢复的还原引擎。 ![](https://d1trpeugzwbig5.cloudfront.net/STG314-Dive_deep_on_Amazon_S3/images/rebranded/STG314-Dive_deep_on_Amazon_S3_0.png) 如果没有这些,那么备份目录和还原引擎的意义就不存在了。 ![](https://d1trpeugzwbig5.cloudfront.net/STG314-Dive_deep_on_Amazon_S3/images/rebranded/STG314-Dive_deep_on_Amazon_S3_1.png) 当亚马逊云科技首次推出S3时,他们设想了一个拥有美国两大海岸存储的单一全球网络,通过在各个区域之间复制流量和数据来实现冗余。 ![](https://d1trpeugzwbig5.cloudfront.net/STG314-Dive_deep_on_Amazon_S3/images/rebranded/STG314-Dive_deep_on_Amazon_S3_2.png) 由于地区故障可能导致从DNS中删除IP地址的自动化过程,因此客户可以利用DNS TTL和IP多样性来应对这一问题。 ![](https://d1trpeugzwbig5.cloudfront.net/STG314-Dive_deep_on_Amazon_S3/images/rebranded/STG314-Dive_deep_on_Amazon_S3_3.png) 领导者们描述了亚马逊云科技是如何共同运行新和老代码路径的,以便在启动新功能之前进行结果的比较。 ![](https://d1trpeugzwbig5.cloudfront.net/STG314-Dive_deep_on_Amazon_S3/images/rebranded/STG314-Dive_deep_on_Amazon_S3_4.png) ## 总结 演讲者深入研究了[Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)的体系结构及其如何实现持久性、可用性和可扩展性。他们解释了对写入路径的处理方式,以及在可用性区域之间存储对象数据和元数据的方法,以确保超过99.999%的持久性。例如,多部分上传和多值DNS等功能有助于应用程序通过在S3庞大的基础设施上分散负载来应对意外的高流量。索引系统将键进行分区以分配负载,而应用程序可以通过优化前缀来最大化吞吐量。S3的存储监控系统持续审计数据完整性。可用性区域和区域隔离防止单个设施的故障影响其他设施。通过实施诸如增量部署和影子测试等操作实践,提供了深度防护。演讲者强调,S3的设计通过冗余、扩展和悲观失败测试等方式,有效地减轻了潜在威胁的影响。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭