在 Amazon Redshift 中管理集群重新定位 - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在 Amazon Redshift 中管理集群重新定位

通过在 中使用重新分配Amazon Redshift,您可以允许 Amazon Redshift 将集群移动到另一个可用区 (AZ),而不会丢失任何数据或更改您的应用程序。通过重新定位,您可以在集群上的服务中断时继续操作,但影响最小。

在启用集群重新定位后,Amazon Redshift 可能会在某些情况下选择重新定位集群。特别是,当当前可用区中的问题阻止最佳集群操作或提高服务可用性时,会出现此情况。如果给定可用区中的资源限制中断集群操作,您也可以调用重新定位函数。例如,恢复集群或调整集群大小的能力。Amazon Redshift 提供了重新分配功能,无需额外付费。

当 Amazon Redshift 集群重新定位到新的可用区时,新集群具有与原始集群相同的终端节点。您的应用程序可以重新连接到终端节点并继续操作,而不必进行修改或丢失数据。但是,由于给定可用区中的潜在资源限制,可能会并不总是可以重新定位。

Amazon Redshift 集群重新定位仅支持 RA3 实例类型,例如 ra3.16xlarge、ra3.4xlarge 和 ra3.xlplus。RA3 实例类型使用 Redshift 托管存储 (RMS) 作为持久存储层。集群数据的最新副本在 AWS 区域的其他可用区中始终可用。换句话说,您可以将 Amazon Redshift 集群重新分配到其他可用区,而不丢失任何数据。

在启用重新定位集群后,Amazon Redshift 会将集群迁移到代理后面。这样做有助于对集群的计算资源实施位置无关的访问。迁移会导致集群重启。当某个集群被重新分配到其他可用区时,在新可用区中将新集群恢复联机状态时会出现中断。但是,您不必在应用程序中进行任何更改,因为集群终端节点保持不变,即使在将集群重新定位到新的可用区后也是如此。

如果您启用重新分配,并且您当前使用领导节点 IP 地址访问您的集群,请确保更改该访问。而是使用与集群的 Virtual Private Cloud (VPC) 终端节点关联的 IP 地址。要查找此集群 IP 地址,请在集群详细信息页面的 Network and security (网络和安全性) 部分中找到并使用 VPC 终端节点。要获取有关 VPC 终端节点的更多详细信息,请登录 Amazon VPC 控制台。

您还可以使用 AWS Command Line Interface (AWS CLI) 命令 describe-vpc-endpoints 获取与终端节点关联的弹性网络接口。您可以使用 describe-network-interfaces 命令获取关联的 IP 地址。有关 Amazon Redshift AWS CLI 命令的更多信息,请参阅 https://docs.amazonaws.cn/cli/latest/reference/redshift/index.html 中的可用命令AWS CLI Command Reference。

启用重新定位集群

您可以从 Amazon Redshift 控制台、AWS CLI 和 Amazon Redshift API 启用和管理重新定位的集群。

要启用重新定位集群,请定义包含多个可用区的子网组。如果 Amazon Redshift 标识多个可访问的可用区,Amazon Redshift 会自动从可访问可用区列表中选择以重新定位集群。

重新定位完成后,您使用相同的终端节点访问集群。Amazon Redshift 删除原始集群的计算资源并将其返回到资源池。

Limitations

使用重新定位 Amazon Redshift 时,请注意以下限制:

  • 由于给定可用区中的潜在资源限制,可能无法在所有情况下执行集群重新定位。如果发生这种情况,Amazon Redshift 不会更改原始集群。

  • DC1、DC2 或产品的 DS2 实例系列上不支持重新定位。

  • 位置对于可公开访问的 Amazon Redshift 集群不可用。

  • 您无法跨 AWS 区域执行重新定位。

  • 您只能为使用默认端口设置 (5439) 的集群启用重新定位。否则,启用重新定位将失败。

  • 如果您已成功启用重新定位并稍后尝试修改默认端口设置,则修改操作将失败。

使用控制台管理重新定位

