【发布时间】:2019-12-13 19:32:45
【问题描述】:
我是 AWS Redshift 的新手,无法从 Redshift 集群的架构中获取数据。集群位于 VPC 内部,无法公开访问。我配置了安全组并配置了入站:
1) 类型:Redshift,协议:TCP,端口范围:5439,来源:0.0.0.0/0
2) 类型:Redshift,协议:TCP,端口范围:5439,来源:“安全组名称”
我已经关注了一些文档、博客和各种库,例如 redshift_tool with pandas、SQLAlchemy、pyodbc 来为 python 配置集群并想出了一个使用 psycopg2 的库
conn = psycopg2.connect(
host=HOST,
port=RS_PORT,
user=RS_USER,
password=PWD)
但是对于包括 psycopg2 在内的所有库,我都面临以下错误
psycopg2.OperationalError:无法连接到服务器:连接超时 服务器是否在主机上运行并接受 端口 5439 上的 TCP/IP 连接?
Q1) 我是否缺少一些配置步骤?请建议是否有任何其他方式可以将集群与 python/drivers 连接
Q2) 如何通过 SSH 隧道连接集群?如果这是可能的连接方式,请帮助我完成步骤。
提前致谢。
【问题讨论】:
-
假设您在 VPC 之外,那么您需要通过 ssh 隧道进行连接,这并不容易解释,因为该过程取决于很多事情,特别是如果您是第一次这样做.询问已经这样做的同事或遵循一些指南。您不能使用 ssh 直接连接到 redshift,您必须通过另一个通常称为“堡垒”的服务器进行连接。此链接可能会有所帮助aws.amazon.com/blogs/security/…
-
您尝试从哪里连接?
-
@John Rotenstein:我没有尝试通过 SQLWorkbench 或任何其他工具连接集群。我正在尝试在 VPC 之外使用 psycopg2。
-
@PujabaZala 如果您的 VPC 没有公共访问权限,您希望如何连接到 Redshift?
-
@JohnRotenstein :工作成功。我忘记将它从我的系统连接到 VPN。谢谢。
标签: python amazon-web-services amazon-redshift psycopg2