本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Neptune 引擎升级可能需要应用程序停机时间,因为在安装和验证更新时数据库不可用。无论它们是手动启动还是自动启动,都是如此。
Neptune 提供了蓝/绿部署解决方案,您可以使用 AWS CloudFormation 堆栈运行该解决方案,从而大大减少了此类停机时间。它创建一个与您的蓝色生产环境同步的绿色暂存环境。然后,您可以更新该暂存环境以执行次要或主要引擎版本升级、图形数据模型更改或操作系统更新,并测试结果。最后,您可以快速将其切换为生产环境,停机时间非常少。
Neptune 蓝绿解决方案分为两个阶段,如下图所示:

第 1 阶段创建一个与生产集群相同的绿色数据库集群
该解决方案使用唯一的蓝绿部署标识符创建数据库集群,其集群拓扑结构与生产集群相同。也就是说,它具有与生产(蓝色)数据库集群相同的数据库实例数量和大小、相同的参数组和所有配置,不同之处在于它已升级到您指定的目标引擎版本,该版本必须高于您的当前(蓝色)引擎版本。您可以为目标指定次要和主要引擎版本。如有必要,该解决方案将执行达到指定的目标引擎版本所需的任何中间升级。这个新集群变成了绿色暂存环境。
第 2 阶段设置连续数据同步
在完全准备好绿色环境后,该解决方案使 Neptune 流在源(蓝色)集群和目标(绿色)集群之间建立连续复制。当它们之间的复制差异达到零时,暂存环境就准备好进行测试了。此时,您必须暂停写入蓝色集群,以避免任何进一步的复制滞后。
您的目标引擎版本可能具有影响应用程序的新特征或依赖关系。检查引擎版本下的目标引擎版本页面和中间引擎版本页面,查看自当前引擎版本以来发生了什么变化。在将绿色集群提升到生产环境之前,最好在绿色集群上运行集成测试或手动验证应用程序。
在测试并验证了绿色集群中的更改后,只需将应用程序中的数据库端点从蓝色集群切换到绿色集群即可。
切换后,Neptune Blue/Green solution does not delete the old blue production environment. You will still have access to it for additional validation and testing if needed. Standard billing charges do apply to its instances until you delete them. The Blue/Green 解决方案还使用其他 AWS 服务,其费用按正常价格计费。清理部分介绍了有关在完成解决方案后将其删除的详细信息。
运行 Neptune 蓝绿堆栈的先决条件
在启动 Neptune 蓝绿堆栈之前:
请务必在生产(蓝色)集群上启用 Neptune 流。
蓝色集群中的所有实例都必须处于可用状态。您可以在 Nep tune 控制台
中或使用 API 查看实例状态。describe-db-instances 所有实例还必须与数据库集群参数组同步。
Neptune 蓝绿解决方案要求您的蓝色集群所在的 VPC 中有一个 DynamoDB VPC 端点。请参阅使用 Amazon VPC 端点访问 DynamoDB。
选择在蓝色生产数据库集群上的写入工作负载尽可能轻的时候运行解决方案。例如,避免在将要进行批量加载或出于任何其它原因可能存在大量写入操作时运行解决方案。