Beanstalk UI env 尝试访问连接到同一 VPC 中的 RDS 的 Beanstalk API env - 导致连接超时

Beanstalk UI env trying to access Beanstalk API env connected to RDS in same VPC - results in Connect Timedout

Beanstalk A - 主持 UI Beanstalk B - 主持 API RDS - 托管 SQL 数据库而不是 public

1) 我没有在配置中将 B 附加到 RDS,但我通过设置环境变量并设置 RDS 的安全组以允许来自 B 的入站 MYSQL 通过 B 访问 RDS 2)我可以ssh进入B并通过B访问RDS 3)我在负载均衡器和 https 之后都有 A 和 B 4) javascript/node js 上的 A 和 B 运行 5) B 有入站规则允许来自 A

的所有 TCP

问题:

当我转到 A 的 url 并进行最终命中 B 的搜索时,我收到 'Connect ETIMEDOUT' 错误。

我意识到这与允许访问有关,但我有允许 B 的 RDS 安全组和允许 A 的 B 安全组。那我做错了什么?

API 通话情况如何? A 是从服务器端代码还是在前端 JavaScript 代码中对 B 进行 API 调用?


如果 A 从服务器端代码对 B 进行 API 调用:

首先确保以下内容正确: 负载均衡器 B 接受来自分配给 EC2 服务器 A 的安全组的流量。EC2 服务器 B 接受来自分配给负载均衡器 B 的安全组的流量。

您可能需要将 B 的负载均衡器设置为私有,以便 A 和 B 之间的流量保持在 VPC 内。如果流量从服务 A 流出 VPC 并返回到 VPC 以命中服务 B,则与安全组的关联将丢失,因此负载均衡器 B 的安全组规则将不起作用。


如果 A 从前端进行 API 调用 JavaScript 代码:

分配给负载均衡器 B 的安全组需要与负载均衡器 A 具有相同的规则,我假设它允许来自任何来源的所有 HTTP/HTTPS 流量。这是因为 API 调用实际上发生在 Internet 上,源自用户本地计算机上的 Web 浏览器,而不是服务器 A。