AWS EC2 实例:Web 应用程序已成功部署但在浏览器上仍然无法访问

AWS EC2 Instance: Web App successfully deployed but remains unreachable on the browser

我有一个 MERN 应用程序,并且已成功将其部署到 AWS EC2 实例上。 在生产环境中,应用程序在端口 80 上提供服务。
因此,当我尝试通过输入在浏览器上访问它时:

EC2_INSTANCE_PUBLIC_IP_ADDRESS:80

EC2_INSTANCE_PUBLIC_IP_ADDRESS

它一直在加载,直到最终达到此状态:

This site can’t be reached EC2_INSTANCE_PUBLIC_IP_ADDRESS took too long to respond.

Try:

Checking the connection Checking the proxy and the firewall ERR_CONNECTION_TIMED_OUT

我尝试像在端口 3000 上的开发环境中那样单独 运行 前端应用程序,所以当我尝试在

上访问它时

EC2_INSTANCE_PUBLIC_IP_ADDRESS:3000

同样的事情发生了。
知道发生了什么事吗?

检查与 EC2 实例关联的 security group。安全组可以看作是与EC2实例关联的防火墙配置。

您的安全组需要为端口 80(或 3000,根据您的问题 and\or 活动配置)定义入站规则。您不需要有出站规则:

Security groups are stateful - if you send a request from your instance, the response traffic for that request is allowed to flow in regardless of inbound security group rules. Responses to allowed inbound traffic are allowed to flow out, regardless of outbound rules.

我先看看安全组。如果它仍然不起作用,则 EC2 实例的子网从 Internet 的可达性可能存在问题。例如,它可能未连接到 internet gateway.

更高级:

除了 Internet 网关之外,还有其他方法可以将您的子网连接到 Internet,例如 NAT gateways and VPN connections。然而,您似乎很乐意使用 public IP 连接到您的工作,只需确保使用特定于您的个人 IP 地址的限制性入站规则配置您的安全组,然后是 /32 CIDR(播放围绕安全组 GUI,我记得 AWS 可以为你自动填充你的 IP,然后你会看到它有一个 /32 后缀)

补充说明:

您的安全组不需要出站规则即可通过 Internet 连接到 EC2 实例,但您可能想要指定一个非常宽松的出站规则,以便您可以连接到 EC2 实例并检索内容来自网络。如果没有出站规则,您甚至无法检索您可能想要安装的软件包(例如 yum install -y some_package