Amazon web services 将预先存在的静态(弹性)IP分配给EC2实例

Amazon web services 将预先存在的静态(弹性)IP分配给EC2实例,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,假设我的AWS帐户上存在弹性IP 由于超出本问题范围的原因,该EIP不能(也不能)通过Terraform进行管理 我知道我想把这个EIP(比如11.22.33.44)分配给我通过TF创建的EC2实例 当然,传统的方法是通过TF创建EIP和EC2实例 resource "aws_eip" "my_instance_eip" { instance = "my_instance.id" vpc = true } resou

假设我的AWS帐户上存在弹性IP

由于超出本问题范围的原因,该EIP不能(也不能)通过Terraform进行管理

我知道我想把这个EIP(比如
11.22.33.44
)分配给我通过TF创建的EC2实例

当然,传统的方法是通过TF创建EIP和EC2实例

resource "aws_eip" "my_instance_eip" {
  instance = "my_instance.id"
  vpc      = true
}

resource "aws_eip_association" "my_eip_association" {
  instance_id   = "my_instance.id"
  allocation_id = "aws_eip.my_instance_eip.id"
}

但是,有没有办法通过TF让EC2知道它应该被分配为EIP,
11.22.33.44
,它不在TF生命周期内?

您可以使用数据源获取现有EIP的信息,然后在您的
aws\u EIP\u关联中使用它:

data "aws_eip" "my_instance_eip" {
  public_ip = "11.22.33.44"
}

resource "aws_eip_association" "my_eip_association" {
  instance_id   = aws_instance.my_instance.id
  allocation_id = data.aws_eip.my_instance_eip.id
}


只是想补充一些不言而喻的东西。eip必须存在且不关联