如何连接我的redshift数据库?

时间:2018-05-26 16:29:25

标签: amazon-web-services connection amazon-redshift amazon-vpc aws-security-group

我正在AWS上设置红移数据库,并且我已按照本文中的说明进行操作 - https://chartio.com/resources/tutorials/connecting-to-a-database-within-an-amazon-vpc/

我无法连接到数据库。

这是我的设置 -

我有一个PostgreSQL数据库实例,我用Amazon RDS编译。它连接到具有两个子网的Amazon VPC。

子网A在us-east-2c中设置。它与具有两条路线的路线表相关联。第一个目的地为10.0.0.0/16,目标为“本地”,状态为“活跃”,传播为“否”。第二个目标为0.0.0.0/0,目标是与VPC关联的Internet网关。

子网B设置在us-east-2b中。它的目的地为10.0.0.0/16,目标是“本地”。

PostgreSQL数据库与具有此入站规则的安全组关联:类型:自定义TCP规则,协议:TCP,端口范围:5432和源:10.0.0.0/32。没有出站规则。

有关数据库的其他详细信息:

-Publicly Accessible设置为No

- 它正在us-east-2b

中运行

此外,EC2上还有一个实例。它在us-east-2c上。

它与具有这些入站规则的安全组相关联:

First- Type:Custom TCP Rule,Protocol:TCP,Port Range:5432,Source:10.0.0.0/32

Second- Type:SSH,Protocol:TCP,Port Range:22,Source:(my-ip-address)/ 32

第三种类型:SSH,协议:TCP,端口范围:22,来源:(安全组的组ID)

两个安全组都与具有以下设置的相同VPC关联:IPv4 CIDR:10.0.0.0/16,IPv6 CIDR :(空白)。

我对设置的理解是EC2实例是公共的,我可以通过我的SQL客户端(Postico)进行SSH连接。然后,EC2实例将私下连接到Redshift数据库。

这是我的问题 -

a)我以前从未说过这件事,如果不知道的话,我可能做错了。

b)我正在尝试从Postico创建SSH连接。我不知道为“主机”或“端口”填写什么值。此外,我不知道“用户”和“密码”是指我的计算机上的帐户的用户名和密码,还是它是否完全引用了其他内容。

我的目标只是能够拥有一个公众无法使用的PostgreSQL数据库,但允许我从我的SQL客户端(Postico)访问它。

我试图研究这个问题,但是我能够找到满足这些需求的令人惊讶的内容缺乏。我是新手,所以如果我错过了要发布的内容,或者如果我以某种方式搞砸了,请提醒我,我会相应更新。

1 个答案:

答案 0 :(得分:1)

您的入站安全组有"来源:10.0.0.0/32"这意味着只有10.0.0.0可以连接到它,这是一个无效的主机地址。更改/ 32以匹配您的网络(/ 16)。

Redshift的端口通常为5439.您正在引用5432。

我不明白你的" b"题。你想连接什么?

[更新新信息]

我刚刚意识到你想要做的事情。

您的目标是使用SSH从桌面连接到EC2,然后连接到RDS。这不起作用。

解决方案是设置一个VPN,例如OpenVPN,允许您在AWS中连接到您的VPC,然后OpenVPN会将您的客户端请求转发到RDS(VPN路由)。

我所做的是使用OpenVPN设置EC2实例。然后,当我需要VPN访问AWS时,我打开和关闭此实例。我有从我的桌面执行此操作的批处理脚本(启动和停止EC2实例)。

另一种选择是允许Internet访问RDS。您可以使用安全组锁定仅对您的家庭/工作IP地址的Internet访问。根据您的Internet提供商,您的IP可能会更改,这意味着使用新的IP地址更新您的安全组,但这很容易做到。

此页面将显示您放入安全组的公共IP地址:What is my IP