Actualmente tengo el siguiente plan Terraform:
provider "aws" { region = var.region } resource "aws_instance" "ec2" { ami = var.ami instance_type = var.instanceType subnet_id = var.subnet security_groups = var.securityGroups timeouts { create = "2h" delete = "2h" } tags = { Name = "${var.ec2ResourceName}" CoreInfra = "false" } lifecycle { prevent_destroy = true } key_name = "My_Key_Name" connection { type = "ssh" user = "ec2-user" password = "" private_key = file(var.keyPath) host = self.public_ip } provisioner "file" { source = "/home/ec2-user/code/backend/ec2/setup_script.sh" destination = "/tmp/setup_script.sh" } provisioner "remote-exec" { inline = [ "chmod +x /tmp/setup_script.sh", "bash /tmp/setup_script.sh ${var.ec2ResourceName}" ] } } resource "aws_eip" "eip_manager" { name = "eip-${var.ec2ResourceName}" instance = aws_instance.ec2.id vpc = true tags = { Name = "eip-${var.ec2ResourceName}" } lifecycle { prevent_destroy = true } }Este plan se puede ejecutar varias veces, creando una única instancia EC2 cada vez sin eliminar la anterior. Sin embargo, hay una sola IP elástica que termina siendo reasignada a la instancia EC2 creada más recientemente. ¿Cómo puedo agregar una IP elástica a cada nueva instancia que no se reasigna?
tal vez con aws_eip_association , aquí está el fragmento:
resource "aws_eip_association" "eip_assoc" { instance_id = aws_instance.ec2.id allocation_id = aws_eip.eip_manager.id }Más información aquí: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip_association