对 Amazon Neptune 数据库集群中的副本数量进行自动扩展 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对 Amazon Neptune 数据库集群中的副本数量进行自动扩展

您可以使用 Neptune auto-scaling 功能自动调整数据库集群中的 Neptune 副本数量,以满足您的连接和工作负载要求。自动扩展可让你的 Neptune 数据库集群处理工作负载的突然增加,然后,当工作负载减少时,auto-scaling 会移除不必要的副本,这样你就不需要为未使用的容量付

您只能对已有一个主写入器实例和至少一个只读副本实例的 Neptune 数据库集群使用自动扩展(请参阅Amazon Neptune 数据库集群和实例)。此外,集群中的所有只读副本实例都必须处于可用状态。如果任何只读副本处于可用以外的状态,那么在群集中的每个只读副本都可用之前,Neptune 自动扩展不执行任何操作。

请参阅创建数据库集群如果您需要创建新的集群。

使用Amazon CLI,您可以定义一个扩展策略并将其应用于数据库集群。扩展策略指定了以下 auto-scaling 参数:

  • 集群中的最小副本数量和最大副本数。

  • 所谓的冷却副本添加或删除之间的间隔。

  • 用于向上或向下扩展的 CloudWatch 指标和指标触发值。

使用Amazon CLI,您也可以编辑或删除 auto-scaling 策略。

当您使用的 CloudWatch 指标达到您在策略中指定的阈值时,只要数据库集群尚未设置的最大副本数量,Neptune 会使用与数据库集群的主实例相同的实例类型创建新副本。

当指标显示工作负载已足够减小时,Neptune auto-scaling 会删除不必要的副本,这样您就不会为未使用的容量付费。

注意

Neptune auto-scaling 只会删除它创建的副本。它不会删除预先存在的副本。

使用neptune_autoscaling_config数据库集群参数,您还可以指定 Neptune auto-scaling 创建的新只读副本的实例类型、这些只读副本的维护时段以及与每个新只读副本关联的标签。您可以在 JSON 字符串中提供这些配置设置作为neptune_autoscaling_config像这样:

