如何使用 Terraform 将多个 AWS 弹性 IP 分配给新创建的 EC2 实例?

问题描述

使用 terraform,我需要向单个新 EC2 实例添加 3 个弹性 IP。 terraform yml 将创建实例以及 EIP。

我尝试这样做:

resource "aws_eip" "server_dev1_eip1" {
  count = length(aws_instance.server_dev1)

  instance = aws_instance.server_dev1.*.id[count.index]
  vpc      = true
  lifecycle {
    prevent_destroy = true
  }
}

resource "aws_eip" "server_dev1_eip2" {
  count = length(aws_instance.server_dev1)

  instance = aws_instance.server_dev1.*.id[count.index]
  vpc      = true
  lifecycle {
    prevent_destroy = true
  }
}

resource "aws_eip" "server_dev1_eip3" {
  count = length(aws_instance.server_dev1)

  instance = aws_instance.server_dev1.*.id[count.index]
  vpc      = true
  lifecycle {
    prevent_destroy = true
  }
}

以上是创建EIP,但只将一个与实例相关联。

请指教

解决方法

您不能将多个弹性 IP 分配给单个弹性网络接口 (ENI)。默认情况下,一个 EC2 实例只有一个 ENI。您需要将更多 ENI 附加到 EC2 实例,然后将弹性 IP 附加到 ENI。