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

Posted

技术标签:

【中文标题】同一子网中具有相同安全组的 2 个 ec2 实例,但 1 个不可访问【英文标题】:2 ec2 instances in same subnet with same security group, but 1 is not accessible 【发布时间】:2022-01-03 18:13:13 【问题描述】:

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

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

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

【问题讨论】:

安全组规则到底是什么?您能否从第一个实例到达第二个实例(如果安全组允许?)。您能否通过 ssh 连接到第二个实例(如果它是基于 linux/unix 的实例)。 【参考方案1】:

看来你的情况是:

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

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

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

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

【讨论】:

非常感谢。这就是问题所在。不敢相信,我为此浪费了好几天。

以上是关于同一子网中具有相同安全组的 2 个 ec2 实例,但 1 个不可访问的主要内容,如果未能解决你的问题,请参考以下文章

实例无法通信 - 相同的 VPC 和子网,不同的安全组

VPC 中私有子网中 EC2 实例的 Amazon ELB

SSH到位于VPC中的私有子网中的AWS EC2实例

同一子网内的 AWS EC2 SSH <private_ip_address>

Terraform 一个具有两个子网的 EC2 实例

将 IP 地址输入 EC2 安全组规则时使用啥格式?