在 AWS 中,一个 EC2 实例可以同时位于多个 VPC 中吗?

在 AWS 中,一个 EC2 实例可以同时位于多个 VPC 中吗?

我认为答案是否定的,但我想确保我没有遗漏任何内容。EC2 实例是否可以同时在多个 VPC 中拥有 IP 地址?

我尝试创建 2 个 VPC,然后创建两个网络接口,每个 VPC 中一个,但似乎无法将它们附加到同一个 EC2 实例,因为无法将它们附加到不在该 VPC 上的实例,这是正确的吗?

例如,我在 vpc1 中创建 vpc1 和 eni1(网络接口)。然后在 vpc2 中创建 vpc2 和 eni2。然后我创建 ec21(一个 EC2 实例)并将其放在 vpc1 中,并以 eni1 作为其网络接口。当我打开 eni2 并选择附加时,我无法选择 ec21,它显示:

vpc2 中的 us-esat-1f 中没有正在运行或已停止的实例。

答案1

更新:自 2023 年 10 月 26 日起,多 VPC ENI 连接

不,这不可能

网络接口只能连接到与接口位于同一 VPC 中的实例。

Amazon VPC 常见问题

您的 ec2 实例已绑定到其主网络接口的 VPC。如果您想要跨 VPC 连接,则需要设置 VPC 对等或 VPN。

一个 ec2 实例可以在多个子网中拥有多个网络接口,但它们都必须位于同一个 VPC 中。

答案2

我刚刚确认现在这是可行的,只要您尝试进行多宿主的两个 VPC 来自同一个帐户和可用区域。

您可以在一个 VPC 中启动 EC2 实例,并将另一个 VPC(但位于同一可用区)的辅助 ENI 附加到该实例。这样,您就可以在具有不同网络和安全配置的 VPC 之间创建多宿主实例。您无法在不同 AWS 账户的 VPC 之间创建多宿主实例。(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/scenarios-enis.html#creating-dual-homed-instances-with-workloads-roles-on-distinct-vpcs

UI 怪癖(2023 年 11 月):我尝试使用 Web 控制台 UI 的“附加 ENI”功能将来自不同 VPC 的网卡添加到现有实例,但它不允许我选择我想要的 ENI(尽管 ENI 可用、在同一个账户和同一个 AZ 中)——它只允许我选择来自与实例上的第一个网卡相同的主 VPC 的 ENI。我认为这只是 Web UI 的限制。

您可以在 Web UI 中通过创建启动模板来解决这个问题,在该模板中添加两个网络接口,这些接口可以来自不同的 VPC,没有问题。如果您从该模板启动实例,它将从两个 vpc 各自的子网中获取(取决于您的配置)一个地址。

我怀疑如果你从终端进行操作(使用 aws-cli),你可以绕过这个怪癖并修改你现有的实例(除了启动新的实例)。但我还没有证实。

相关内容