无法连接到私有子网中的 Redshift 集群
Can not connect to my Redshift cluster in private subnet
我已经使用 Linux Bastion Host Quick Start 上讨论的建议方法设置了 VPC。
我还在其中一个私有子网中创建了一个 Redshift 集群,并创建了没有规则限制的专用安全组。这是针对 Redshift 的入站和出站规则,我正在分配所有流量和端口 (0.0.0.0/0)。我什至对 public 子网上的 public EC2 实例做同样的事情。
我可以成功地通过 ssh 连接到我的 public 堡垒实例,但是我无法从那里远程登录到我的 Redshift 端点。
[ec2-user@ip-10-0-141-20 ~]$ telnet ******.redshift.amazonaws.com 5439
Trying 10.0.20.169...
Connected to ******.redshift.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.
我不确定我的配置有什么问题。在 Redshift 中,我禁用了 public 访问和 VPC 路由。
我假设你的情况是:
- 您在私有子网中有一个 Amazon Redshift 集群
- 您在同一 VPC
的 public 子网中有一个 Bastion 服务器
- 您希望将计算机上的 SQL 客户端连接到 Redshift 集群
一种方法是:
- 使用端口转发通过堡垒主机连接到 Redshift 集群
- 如果您使用的是 Linux/Mac:
ssh-add keypair.pem
ssh -A ec2-user@BASTION-IP -L 5439:xyz.redshift.amazonaws.com:5439
(这表示:将本地端口 5439 转发到堡垒,这里应该将流量发送到端口 5439 上的 Redshift 集群)
- 如果您正在使用 Windows,那么您可以使用 Pageant 和 PuTTY
- 然后,配置您的 SQL 客户端以使用
server=localhost
和 port=5439
连同您的登录凭据 连接到 Redshift
如果上述方法不起作用,请检查一些事项:
- Redshift 集群上的安全组应允许来自堡垒(或来自整个 VPC 或来自
0.0.0.0/0
的端口 5439 上的 入站 连接
- Bastion 上的出站 规则应保留允许所有出站流量的默认设置
如果问题仍然存在,您可以通过在 Bastion 上安装 psql
并尝试连接到 Redshift 来测试 Redshift 连接。 (Redshift 是从 PostgreSQL 派生出来的,所以它的行为类似)。
我已经使用 Linux Bastion Host Quick Start 上讨论的建议方法设置了 VPC。
我还在其中一个私有子网中创建了一个 Redshift 集群,并创建了没有规则限制的专用安全组。这是针对 Redshift 的入站和出站规则,我正在分配所有流量和端口 (0.0.0.0/0)。我什至对 public 子网上的 public EC2 实例做同样的事情。
我可以成功地通过 ssh 连接到我的 public 堡垒实例,但是我无法从那里远程登录到我的 Redshift 端点。
[ec2-user@ip-10-0-141-20 ~]$ telnet ******.redshift.amazonaws.com 5439
Trying 10.0.20.169...
Connected to ******.redshift.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.
我不确定我的配置有什么问题。在 Redshift 中,我禁用了 public 访问和 VPC 路由。
我假设你的情况是:
- 您在私有子网中有一个 Amazon Redshift 集群
- 您在同一 VPC 的 public 子网中有一个 Bastion 服务器
- 您希望将计算机上的 SQL 客户端连接到 Redshift 集群
一种方法是:
- 使用端口转发通过堡垒主机连接到 Redshift 集群
- 如果您使用的是 Linux/Mac:
ssh-add keypair.pem
ssh -A ec2-user@BASTION-IP -L 5439:xyz.redshift.amazonaws.com:5439
(这表示:将本地端口 5439 转发到堡垒,这里应该将流量发送到端口 5439 上的 Redshift 集群)
- 如果您正在使用 Windows,那么您可以使用 Pageant 和 PuTTY
- 然后,配置您的 SQL 客户端以使用
server=localhost
和port=5439
连同您的登录凭据 连接到 Redshift
如果上述方法不起作用,请检查一些事项:
- Redshift 集群上的安全组应允许来自堡垒(或来自整个 VPC 或来自
0.0.0.0/0
的端口 5439 上的 入站 连接
- Bastion 上的出站 规则应保留允许所有出站流量的默认设置
如果问题仍然存在,您可以通过在 Bastion 上安装 psql
并尝试连接到 Redshift 来测试 Redshift 连接。 (Redshift 是从 PostgreSQL 派生出来的,所以它的行为类似)。