【问题标题】:How to use bastion host to SSH to Redshift如何使用堡垒主机通过 SSH 连接到 Redshift
【发布时间】:2018-12-19 12:06:02
【问题描述】:

我一直试图弄清楚如何在 Amazon Redshift 集群是私有而不是公开访问时连接它们。我正在尝试将数据从我们当前的 MySQL 数据库安全地移动到 Redshift 中的集群。目前我有一个 Python 脚本,它创建数据的 CSV,将其放入 S3,为数据创建一个表,然后使用 COPY 将其放入 Redshift。我们正在使用 Python 脚本来自动化该过程。

但是,当集群设置为私有时,我完全无法与 Redhsift 建立连接。我做了一些挖掘,发现 SSH 隧道是一种潜在的解决方案。据我所知,虽然 Redshift 不支持 SSH,但可以使用堡垒主机通过运行 psql 的 ec2 实例进行连接。问题是我需要在 Python 脚本中执行此操作,以使该过程尽可能自动化。

我创建了一个 ec2 实例并使用 PuTTY 将 psql 加载到它,但是我不确定如何将该实例用作堡垒主机,即连接到它并使用它连接到 Redshift,以及如何实际执行此操作如果可能的话,在 python 脚本中。有没有人做过类似的事情或知道如何连接到 ec2 以及从 ec2 到 redshift?

【问题讨论】:

    标签: python amazon-ec2 amazon-redshift putty ssh-tunnel


    【解决方案1】:

    堡垒将仅用于将请求从您自己的计算机转发到 Amazon Redshift。您确实不需要在堡垒上安装任何软件(例如psql)。

    假设您可以成功使用 PuTTY 登录 Bastion,在 PuTTY 中更改此配置:

    • 转到隧道配置页面
    • 源端口: 5439
    • 目标: Redshift 集群的完整 DNS 名称,后跟 :5439
    • 点击添加
    • 保存您的 PuTTY 设置

    这是来自Connecting to a Redshift Cluster with a Private IP的图片:

    此配置显示:“通过 SSH 连接将本地端口 5439 重定向到堡垒服务器。让堡垒从那里将流量发送到 REDSHIFT-DNS:5439。”

    因此,Bastion 就像一个 Jump Box,转发您的流量而不实际运行其他任何东西。

    您可以将本地源端口更改为您喜欢的任何端口,这样您就可以在同一个 SSH 连接上拥有多个隧道。

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 2021-08-17
      • 2021-10-17
      • 2021-10-16
      • 2021-11-21
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多