关于分配给我的 Amazon RDS 数据库实例的 IP 地址,我需要了解什么?
2 分钟阅读
0
我正在寻找与分配给我的 Amazon Relational Database Service(Amazon RDS)实例的 IP 地址相关的信息。
解决方法
当 Amazon RDS 在 Virtual Private Cloud(VPC)中创建数据库实例时,系统会使用数据库子网组中的 IP 地址为您的数据库实例分配一个网络接口。根据实例的配置,为您的实例分配的 IP 地址有两种不同类型。
- **私有 IP 地址:**当您在 VPC 内启动数据库实例时,该数据库实例具有用于 VPC 内部流量的私有 IP 地址。无法从互联网访问此 IP 地址。此 IP 地址用于从同一 VPC 内的资源连接到实例。默认情况下,每个 Amazon RDS 数据库实例都有一个私有 IP 地址。此 IP 地址是根据您在数据库子网组中定义的范围分配的。
- **公有 IP 地址:**公有 IP 地址可以从互联网访问。此 IP 地址用于从 VPC 外部的资源或互联网连接到实例。只有在为数据库实例选择了 Publicly accessible(可公开访问)的配置设置时,才会为数据库实例分配公有 IP 地址。
我已经为我的 RDS 实例选择了 Publicly accessible(可公开访问)设置,但是没有为实例分配公有 IP 地址
当数据库子网组中的子网是私有子网时,通常会发生这种情况。
要解决此问题,请执行以下操作:
- 打开 Amazon RDS 控制台。
- 在导航窗格中,选择 Subnet groups(子网组)。
- 选择与数据库实例关联的子网组。
您可以使用 VPC ID 和关联子网的子网 ID 查看子网组。 - 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Internet Gateways(互联网网关)。
- 检查您的 VPC 是否已连接到互联网网关。
如果您的 VPC 未连接到互联网网关,请创建互联网网关并将其附加到您的 VPC。 - 从导航窗格中,选择 Route tables(路由表)。
- 检查与您的子网关联的路由表。
- 选择 Subnet associations(子网关联)选项卡。然后,验证数据库子网组中的所有子网是否都已附加到路由表。
如果子网未与路由表关联,请选择 Edit subnet associations(编辑子网关联)。然后,选择要与路由表关联的子网。有关更多信息,请参阅将子网与路由表关联。 - 选择 Routes(路由)选项卡。然后,验证数据库子网组中的所有子网在 Destination(目的地)字段中是否具有 0.0.0.0/0,在 Target(目标)字段中是否具有互联网网关 ID。
如果子网的 Destination(目的地)和 Target(目标)字段具有其他值,请编辑路径以包含上述值。有关更多信息,请参阅在路由表中添加和删除路由。 - 打开 Amazon RDS 控制台。
- 在导航窗格中,选择 Databases(数据库)。
- 选择要修改的数据库实例,然后选择 Modify(修改)。
- 在 Connectivity(连接)下,展开 Additional configuratio(其他配置)部分,然后选择 Publicly accessible(可公开访问)。
- 选择 Continue(继续)。
- 选择 Modify DB instance(修改数据库实例)。
**注意:**请确保您的子网组不包含公有子网和私有子网的组合。这种组合可能会导致一些情况,例如主实例在公有子网中运行,而辅助实例在多可用区配置的私有子网中运行。这些情况会导致故障转移后出现连接问题。
我想查找我的 Amazon RDS 数据库实例的私有和公有 IP 地址
在 Amazon RDS 中,IP 地址是动态的,而端点是静态的。因此,最佳实践是使用端点连接到您的实例。每个 Amazon RDS 实例都有一个端点。要查找实例的端点(也称为 DNS 名称),请执行以下操作:
- 打开 Amazon RDS 控制台。
- 在导航窗格中,选择 Databases(数据库)。
- 选择要查找其 IP 地址的数据库实例。
- 选择 Connectivity & security(连接与安全)选项卡。
您可以在 Endpoint & port(端点和端口)部分查看端点信息。
当您尝试从同一 VPC 中的资源连接到数据库实例时,RDS 端点会自动解析为私有 IP 地址。当您从 VPC 外部或互联网连接到数据库实例时,端点将解析为公有 IP 地址。
您还可以通过运行以下任一命令来查找 RDS 实例的 IP 地址:
nslookup example-rds-endpoint
– 或者 –
dig example-rds-endpoint
为 RDS 数据库实例运行 nslookup 命令时,您可能会看到类似于以下内容的输出:
- 来自同一 VPC 中的 Amazon Elastic Compute Cloud(Amazon EC2)实例的输出将解析为私有 IP 地址:
[ec2-user@ip-172-xx-xx-xx ~]$ nslookup myoracledb.xxxxx.us-east-1.rds.amazonaws.com Server: xxx.xxx.xxx.xxx Address: xxx.xxx.xxx.xxx#53 Non-authoritative answer: myoracledb.xxxxx.us-east-1.rds.amazonaws.com canonical name = ec2-3-232-189-42.compute-1.amazonaws.com. Name: ec2-3-232-189-42.compute-1.amazonaws.com Address: 172.31.8.27
- 来自不同 VPC 中的 Amazon EC2 实例的输出将解析为公有 IP 地址:
[ec2-user@ip-172-xx-xx-xx ~]$ nslookup myoracledb.xxxxx.us-east-1.rds.amazonaws.com Server: xxx.xxx.xxx.xxx Address: xxx.xxx.xxx.xxx#53 Non-authoritative answer: myoracledb.xxxxx.us-east-1.rds.amazonaws.com canonical name = ec2-3-232-189-42.compute-1.amazonaws.com. Name: ec2-3-232-189-42.compute-1.amazonaws.com Address: 3.232.189.42
数据库实例的 IP 地址不一致
由于实例的 IP 地址是动态的,因此您无法为实例分配静态 IP 地址或弹性 IP 地址。分配给 RDS 数据库实例的 IP 地址在以下一种或多种情况下会发生变化:
- 实例已停止并重新启动。
**注意:**重启实例时,IP 地址不会发生变化。 - 由于实例故障和数据库实例类更新等情况,底层主机被替换。
- 实例上进行了硬件维护。
- 实例位于多可用区环境中,并且发生了故障转移。
- 数据库实例的操作系统进行软件修补。
- 数据库实例的手动故障转移由使用带故障转移的重启操作启动。
- 数据库引擎进行主要或次要版本升级。
- 实例的可用区中断。
相关信息
AWS 官方已更新 3 年前
没有评论
相关内容
- 已提问 2 年前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 个月前