同一子网中具有相同安全组的 2 个 ec2 实例,但 1 个实例不可访问

2 ec2 instances in same subnet with same security group, but 1 is not accessible

我在同一个 VPC 和同一个子网中有 2 个 EC2 实例,它们都附加了相同的安全组。但是 1 个实例具有启动实例时分配的 public ip(比方说 public-ip-instance)。另一个只有私有 IP,但我创建并附加了一个弹性 ip(可以说是 elastic-ip-instance)。所以这两个实例现在都有 public ip。

但是我可以使用启动期间分配的 public ip 访问 ec2 实例,而不是使用弹性 ip 的实例。两者都有相同的用户数据脚本。我只是尝试使用实例 ip 地址通过浏览器访问实例。

我试过到处搜索,似乎通过弹性 ip 访问 ec2 实例应该没有任何区别,但它似乎不起作用。通过弹性 ip 进行实例访问需要什么,或者我做错了什么。

看来您的情况是:

  • 您使用安装 Web 服务器的用户数据脚本启动了 Amazon EC2 实例
  • 启动实例时,未为其分配 Public IP 地址
  • 您后来添加了一个弹性 IP 地址
  • 您无法通过该服务器上的 HTTP 访问内容

当 public 子网中的 EC2 实例没有 IP 地址时,无法访问互联网。因此,当您的用户数据脚本 运行 并试图安装 Web 服务器时,它无法从 Internet 下载该软件。因此,实例上未安装 Web 服务器。

您可以通过登录实例并再次运行 安装脚本 来更正此问题。由于您已经添加了一个弹性 IP 地址,这次它会起作用。

或者,终止实例并启动另一个实例,确保在启动时为其分配一个 public IP 地址。