通过Terraform将网络接口设备连接到ec2实例AWS

时间:2018-01-03 19:40:16

标签: amazon-web-services terraform

我正在尝试在Terraform中连接网络接口设备。我尝试使用下面的代码进行测试,但在创建实例时,AWS在您附加任何内容之前已经创建了一个eni。

所以当你附上一些东西时,你最终会得到第二个eni。我只需要一个主要私有IP,它会产生2个私有IP。

resource "aws_network_interface" "test" {
  subnet_id = "${aws_subnet.public_a.id}"
  private_ips = ["10.0.0.50"]
  security_groups = ["${aws_security_group.web.id}"]
  attachment {
    instance = "${aws_instance.test.id}"
    device_index = 1
  }
}

1 个答案:

答案 0 :(得分:1)

这样做的方法是在创建EC2实例时在terraform中使用network_interface参数。您的terraform模板应如下所示:

provider "aws" {
    region = "us-east-2"
}

resource "aws_network_interface" "eni1" {
    subnet_id        = "subnet-1234567"
    private_ips      = ["172.31.16.17"]
}

resource "aws_instance" "testec2instance" {
    ami             = "ami-12345678"
    instance_type   = "t2.micro"
    tags {
        Name        = "test-eni-attach-instance-01"
    }
    network_interface {
        device_index            = 0
        network_interface_id    = "${aws_network_interface.eni1.id}"
    }
}

如果您只想为EC2实例指定确切的IP地址,则可以在创建实例时在terraform中使用private_ip参数。