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

上次更新时间:2020 年 2 月 11 日

我在连接到我的 Amazon Redshift 集群时遇到问题。

简短描述

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

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

解决方法

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

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

  1. 打开 Amazon Redshift 控制台
  2. 选择集群
  3. 选择您要连接的集群。
  4. 选择操作选项卡,然后选择更改公开访问设置
  5. 对于允许 VPC 外部的实例和设备通过集群终端节点连接到数据库一项,请选择
  6. 选择您的弹性 IP 地址
  7. 选择确认

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

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

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

  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!