本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
当服务无法连接到 Amazon RDS 或下游服务时
如果您的服务无法连接到 Amazon RDS 数据库或其他下游应用程序或服务,则可能存在网络配置问题。本主题将引导您完成一些步骤,以确定您的网络配置是否存在问题,以及纠正这些问题的选项。要了解有关 App Runner 出站流量配置的更多信息,请参阅为出站流量启用 VPC 访问权限 。
注意
要查看您的 VPC 连接器配置,请从 App Runner 控制台的左侧导航窗格中选择网络配置。然后选择 “传出流量” 选项卡。选择一个 VPC 连接器。下一页显示有关 VPC 连接器的详细信息。在此页面中,您可以查看和深入了解以下内容:使用 VPC 的子网、安全组和 App Runner 服务。
缩小应用程序无法连接到其他下游服务的原因
-
确保 VPC 连接器中使用的子网是私有子网。如果连接器配置了公有子网,则您的服务将遇到错误,因为每个子网的底层 Hyperplane ENI(弹性网络接口)没有公有 IP 空间。
如果您的 VPC 连接器使用公有子网,则可以使用以下选项来更正此配置:
-
创建一个新的私有子网,并使用它来代替 VPC 连接器的公有子网。有关更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 的子网。
-
通过 NAT 网关路由现有的公有子网。有关更多信息,请参阅 Amazon VPC 用户指南中的 NAT 网关。
-
-
验证 VPC 连接器的安全组入口和出口规则是否正确。在 App Runner 控制台的左侧导航窗格中,选择网络配置 > 传出流量。从列表中选择 VPC 连接器。下一页列出了您可以选择检查的安全组。
-
验证您尝试连接的 RDS 实例或其他下游服务的安全组入站和出站规则是否正确。有关更多信息,请参阅 App Runner 应用程序尝试连接的下游服务的服务指南。
-
要确认您的 App Runner 配置之外没有其他类型的网络设置问题,请尝试连接到 App Runner 之外的 RDS 或下游服务:
-
尝试从同一 VPC 中的 Amazon EC2 实例连接到 RDS 实例或服务。
-
如果您正在尝试连接到服务 VPC 终端节点,请通过从同一 VPC 中的 EC2 实例访问相同的终端节点来验证连接。
-
-
如果第 4 步中的任何一项连接测试失败,则很可能您的 AWS账户中存在其他资源的 App Runner 配置之外存在问题。请联系 Su AWS pport 寻求帮助,以进一步隔离和修复其他网络配置的问题。
-
如果您按照步骤 4 中的说明成功连接到 RDS 实例或下游服务,请按照此步骤中的说明继续操作。我们将通过启用和检查 Hyperplane ENI 流量日志来检查流量是否正在进入 ENI。
注意
为了能够完成这些步骤并获取所需的 ENI 流日志信息,必须在 App Runner 服务成功启动后尝试连接 RDS 或下游服务。当 RDS 或下游服务处于 “运行” 状态时,您的应用程序必须执行与 RDS 或下游服务的连接操作。否则,可以在 App Runner 的回滚工作流程中清理 ENI。这种方法可确保ENI可以继续进行进一步调查。
-
从 AWS 控制台启动 EC2 控制台。
-
在左侧导航窗格的 “网络和安全” 分组中,选择 “网络接口”。
-
滚动到接口类型和描述列,在与 VPC 连接器关联的子网中找到 ENI。它们将具有以下命名模式。
-
接口类型:far gate
-
描述:以 AWSAppRunner ENI(示例:AWSAppRunner ENI - abcde123-abcd-1234-1234-abcde1233456)开头
-
-
使用各行开头的复选框选择适用的 ENI。
-
从 “操作” 菜单中选择 “创建流日志”。
-
在提示中输入信息,然后选择页面底部的创建流日志。
-
检查生成的流日志。
-
如果您在测试连接时流量正在进入 ENI,则问题与 ENI 设置无关。除了 App Runner 服务之外,您的 AWS 账户中的其他资源可能存在网络配置问题。如需进一步帮助,请联系 AWS Support。
-
如果您在测试连接时流量没有进入 ENI,我们建议您联系 Support 以查看 Fargate AWS 服务是否存在任何已知问题。
-
-
使用网络 Reach ability Analyzer 工具。当无法访问虚拟网络路径中的源时,此工具可识别阻塞组件,从而帮助确定网络配置错误。有关更多信息,请参阅什么是 Reach ability Analyzer? 在《亚马逊 VPC Reach ability Analyzer 指南》中。
输入 App Runner ENI 作为源,输入 RDS ENI 作为目的地。
-
-
如果您无法进一步缩小问题范围,或者在完成前面的步骤后仍然无法连接到 RDS 或下游服务,我们建议您联系 Su AWS pport 寻求进一步帮助。