Amazon RDS 终端节点内部

Posted

技术标签:

【中文标题】Amazon RDS 终端节点内部【英文标题】:Amazon RDS Endpoint internal 【发布时间】:2014-02-01 02:21:16 【问题描述】:

如何使 ec2 实例通过内部 ip 地址或 dns 与 aws 上的 rds 实例通信? 我只看到像 xxx.cehmrvc73g1g.eu-west-1.rds.amazonaws.com:3306 这样的公共 dns 内部 ipaddress 会比公共 dns 更快吗?

谢谢

【问题讨论】:

【参考方案1】:

后人注意,确保您在 VPC 对等链接上启用 DNS!

为 VPC 对等连接启用 DNS 解析支持

使 VPC 能够将公共 IPv4 DNS 主机名解析为私有 IPv4 从对等 VPC 中的实例查询地址时,您必须修改 对等连接。

必须为 DNS 主机名和 DNS 解析启用两个 VPC。

为对等连接启用 DNS 解析支持

    在 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

    在导航窗格中,选择对等连接。

    选择 VPC 对等连接,然后选择操作、编辑 DNS 设置。

    确保来自对等 VPC 的查询解析为私有 IP 本地 VPC 中的地址,选择启用 DNS 的选项 解决来自对等 VPC 的查询。

    如果对等 VPC 在同一个 AWS 账户中,您可以选择该选项 为来自本地 VPC 的查询启用 DNS 解析。这确保 来自本地 VPC 的查询解析为 对等 VPC。如果对等 VPC 位于 不同的 AWS 帐户。

    选择保存。

    如果对等 VPC 在不同的 AWS 账户中,则对等的所有者 VPC 必须登录 VPC 控制台,执行步骤 2 到 4,然后 选择保存。

【讨论】:

谢谢!不知道这个!奇怪的是它不是默认值。 请注意,如果您尝试跨不同区域进行对等互连,则无法执行此操作。 :( 在这种情况下仍在寻找解决方案。 这个可以改成接受的答案吗? 它确实可以跨区域工作,但您必须在两端分别启用它。【参考方案2】:

您可以使用“端点”DNS 名称。在 VPC 中使用时它将解析为内部 IP,在您的 AWS 网络之外使用时将解析为公共 IP。切勿使用实际的 IP 地址,因为 RDS 的工作方式将来可能会发生变化。

如果您从您的 EC2(在同一 VPC 上)服务器 ping 它,您可以验证这一点。

鉴于我的答案是唯一正确的答案,我得到了如此多的反对票,这真是令人惊讶,这里有 2 个其他来源:

https://forums.aws.amazon.com/thread.jspa?threadID=70112

您可以使用“端点”DNS 名称。在 EC2 中使用时,它将解析为内部 IP。

https://serverfault.com/questions/601548/cant-find-the-private-ip-address-for-my-amazon-rds-instance2

AWS 控制台中提供的 DNS 端点将解析为来自 Amazon 网络内的内部 IP。

【讨论】:

不适用于 VPC 对等互连。对等 RDS 实例的 VPC 时,在另一个 VPC 中使用时,终端节点不会解析为内部 IP。 这并非无关紧要,而且您的回答具有误导性。如果 RDS 实例可公开访问,则其端点永远不会解析为来自另一个 VPC 的内部 IP(因此您对“在 EC2 内部”的假设在这里失败)。它将始终解析为外部 IP。 RDS 实例必须是不可公开访问的,才能拥有解析为内部 IP 的端点。 我认为这个答案是绝对正确的。最初的问题不是在谈论 VPC 对等。 @Ashesh 请参阅 filipe-alvarez 对此的回答 @Neo ? 嘿 - 如果它在 2 年后帮助其他人!【参考方案3】:

查看 AWS EC2 文档:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses。

不过,这似乎不一定适用于 RDS。

【讨论】:

是的,如果我从 AWS 网络内部连接到 RDS,它会自动将 enpoin 转换为内部 ip。【参考方案4】:

从同一 VPC 中解析您的 RDS 实例时,Amazon DNS 服务会返回内部 IP。

如果 RDS 实例可从外部访问,您将看到来自 VPC 外部的外部 IP。但是,如果 EC2 实例无法公开使用,则内部 IP 地址将返回给外部和内部查找

内部 ip 地址会比公共 dns 提供的外部地址更快吗? 很可能是因为在使用外部地址时需要路由数据包,从而增加延迟。

它还要求您的 EC2 实例具有公共 IP 或 NAT 网关以及适当的安全组和路由,这会增加成本、增加复杂性并降低安全性。

【讨论】:

我觉得这个答案可能包含对我有用的信息,但我不太明白你在说什么需要做。【参考方案5】:

很简单,使用 Windows 上的命令提示符或通过 unix 终端远程登录您的 RDS 端点

例如:telnet "你的 RDS 端点" "端口"

尝试连接“您在此处获取 RDS 内部 IP

【讨论】:

以上是关于Amazon RDS 终端节点内部的主要内容,如果未能解决你的问题,请参考以下文章

使用 node-mysql 从 heroku 节点应用程序连接到 Amazon RDS 数据库

AWS RDS 写入器终端节点与读取器终端节点

无法 ping AWS RDS 终端节点

如何使用 Amazon Cognito 注销终端节点?

如何对 Amazon API Gateway 终端节点进行 CNAME

向 Amazon SNS 移动推送服务注册移动/Android 终端节点