"{ \"tags\": [ { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" }, { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" }, ], \"maintenanceWindow\" : \"wed:12:03-wed:12:33\", \"dbInstanceClass\" : \"db.r5.xlarge\" }"

请注意,JSON 字符串中的引号都必须用反斜杠字符转义(\)。像往常一样,字符串中的所有空格都是可选的。

中未指定的三种配置设置中的任何一种neptune_autoscaling_config参数是从数据库集群的主写入器实例的配置中复制的。

何时Application Auto Scaling API Referenceauto-scaling 添加了一个新的只读副本实例,它在数据库实例 ID 的前缀autoscaled-reader(例如,autoscaled-reader-7r7t7z3lbd-20210828)。它还将标签添加到它使用密钥创建的每个只读副本autoscaled-reader而且有价值TRUE. 你可以在标签 tab of the DB instance detail page in the Amazon Web Services Management Console.

"key" : "autoscaled-reader", "value" : "TRUE"

通过 auto-scaling 创建的所有只读副本实例的升级级别是最低优先级,即15默认情况下。这意味着在故障转移期间,更高优先级的副本(如手动创建的副本)会先提升。请参阅Neptune 数据库集群的容错能力

Neptune auto-scaling 是使用应用程序 Auto Scaling 实现的目标跟踪扩展策略那使用 NeptuneCPUUtilizationCloudWatch 指标作为预定义的指标。

如何为 Amazon Neptune 启用 auto-scaling

为 Neptune 数据库集群启用 auto-scaling 包括三个步骤:

1. 使用 Application Auto Scaling 注册数据库集群

为 Neptune 数据库集群启用 auto-scaling 展的第一步是使用Amazon CLI或者其中一个 Application Auto Scaling SDK。集群必须已有一个主实例和至少一个只读副本实例:

例如,要注册集群以自动扩展,使用从 1 到 8 个其他副本进行扩展,您可以使用Amazon CLI register-scalable-target命令如下所示:

aws application-autoscaling register-scalable-target \ --service-namespace neptune \ --resource-id cluster:(your DB cluster name) \ --scalable-dimension neptune:cluster:ReadReplicaCount \ --min-capacity 1 \ --max-capacity 8

这等同于使用RegisterScalableTargetApplication Auto Scaling API 操作。

这些区域有:Amazon CLI register-scalable-target命令使用以下参数:

  • --service-namespace – 设置为 neptune

    此参数等同于ServiceNamespaceApplication Auto Scaling API 中的参数。

  • resource-id— 将其设置为 Neptune 数据库集群的资源标识符。资源类型为cluster,后面是冒号 (':'),然后是数据库集群的名称。

    此参数等同于ResourceIDApplication Auto Scaling API 中的参数。

  • scalable-dimension— 在这种情况下,可扩展维度是数据库集群中的副本实例的数量,因此您将此参数设置为neptune:cluster:ReadReplicaCount.

    此参数等同于ScalableDimensionApplication Auto Scaling API 中的参数。

  • min-capacity— 由 Application Auto Scaling 管理的最小读取器数据库副本实例数。这可能小于 0 且不大于max-capacity参数。

    此参数等同于MinCapacityApplication Auto Scaling API 中的参数。

  • max-capacity— 由 Application Auto Scaling 管理的最大读取器数据库副本实例数。该值不能小于min-capacity参数,且不超过 15 减去预先存在的副本数量。一个数据库集群总共不能超过 15 个副本,因此通过 auto-scaling 管理的副本的最大数量加上预先存在的副本数量不能超过该限制。

    这些区域有:max-capacity Amazon CLI参数等同于MaxCapacityApplication Auto Scaling API 中的参数。

注册数据库集群时,Application Auto Scaling 会创建AWSServiceRoleForApplicationAutoScaling_NeptuneCluster服务相关角色。有关更多信息,请参阅 。Application auto-scaling 的服务相关角色中的Application Auto Scaling 用户指南.

2. 定义用于数据库集群的自动扩展策略

目标跟踪扩展策略定义为也可以保存在文本文件中的 JSON 文本对象。对于 Neptune,此政策目前只能使用 NeptuneCPUUtilizationCloudWatch 指标作为名为的预定义指标NeptuneReaderAverageCPUUtilization.

以下是 Neptune 的目标跟踪扩展配置策略示例:

{ "PredefinedMetricSpecification": { "PredefinedMetricType": "NeptuneReaderAverageCPUUtilization" }, "TargetValue": 85.0, "ScaleInCooldown" : 600, "ScaleOutCooldown" : 600, }

这些区域有:TargetValue这里的元素包含 auto-scaling 超过该比例的 CPU 利用率横向扩展(也就是说,添加更多的副本)以及在下面缩减(也就是说,删除副本)。在这种情况下,触发扩展的目标百分比为85.0%。

这些区域有:ScaleInCooldown元素指定在完成一个缩减活动后开始另一个缩减活动之前等待的时间 (秒)。默认值为 300 秒。在这里,值 600 指定从完成一个复制副本删除到开始另一个复制副本之间必须至少有十分钟。

这些区域有:ScaleOutCooldown元素指定在完成一个扩展活动后开始另一个扩展之前等待的时间 (秒)。默认值为 300 秒。在这里,值 600 指定从完成一个复制副本添加到开始另一个副本之间必须至少 10 分钟。

这些区域有:DisableScaleIn元素是一个布尔值,如果存在且设置为true完全禁用缩放功能,这意味着 auto-scaling 可能会添加副本,但永远不会删除任何副本。默认情况下,已启用缩放功能,并DisableScaleInfalse.

在 Application Auto Scaling 中注册 Neptune 数据库集群并在文本文件中定义 JSON 扩展策略后,接下来,将扩展策略应用于注册的数据库集群。您可以使用Amazon CLI put-scaling-policy命令来执行此操作,其中包含如下参数:

aws application-autoscaling put-scaling-policy \ --policy-name (name of the scaling policy) \ --policy-type TargetTrackingScaling \ --resource-id cluster:(name of your Neptune DB cluster) \ --service-namespace neptune \ --scalable-dimension neptune:cluster:ReadReplicaCount \ --target-tracking-scaling-policy-configuration (file where you saved the policy)

应用 auto-scaling 策略后,数据库集群上将启用 auto-scaling 功能。

您也可以使用Amazon CLI put-scaling-policy命令更新现有的 auto-scaling 策略。

另请参阅PutScalingPolicy中的Application Auto Scaling API 参考.

从 Neptune 数据库集群中删除 auto-scaling

要从 Neptune 数据库集群中删除 auto-scaling,请使用Amazon CLI 删除扩展策略取消注册可扩展目标命令。