我想对尝试连接 Amazon Aurora PostgreSQL 兼容版数据库 (DB) 集群时出现的连接超时错误进行故障排除。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
当您连接到 Aurora PostgreSQL 兼容版数据库集群时,网络配置问题通常会导致连接超时错误。要识别和解决连接超时问题,请执行以下操作。
检查数据库实例状态
完成以下步骤:
- 打开 Amazon Relational Database Service (Amazon RDS) 控制台。
- 在导航窗格中,选择 Databases(数据库)。
- 在 Status(状态)列中,确保 Aurora PostgreSQL 兼容版数据库实例处于 Available(可用)状态。<br id=hardline_break/>
重要事项: 如果实例不可用,请等待其恢复可用状态,然后再继续进行后续故障排除。
检查安全组配置
要检查入站和出站规则,请完成以下步骤:
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 在导航窗格中,选择 Security Groups(安全组)。
- 选择与您的 Aurora PostgreSQL 兼容版数据库集群关联的安全组。
- 选择 Inbound rules(入站规则)。
- 确保存在允许来自客户端 IP 地址或安全组的流量通过端口 5432(或自定义端口)的规则。<br id=hardline_break/>
注意: 选择 Edit inbound rules(编辑入站规则),添加或修改接受所需流量的规则。
- 如果从 Amazon EC2 实例进行连接,请选择 Outbound rules(出站规则)。
- 确保 Amazon EC2 实例的安全组允许出站流量通过端口 5432 流向 Aurora PostgreSQL 兼容版集群的安全组。<br id=hardline_break/>
注意: 选择 Edit outbound rules(编辑出站规则),添加或修改接受所需流量的规则。
检查网络 ACL 配置
要检查网络访问控制列表(网络 ACL)配置,请完成以下步骤:
- 打开 Amazon Virtual Private Cloud (Amazon VPC) 控制台。
- 在导航窗格中,选择 Network ACLs(网络 ACL)。
- 选择与 Aurora PostgreSQL 兼容版数据库集群的子网关联的网络 ACL。
- 选择 Inbound rules(入站规则)和 Outbound rules(出站规则),然后验证这些规则是否允许客户端和数据库之间通过端口 5432 进行流量传输。
检查路由表配置
要检查路由表配置,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Route Tables(路由表)。
- 选择与 Aurora PostgreSQL 兼容版数据库集群的子网关联的路由表。
- 验证您的无类别域间路由是否存在指向正确目标的路由。
例如,目标可以是互联网网关、NAT 网关或对等连接。如果从不同的 VPC 或本地网络进行连接,请确保已设置必要的路由。
检查 VPC 对等或中转网关配置
如果通过 VPC 对等连接从不同的 VPC 进行连接,请完成以下步骤:
- 按照 VPC 对等连接流程进行操作,验证 VPC 之间的 VPC 对等连接是否已正确设置。
- 检查两个 VPC 中的路由表是否包含必要的路由来引导二者之间的流量。
- 验证两个 VPC 中的安全组是否接受所需的流量。
如果通过中转网关从不同的 VPC 进行连接,请完成以下步骤:
- 遵循设计最佳实践,确保在 VPC 之间正确设置中转网关。
- 检查所有 VPC 连接的路由表是否包含必要的路由来引导它们之间的流量。
- 验证两个 VPC 中的安全组是否接受所需的流量。
检查 DNS 解析
如果跨 VPC 进行连接,请检查是否已为 VPC 对等连接启用 DNS 解析。
完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Peering connections(对等连接)。
- 选择您的对等连接。
- 选择 Actions(操作),然后选择 Edit DNS settings(编辑 DNS 设置)。
- 在 Edit DNS settings(编辑 DNS 设置)部分中,允许请求方和接受方 VPC 进行 DNS 解析。
检查互联网网关 IP 地址
如果尝试从 VPC 外部进行连接,且集群可以公开访问,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Internet gateways(互联网网关)。
- 找到您的 VPC 的互联网网关,然后验证其是否处于 Attached(已连接)状态。
- 为您的互联网网关选择 VPC ID。
- 在 Details(详细信息)中,选择 Main route table(主路由表)。
- 选择 Routes(路由),然后验证是否存在目标 IP 地址为 0.0.0.0/0 且指向目标互联网网关的路由。
测试与数据库实例的连接
测试您的连接,验证是否存在与网络或身份验证相关的问题。如果连接测试成功,则可能是您的数据库凭据出现问题。
要使用 telnet 测试网络连接,请运行以下命令:
telnet CLUSTER-ENDPOINT 5432
注意: 请将 CLUSTER-ENDPOINT 替换为 Aurora PostgreSQL 兼容版集群端点,并将 5432 替换为您的数据库端口。PostgreSQL 的默认数据库端口为 5432。
要在 telnet 不可用时测试网络连接,请运行以下命令:
nc -zv CLUSTER-ENDPOINT 5432
注意: 请将 CLUSTER-ENDPOINT 替换为 Aurora PostgreSQL 兼容版集群端点,并将 5432 替换为您的数据库端口。
如果连接成功,则表示您的安全组配置正确。
注意: Amazon RDS 不接受互联网控制消息协议 (ICMP) 流量,包括 ping。
检查可公开访问的配置
如果尝试从 VPC 外部连接到您的集群,则您的集群必须可公开访问。或者,您可以使用其他连接方法,例如堡垒主机或 AWS Direct Connect。
要检查您的集群是否可公开访问,请完成以下步骤:
- 打开 Amazon RDS 控制台。
- 在导航窗格中,选择 Databases(数据库)。
- 选择 Aurora PostgreSQL 兼容版数据库集群,然后选择 Modify(修改)。
- 在 Connectivity(连接)部分中,选择 Additional configuration(其他配置)。
- 确认已将集群设置为 Publicly accessible(可公开访问)。
检查 IP 地址是否存在冲突
验证您的本地网络与 VPC CIDR 范围之间是否存在 IP 地址冲突。如果存在冲突,您可能需要使用 NAT 或调整网络配置。
要检查您的 VPC 的 CIDR,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Your VPCs(您的 VPC),然后选择用于本地网络连接的 VPC。
- 选择 CIDR 选项卡,然后确保 CIDR 数据块不与本地网络上的任何 IP 地址重叠。
使用 AWS CLI 检查 VPC CIDR
要使用 AWS CLI 描述 VPC CIDR 数据块,请运行以下 describe-vpcs AWS CLI 命令:
aws ec2 describe-vpcs \
--vpc-ids VPC-ID \
--region REGION
注意: 请将 VPC-ID 替换为您的 VPC ID,并将 REGION 替换为您的 AWS 区域。
相关信息
连接到 Amazon Aurora 数据库集群
使用安全组控制流向 AWS 资源的流量
使用网络访问控制列表控制子网流量
管理子网路由表
什么是 VPC 对等连接?