如何在AWS中获取RDS实例的IP地址

Posted

技术标签:

【中文标题】如何在AWS中获取RDS实例的IP地址【英文标题】:How to get the IP address of RDS instance in AWS 【发布时间】:2015-03-24 20:26:10 【问题描述】:

关于如何在 AWS 中获取 RDS 实例的 IP 地址的问题,我在互联网上到处都得到了相同的答案,但我不知道 dig 是什么,以及如何使用它。

How to allocate IP address in VPC to RDS instance?

请帮我找到我在 AWS 中的 RDS 实例的 IP 地址?

【问题讨论】:

【参考方案1】:

它不会在 RDS 实例的配置页面上显示 IP 地址,因为 RDS IP 本质上是动态的。如果您需要它们,您可以为它们dig,但使用实例的 DNS 端点会是更好的服务器。这仍然是静态的,可以在 AWS 中 RDS 实例的详细信息选项卡上找到。

【讨论】:

导航是选择实例并显示详细信息->连接->端点 就我而言,我必须处理一些自定义 DNS(我不太了解),而管理该 DNS 的人想知道 RDS 实例的 IP。所以是的,我的应用程序使用端点,但我仍然需要知道如何确定当前 IP。【参考方案2】:

您的 AWS 实例的 IP 地址将是 RDS 实例的 IP 地址。

如果您的 AWS 实例的主机名是 blah.blah.amazonaws.com,那么您可以在 Windows 和 Linux 上使用 dig 命令(在 Linux 机器上)或 ping 命令来找出主机的 IP 地址:

ping blah.blah.amazonaws.com

这将为您返回主机的 IP 地址(类似这样):

c:\ping www.google.com

Pinging www.google.com [216.58.210.100] with 32 bytes of data:
Reply from 216.58.210.100: bytes=32 time=14ms TTL=58
Reply from 216.58.210.100: bytes=32 time=15ms TTL=58
Reply from 216.58.210.100: bytes=32 time=14ms TTL=58

所以 www.google.com 的 IP 地址是 216.58.210.100。 dig 将为您提供更多输出,但 IP 地址也在其中。但有时您的 AWS 实例的实际 IP 地址实际上是在主机名本身中。例如:

ip-12-34-56-78.us-west-2.compute.internal

IP 地址12.34.56.78 已在名称中(取决于您的实例)。您可以在 AWS 控制台/仪表板中找到主机名。

【讨论】:

@Vivek 那我们怎么知道IP地址呢? 在 RDS 详细信息页面上,它应该显示您的 IP 或主机名。【参考方案3】:

使用这个:

SELECT inet_server_addr();

【讨论】:

这就是答案!伟大的。允许我使用 dblink 在 2 个 Postgres 实例之间移动表,其中使用端点名称会导致错误 ERROR: could not establish a connection 在哪里使用这个?【参考方案4】:

answer given by Paolo Bolla 很好,但只适用于Postgresql

Microsoft SQL Server,请使用:

SELECT 
  local_net_address = ConnectionProperty('local_net_address')
, local_tcp_port = ConnectionProperty('local_tcp_port') 

【讨论】:

【参考方案5】:

您还可以使用Nslookup <<RDS SQL Server>> 命令来计算此AWS blog post 中建议的IP 地址。

【讨论】:

【参考方案6】:

dig 是一个命令行实用程序,用于查找域名指向的 IP 地址。

你可以简单地使用:

apt-get update && apt-get install dnsutils -y

然后查找RDS实例的IP(端点xxx.yyy.us-east-1.rds.amazonaws.com),运行以下命令:

dig xxx.yyy.us-east-1.rds.amazonaws.com

dig 的输出中,您将能够在 ANSWER SECTION 中找到 IP 地址:

;; ANSWER SECTION:
xxx.yyy.us-east-1.rds.amazonaws.com. 5 IN A 172.30.1.253

如您所见,RDS 实例端点解析为 A 类型的 DNS 记录,带有 Private IP address

【讨论】:

【参考方案7】:

查找 RDS ip 地址的简单方法:从本地计算机打开命令提示符并 ping RDS 端点。您将看到来自目标主机 IP 地址的回复。那是你的RDS ip地址!不管它是否可以公开访问。

【讨论】:

我想用这种方法添加,在对数据库端点执行 ping 操作后获得 ip,复制该 ip 并在网络接口搜索该 ip 以获得它的私有 ip。【参考方案8】:

在 AWS 管理控制台上 - 位置:AWS 管理控制台 -> EC2 -> 网络和安全,网络接口

您可以在描述选项卡上同时查看所有 IP 地址及其资源的详细信息。

【讨论】:

以上是关于如何在AWS中获取RDS实例的IP地址的主要内容,如果未能解决你的问题,请参考以下文章

如何将 AWS RDS 安全组中的 Zapier IP 地址列入白名单

如何获取 RDS 标签?

如果AWS RDS恢复发生,如何重新连接

如何在不停机的情况下更改 AWS-RDS 实例类型?

如何连接mysql数据库(AWS下的RDS实例)

AWS:为单独的 EB 实例克隆 RDS