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

时间:2021-06-02 08:53:58

标签: 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
}

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 生命周期之外?

1 个答案:

答案 0 :(得分:2)

您可以使用 aws_eip 数据源获取现有 EIP 的信息,然后在您的 aws_eip_association 中使用该信息:

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
}