您可以使用 Amazon Redshift 控制台管理重新定位集群的设置。

在创建新集群时启用重新定位

使用以下过程可在创建新集群时启用重新定位。

为新集群启用重新定位

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Redshift 控制台:https://console.amazonaws.cn/redshift/

  2. 在导航窗格上,选择 CLUSTERS (集群)

  3. 选择 Create cluster (创建集群) 以创建新集群。有关如何创建集群的更多信息,请参阅 https://docs.amazonaws.cn/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html 中的创建示例 Amazon Redshift 集群Amazon Redshift 入门。

  4. Backup (备份) 下,对于 Cluster reditioned (集群重新定位),选择 Enable (启用)。默认情况下,将禁用重新分配。

  5. Network and security (网络和安全性) 下,对于 Publicly accessible (公开访问),接受默认的 No (否)。 如果您选择 Yes (是),Amazon Redshift 将返回错误。

  6. 选择 Create Cluster (创建集群)

修改现有集群的重新定位

可以使用以下过程更改现有集群的重新定位设置。

修改现有集群的重新定位设置

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Redshift 控制台:https://console.amazonaws.cn/redshift/

  2. 在导航窗格上,选择 CLUSTERS (集群)。这将列出您的账户在当前 AWS 区域中的集群。列表中的各个列中显示了每个集群的一部分属性。

  3. 从列表中选择要修改的集群的名称。此时将显示集群详细信息页面。

  4. 选择 Backup (备份),然后选择 Edit (编辑)

  5. Backup (备份) 下,选择 Enable (启用)。默认情况下,将禁用重新分配。

  6. Network and security (网络和安全性) 部分中,确保为 Publicly accessible (公开访问) 选项选择 No (否)

  7. 选择修改集群

重新定位集群

使用以下过程手动将集群重新定位到其他可用区。当您需要在辅助可用区中测试网络设置或遇到当前可用区中的资源限制时,这尤其有用。

将集群重新定位到其他可用区

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Redshift 控制台:https://console.amazonaws.cn/redshift/

  2. 在导航窗格上,选择 CLUSTERS (集群)。这将列出您的账户在当前 AWS 区域中的集群。列表中的各个列中显示了每个集群的一部分属性。

  3. 从列表中选择要移动的集群的名称。此时将显示集群详细信息页面。

  4. 对于 Actions (操作),选择 Relocate (重新定位)。此时将显示 Relocate cluster (重新定位集群) 页面。

  5. (可选)选择 Availability Zone (可用区)。如果您未选择可用区,Amazon Redshift 将为您选择一个可用区。

Amazon Redshift 开始重新定位,并将集群显示为已重新定位。重新定位完成后,集群状态变为可用。

使用 Amazon Redshift CLI 管理重新定位

您可以使用 AWS 命令行界面 (CLI) 管理重新定位集群的设置。

借助 AWS CLI,以下示例命令创建一个已启用重新分配的名为 Amazon Redshift 的 mycluster 集群。

aws redshift create-cluster --cluster-identifier mycluster --number-of-nodes 2 --master-username adminuser --master-user-password TopSecret1 --node-type ra3.4xlarge --port 5439 --no-publicly-accessible --availability-zone-relocation

如果您的当前集群使用不同的端口,则您必须将其修改为使用 5439,然后再对其进行修改以启用重新定位。以下示例命令修改端口,以防您的集群不使用 5439。

aws redshift modify-cluster --cluster-identifier mycluster --port 5439

以下示例命令在 Amazon Redshift 集群上启用 availability-zone-relocation 参数。

aws redshift modify-cluster --cluster-identifier mycluster --availability-zone-relocation

以下示例命令禁用 Amazon Redshift 集群上的 availability-zone-reloation 参数。

aws redshift modify-cluster --cluster-identifier mycluster --no-availability-zone-relocation

以下示例命令在 Amazon Redshift 集群上调用重新定位。

aws redshift modify-cluster --cluster-identifier mycluster --availability-zone us-east-1b