Amazon Neptune 架构的规模、可用性和见解

关键字: [Amazon Web Services re:Invent 2023, Amazon Neptune, Scale Neptune Applications, Neptune Availability During Upgrades, Neptune Practitioner Tooling, Graphs Generative Ai, Neptune Blue Green Deployment]

本文字数: 1900, 阅读完需: 10 分钟

视频

如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV14Q4y1V7wq

导读

如果您能将 Amazon Neptune 应用程序的互联数据洞察力带给您的所有用户,包括图形从业人员和非技术用户,同时发展您的应用程序以满足日益苛刻的可用性、性能和扩展要求,您会怎么做?在本讲座中,您将了解到哪些架构可以帮助您在优化成本的同时运行和发展您的应用程序。探索多区域可用性、自动扩展和近乎零停机迁移的架构以及强大的集成,以及如何利用可视化和生成式 AI 工具,让每个人都能获得图形洞察力。

演讲精华

以下是小编为您整理的本次演讲的精华,共1600字,阅读时间大约是8分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

亚马逊云科技的首席图形架构师Ian Robinson在演讲开始时,解释了各种用于扩展亚马逊Neptune图数据库的策略,以满足不断增长的应用需求。他指出,随着应用程序变得越来越成功并在一段时间内吸引更多的用户和查询,它不可避免地需要扩大底层数据库基础设施和资源。

Robinson特别解释了推动Neptune图数据库扩大的主要因素包括应用程序的用户数量增加、引入更复杂的分析查询以及在同一数据集上运行机器学习等工作负载的添加。他以从一个在线网络应用程序工作负载开始,然后希望在同一数据库上运行报告、分析和机器学习作业的例子为例。

Robinson表示,有几个关键信号表明应用程序需要扩大其数据库资源。其中一个信号是观察随着时间的推移逐渐建立的查询队列,这直接表明Neptune数据库无法跟上由应用程序驱动的大多数查询负载。可以通过分析与该数据库关联的实时监控指标“RequestQueuePendingRequests”来监测这种瓶颈的出现。

Robinson建议,如果“RequestQueuePendingRequests”指标经常且持续大于零,这意味着查询正在排队等待资源,从而导致额外的延迟。在这种情况下,下一步是检查Neptune数据库实例的实际CPU利用率。

高CPU利用率值(在80-90%或更高)清楚地表明数据库正在非常努力地处理并保持所有进入的查询。相反,较低的CPU利用率值(约为50%或更低)暗示了许多查询线程实际上正在空闲地等待从存储器返回数据。

另一个显示亚马逊Neptune需要更多资源的明显迹象是高缓冲缓存利用率。当活跃使用的数据集超出可用内存空间时,就会发生这种情况,这使得数据库不得不不断将数据调入和调出较慢的磁盘存储。Robinson指出,通过监测缓冲缓存命中率下降,可以检测到这种频繁的页面调度。缓冲缓存命中率衡量了数据请求是从快速内存中提供服务还是必须从磁盘中检索页面的频率。具体而言,他强调,如果缓冲缓存命中率低于99.9%,那么可能需要更多的内存优化。增加读取IOPS通常会伴随着高利用率,因为需要更多的存储请求。影响包括查询延迟大幅增加以及由于过多的I/O操作而导致的成本上升。例如,Neptune的一个计费维度是I/O操作的数量。

为了增强Neptune的功能,Robinson提出了两种主要方法。首先,迁移到更大的实例类型可以提供更多的CPU线程来处理并发查询,以及更大的内存缓冲缓存来减少周转。他解释道,一个通用的经验法则是线程数量与虚拟CPU数量的两倍相对应。缓冲缓存大小大约占总实例内存的三分之二。其次,可以通过添加读副本来分配读取密集型工作负载以分担查询负荷,这可以通过手动或自动化的方式完成,如使用Neptune的本地自动缩放功能。在选择最佳缩放性能的实例类型时,Robinson建议考虑每个实例类型的独特功能。例如,'d'类实例(例如db.r5d)支持更快的属性查找,使用额外的内存中缓存。像db.r5x这样的'x'类实例提供了更高的内存与CPU比例,例如在具有相同虚拟CPU的情况下内存是内存的4倍。最后,无服务器'db.serverless'实例动态地上下缩放以匹配可变的工作负载和间歇性的空闲时段。Neptune的无服务器实例使用Neptune容量单位(NCU)进行缩放,每个NCU代表2GB的内存和相关CPU。Robinson解释说是的,无服务器实例可以从仅仅1个NCU缩放到多达128个NCU,从而在空闲期间节省成本。

