生产环境AWS Neptune集群连接超时,非生产环境正常,求排查方向
生产Neptune集群访问超时遗漏排查点
- 底层网络连通性排查
- 先验证端口连通性:执行
telnet neptune-instance-.......neptune.amazonaws.com 8182或nc -zv neptune-instance-.......neptune.amazonaws.com 8182,如果该步骤直接超时,说明问题出在底层网络,和请求格式、IAM权限无关 - 核对客户端网络链路:确认执行命令的客户端和生产Neptune集群是否在同一VPC,跨VPC访问的话需要确认VPC对等连接、中转网关配置正常,对应路由表有指向Neptune子网的路由,且网络ACL没有拦截8182端口的出入站流量
- 确认公网访问配置:如果客户端在公网环境,需要检查生产Neptune集群是否开启了公网访问权限,非生产集群通常会默认开启公网访问,生产环境默认会关闭该配置
- 先验证端口连通性:执行
- 访问控制策略排查
- 检查Neptune VPC端点策略:如果生产环境配置了Neptune专用VPC端点,需要确认端点策略没有限制当前使用的角色、源IP的访问权限,即使安全组开放权限,端点策略拦截也会导致请求超时
- 核对中间安全设备规则:确认生产环境的WAF、内网防火墙等设备没有拦截8182端口的访问请求,非生产环境通常不会配置这类严格的中间拦截规则
- 集群配置核对
- 检查参数组配置:确认生产集群
neptune_query_timeout参数设置没有过小,同时确认是否开启了请求限流阈值,流量超过阈值时请求会被拒绝返回超时 - 确认集群后台任务:检查集群是否有正在进行的备份、维护窗口操作,即使集群显示运行中,后台重负载任务也可能临时阻塞外部请求
- 检查参数组配置:确认生产集群
- 认证配置校验
- 核对当前凭证所属账户:执行
aws sts get-caller-identity确认当前使用的是生产账户的有权限角色,避免误用到非生产账户的凭证 - 补全签名区域参数:确认awscurl使用的签名区域和生产集群所在区域一致,可在命令中增加
--region <生产集群实际区域>参数重试,跨区域签名不匹配会导致请求被拦截
- 核对当前凭证所属账户:执行
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

