01 Nov Terraform AWS
Hola un ejemplo de cómo lanzar una instancia EC2 en AWS usando terraform de HashiCorp.
provider "aws" { region = "us-east-1" profile= "default" } // https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance // ami-01eccbf80522b562b Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type resource "aws_instance" "instance-example" { ami = "ami-example" instance_type = "t3.micro" subnet_id = "subnet-example" vpc_security_group_ids = ["sg-example"] iam_instance_profile = "role-ssm" key_name = "key-example" user_data = <<EOF #!/bin/bash cd /tmp sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent EOF tags = { Name = "instance-example" Environment = "Dev" Provider = "Provider example" Schedule = "True" Stop = "MON-FRI-0000" Start = "MON-FRI-0100" Backup = "MON-FRI-0800" } }
Después de compartirles el código procedo a explicarlo.
provider
es el proveedor en este caso AWS.
region
la región en donde va a desplegar la instancia EC2.
profile
el perfil de AWS CLI que está lanzando la instancia.
resource
El recurso que estamos creando en este caso una instancia EC2.
ami
el AMI usando para el lanzamiento de la instancia.
instance_type
el tipo de instancia en este caso t3.micro
.
subnet_id
el identificador de la subnet en donde queremos que se lance la instancia.
vpc_security_group_ids
el grupo de seguridad que queremos que se adjunte a la instancia (este debe ser de tipo string por eso los (Corchetes [ ]).
iam_instance_profile
el perfil o rol (role) IAM que adjuntamos a la instancia.
key_name key
pair que se adjunta a la instancia
user_data
fragmento de código que se va a ejecutar solamente en el lanzamiento de la instancia sirve para instalar paquetes.
tags
etiquetas que tendrá la instancia lanzada.
Para aplicar debemos ejecutar los comando siguiente propios de terraform.
terraform init
Inicializa el agente terraform en el directorio en donde se encuentra el archivo .tf.
terraform plan
realiza una prueba de lo que se va a ejecutar y nos da un resultado de lo que se va a crear sin crearlo (planifica lo que hemos codificado).
terraform apply
aplica los cambios y antes de hacerlo nos pregunta si queremos realizar la acción se debe responder yes
en caso de querer ejecutar la acción o aplicarla.
terraform destroy
destruye lo creado con el comando apply.
Espero que les sea de ayuda.
Happy Hacking!