他在发现CPU利用率低于50%的工作负载时,建议采用无服务器计算,这意味着有大量空闲时间。然而,他建议在可能导致统计信息重新计算、超超低延迟查询需求或者内存大小超过128 NCU(相当于具有100-128 NCU的8x大型实例)的大批量写入作业中避免使用无服务器计算。

在分配足够资源之后,Robinson强调了解决如何有效地利用这些资源的问题。在支持同一数据上的多个工作负载时,如生产查询和分析或机器学习,这一点尤为重要。目标是在防止竞争工作负载之间争用的同时,实现资源的均衡分配,避免资源低度使用的情况。

Neptune提供了一项名为缓存分片的功能,可以将特定工作负载路由到专为该使用场景优化的专用副本组,从而防止混合工作负载之间的竞争。

然而,Robinson注意到,如果配置不当,自定义端点可能会受到连接风暴的影响。例如,底层端点的IP地址每5秒更改一次。如果一个连接池同时打开许多连接,它们会在延长的时间内集中在某个实例上。

开源的动态自定义端点包有助于根据声明式策略自动更新端点成员关系。例如,一个策略可能将带有'报告'标签的实例的读取操作路由到专门为分析专用的端点。这种方法提供了丰富的应用程序感知的工作负载隔离,而无需大量手动努力。

接下来,Robinson谈到了提高可用性并最小化Neptune引擎升级停机时间的话题。他解释说,需要进行实例重启的升级包括主要版本升级、次要版本更新和重要的补丁发布。

主要版本升级通常会导致显著的停机时间,甚至在一些情况下会持续一小时以上。Robinson解释说,罪魁祸首通常是必须跨大量数据卷传播的基础存储格式更改。

为了帮助客户减少这种停机时间,亚马逊云科技最近引入了Neptune蓝/绿部署功能。这通过将生产“蓝色”集群克隆到可以应用升级的“绿色”集群来实现。应用程序继续与蓝色集群互动。然后,绿色集群在切换流量之前追赶最后的更改。

尽管以前的主要升级可能导致停机时间长达数十分钟甚至超过一小时,但Robinson表示,现在通过蓝绿部署技术,总停机时间已缩短至仅几分钟。在实施蓝绿部署之前,Robinson列出了一些先决条件。首先,必须在蓝色集群上启用Neptune流以捕获更改。其次,需要在Neptune VPC内设置一个DynamoDB VPC端点以进行协调。一旦这些条件得到满足,CloudFormation模板就可以自动化整个过程。它会克隆数据库,升级绿色集群,从蓝色集群复制最终更改,然后协调切换。监控日志提供了对复制进程的可见性,以便优化时机。

Robinson还讨论了旨在帮助各种图形从业者(包括开发者、数据工程师、数据科学家和分析人员)从Neptune的连接数据中获得有价值见解的新工具。他强调了由Neptune团队创建的两个开源工具——Graph Notebook和Graph Explorer。Graph Notebook通过Jupiter笔记本轻松绘制图形查询和可视化。Graph Explorer提供了一个无代码的可视化环境。

在这些开源工具的基础上,Neptune笔记本提供了一种完全管理的环境,将Graph Notebook、Graph Explorer、亚马逊云科技Python SDK以及用于ETL和机器学习任务的Pandas SDK结合在一起。Robinson解释说,这些Graph Notebook自动配置与关联的Neptune集群的IAM身份验证。这使开发者能够使用Graph Notebook编写查询并优化它们,然后在笔记本中编写应用程序代码以使用Neptune数据API SDK集成查询。最后,完整的函数被部署到Lambda。

