【发布时间】:2018-11-05 18:37:57
【问题描述】:
我正在 AWS 上设置一个 redshift 数据库,我已按照本文中的说明进行操作 - https://chartio.com/resources/tutorials/connecting-to-a-database-within-an-amazon-vpc/
我无法连接到数据库。
这是我的设置 -
我有一个使用 Amazon RDS 开发的 PostgreSQL 数据库实例。它连接到具有两个子网的 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 设置为否
-它在 us-east-2b 中运行
另外,EC2 上有一个实例。它在 us-east-2c 上。
它与具有以下入站规则的安全组相关联:
First- 类型:自定义 TCP 规则,协议:TCP,端口范围:5432,来源:10.0.0.0/32
第二-类型:SSH,协议:TCP,端口范围:22,来源:(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) 访问它。
我曾尝试研究此问题,但令人惊讶的是,我无法找到满足这些需求的内容。我是新手,所以如果我缺少发布此内容所需的部分,或者我以某种方式搞砸了,请提醒我,我会相应地更新。
【问题讨论】:
-
您的 Postico 客户在哪里?是在 EC2 上,还是在外面,在 Internet 上?您的 Redshift 数据库是在公共子网还是私有子网中?
标签: amazon-web-services connection amazon-redshift amazon-vpc aws-security-group