我无法连接到我的 Amazon Redshift 集群

上次更新时间:2021 年 7 月 26 日

我在连接到我的 Amazon Redshift 集群时遇到问题。如何排查此问题?

简短描述

要连接到您的 Amazon Redshift 集群,请检查以下项目:

  • 如果您的 Amazon Redshift 集群在公有子网中,并且您希望通过互联网访问它,则将公开访问设置为
  • 如果您的 Amazon Redshift 集群位于私有子网中,那么请使用公有子网中的 NAT 网关访问互联网。私有子网中的集群可以使用 NAT 网关连接到互联网,但互联网不能发起到集群的连接。
  • 若要让 Amazon Redshift 集群与不同的 Virtual Private Cloud (VPC) 账户中的资源通信,那么请创建一个 VPC 对等连接

解决方法

我的集群在公有子网中,但我无法从本地计算机通过互联网连接到集群

注意:完成以下步骤之前,请确保您的 VPC 有一个互联网网关附加到该集群

1.    打开 Amazon Redshift 控制台

2.    选择集群

3.    选择您要连接的集群。

4.    选择 Actions(操作)。

5.    选择修改公开访问设置

6.    对于允许 VPC 外部的实例和设备通过集群终端节点连接到数据库一项,请选择编辑公开访问

7.    选择启用

8.    (可选) 选择您的弹性 IP 地址。

9.    选择确认保存更改。

我的集群在私有子网中,但我无法从本地计算机连接集群

您的集群必须位于公有子网中才能连接到本地计算机。

要从本地计算机访问集群,请执行以下步骤:

1.    打开 Amazon Redshift 控制台

2.    选择集群

3.    选择您要连接的集群。

4.    选择配置选项卡以打开集群属性页面。

5.    选择查看 VPC 以打开 Amazon VPC 控制台。

6.    在导航窗格中,选择路由表

7.    选择与您的集群所在的子网相关联的路由表

8.    选择编辑

9.    选择添加路由
对于 IPv4 流量,在目的地字段中输入“0.0.0.0/0”,然后为目标字段选择互联网网关 ID。
对于 IPv6 流量,在目的地字段中输入“::/0”,然后为目标字段选择互联网网关 ID。

10.    选择保存

不同 VPC 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例不能访问我的集群

在两个 VPC 之间建立 VPC 对等连接。VPC 对等连接允许两个 VPC 使用私有 IP 地址相互通信。

1.    按照创建并接受 VPC 对等连接中的步骤操作。

注意:如果多个 VPC 位于同一个 AWS 账户中,请确保 IPv4 CIDR 块不重叠。

2.    更新两个路由表

3.    更新您的安全组以引用对等 VPC 组

4.    在 EC2 实例上,使用联网实用工具(如 netcat)测试 VPC 对等连接。例如:

nc -zv <hostname> <port>

如果 VPC 对等连接成功,则输出将如下所示:

$ nc -zv example.123456789.us-east-1.redshift.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to example.123456789.us-east-1.redshift.amazonaws.com port 5439 [tcp/*] succeeded!