最近,发布了Neptune数据API SDK,以进一步简化应用程序开发。它包括40多种不同的数据操作,如加载数据和执行查询。主要优点是可以避免开放式源驱动器的复杂性并与IAM身份验证无缝集成。

Robinson展示了一个利用这些功能的示例工作流程。首先,开发人员使用Graph Notebook编写和优化图形查询。然后,在笔记本中编写应用程序代码以使用Neptune数据API SDK集成查询。最后,将完整的函数部署到Lambda。

这种工具和托管服务相结合,使得在Neptune上构建应用程序的过程变得更加简单。它们允许对图形查询进行关注,同时还处理连接管理、认证等其他后台复杂性。Robinson还讲述述了一个有趣的主题,即如何将图形与生成性AI模型相结合。他概述了几个具有潜力的应用场景。首先,大型语言模型可以从自然语言问题中生成图形查询。其次,它们可以根据特定领域的描述生成图形数据模型。第三,检索增强生成可以通过结合知识图中的事实来优化模型输出。为了展示这一概念,Robinson使用了Neptune作为图形数据库,Amazon Bedrock用于管理大型语言模型(例如Anthropic的Claude),以及用于协调交互的开源LangChain框架。在这个架构中,自然语言问题被发送到LangChain,它会检索Neptune模式并生成用于LLM的提示。LLM会产生一个查询,然后LangChain在Neptune上执行该查询并将结果返回给LLM以生成自然语言响应。尽管存在一些局限性,但Robinson指出,这种方法在解决复杂问题时仍具有巨大潜力。然而,该功能仍在快速发展中。Neptune Notebook为用户提供了一个简单的入口点,以便尝试使用图形和生成性AI进行实验。总之,将大型语言模型等与图形相结合为图形分析带来了令人兴奋的前景。最后,Robinson总结了他所讲的内容,包括如何随着需求的增长而有效地扩展Neptune数据库策略、如何通过蓝色/绿色部署实现最小化停机时间、如何使用笔记本等工具提高生产效率,以及如何探索将图形与生成性AI相结合的新方法。Amazon Web Services 为用户提供了大量资源,以帮助他们应对Neptune上的需求增长。

下面是一些演讲现场的精彩瞬间:

为了成功应用,需利用相同的基础数据来扩展应用程序,以便处理更多的用户和复杂的工作负载。

Amazon Neptune 架构的规模、可用性和见解_第1张图片

为了确保查询不会频繁排队并产生延迟,需要对每个实例的服务队列深度进行监控。

Amazon Neptune 架构的规模、可用性和见解_第2张图片

r5d类型的实例支持基于MVME的属性查找缓存,从而提高对节点/边缘属性和RDF文本频繁查询工作的性能。

Amazon Neptune 架构的规模、可用性和见解_第3张图片

引入了一种新的成本评估工具,用于估算无服务器成本并与已配置的实例进行比较。

Amazon Neptune 架构的规模、可用性和见解_第4张图片

此外,领导者还讨论了免费的深度挖掘数据建模课程以及用于使用Neptune构建数据模型的生成性AI。

Amazon Neptune 架构的规模、可用性和见解_第5张图片

总结

本演讲探讨了Neptune图数据库的扩展策略、高可用性和洞察方法。内容涉及监控指标、使用读取副本、扩大实例规模和无服务器实例等技术进行横向扩展。此外,还解释了如何利用快速克隆和流复制的蓝色/绿色部署来减少引擎升级过程中的停机时间。最后,展示了诸如Graph Notebook等开源查询和可视化工具,以及大型语言模型LangChain,用于生成查询或汇总结果。关键在于通过监控容量并利用读取副本和无服务器功能来实现扩展;通过蓝色/绿色部署最大程度地提高可用性以减少升级停机时间;以及通过Graph Notebook和LangChain等工具来增强洞察力。演讲者为优化Neptune架构提供了实用建议。

演讲原文

https://blog.csdn.net/just2gooo/article/details/134824268

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

Amazon Neptune 架构的规模、可用性和见解_第6张图片

你可能感兴趣的:(aws,亚马逊云科技,科技,人工智能,re:Invent,2023,生成式AI,云服务)