splash_auth

SERVICIO CONECTADO
INAUGURACIÓN DE NUEVA PAGINA!
Hosting / VPS

Diseño de Redes VPC en AWS con Terraform

Sistema IA
5 MIN LECTURA
08 Jun 2026

Diseño de Redes VPC en AWS con Terraform

Representación Técnica

Requisitos previos


Tener una cuenta en AWS
Tener Terraform instalado en la máquina local
  • Conocimientos básicos de AWS y Terraform
  • Configuración de la cuenta de AWS


    Antes de empezar, debemos configurar nuestra cuenta de AWS para que podamos utilizarla con Terraform. Para hacer esto, debemos crear un nuevo grupo de seguridad y una nueva VPC.

    Crear un nuevo grupo de seguridad

    bash
    > [!IMPORTANT]
    > Asegúrese de que la cuenta de AWS tenga permisos adecuados para crear recursos.
    hcl
    resource "aws_security_group" "mi_grupo_seguridad" {
    name = "mi_grupo_seguridad"
    description = "Mi grupo de seguridad para la VPC"

    # Reglas de entrada
    ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    }

    # Reglas de salida
    egress {
    from_port = 0
    to_port = 0
    protocol = "-1"
    cidr_blocks = ["0.0.0.0/0"]
    }
    }

    Crear una nueva VPC

    hcl
    resource "aws_vpc" "mi_vpc" {
    cidr_block = "10.0.0.0/16"

    tags = {
    Name = "Mi VPC"
    }
    }

    Creación de la red subyacente


    Una vez que tenemos la VPC creada, podemos crear la red subyacente. Para hacer esto, debemos crear una nueva subred y una nueva tabla de ruteo.

    Crear una nueva subred

    hcl
    resource "aws_subnet" "mi_subred" {
    cidr_block = "10.0.1.0/24"
    vpc_id = aws_vpc.mi_vpc.id
    availability_zone = "us-west-2a"

    tags = {
    Name = "Mi subred"
    }
    }

    Crear una nueva tabla de ruteo

    hcl
    resource "aws_route_table" "mi_tabla_ruteo" {
    vpc_id = aws_vpc.mi_vpc.id

    tags = {
    Name = "Mi tabla de ruteo"
    }
    }

    Configuración de la red de seguridad


    Una vez que tenemos la red subyacente creada, podemos configurar la red de seguridad. Para hacer esto, debemos crear una nueva regla de seguridad y asociarla a la subred.

    Crear una nueva regla de seguridad

    hcl
    resource "aws_security_group_rule" "mi_regla_seguridad" {
    type = "ingress"
    from_port = 22
    to_port = 22
    protocol = "tcp"
    source_security_group_id = aws_security_group.mi_grupo_seguridad.id
    security_group_id = aws_security_group.mi_grupo_seguridad.id
    }

    Asociar la regla de seguridad a la subred

    hcl
    resource "aws_route_table_association" "mi_asociacion_ruteo" {
    subnet_id = aws_subnet.mi_subred.id
    route_table_id = aws_route_table.mi_tabla_ruteo.id
    }

    Configuración de la red de datos


    Una vez que tenemos la red de seguridad configurada, podemos configurar la red de datos. Para hacer esto, debemos crear una nueva instancia de EC2 y asociarla a la subred.

    Crear una nueva instancia de EC2

    hcl
    resource "aws_instance" "mi_instancia_ec2" {
    ami = "ami-abc123"
    instance_type = "t2.micro"
    vpc_security_group_ids = [aws_security_group.mi_grupo_seguridad.id]
    subnet_id = aws_subnet.mi_subred.id
    }

    Asociar la instancia de EC2 a la subred

    hcl
    resource "aws_network_interface_attachment" "mi_asociacion_red" {
    instance_id = aws_instance.mi_instancia_ec2.id
    network_interface_id = aws_network_interface.mi_red.id
    device_index = 0
    }

    Configuración de la red de almacenamiento


    Una vez que tenemos la red de datos configurada, podemos configurar la red de almacenamiento. Para hacer esto, debemos crear un nuevo volumen de EBS y asociarlo a la instancia de EC2.

    Crear un nuevo volumen de EBS

    hcl
    resource "aws_ebs_volume" "mi_volumen_ebs" {
    availability_zone = "us-west-2a"
    size = 10
    }

    Asociar el volumen de EBS a la instancia de EC2

    hcl
    resource "aws_volume_attachment" "mi_asociacion_ebs" {
    device_name = "/dev/sdh"
    volume_id = aws_ebs_volume.mi_volumen_ebs.id
    instance_id = aws_instance.mi_instancia_ec2.id
    }

    Configuración de la red de redirección


    Una vez que tenemos la red de almacenamiento configurada, podemos configurar la red de redirección. Para hacer esto, debemos crear un nuevo grupo de redirección y asociarlo a la instancia de EC2.

    Crear un nuevo grupo de redirección

    hcl
    resource "aws_lb_target_group" "mi_grupo_redireccion" {
    name = "mi-grupo-redireccion"
    port = 80
    protocol = "HTTP"
    vpc_id = aws_vpc.mi_vpc.id
    }

    Asociar el grupo de redirección a la instancia de EC2

    hcl
    resource "aws_lb_target_group_attachment" "mi_asociacion_redireccion" {
    target_group_arn = aws_lb_target_group.mi_grupo_redireccion.arn
    target_id = aws_instance.mi_instancia_ec2.id
    port = 80
    }

    Configuración de la red de balanceo


    Una vez que tenemos la red de redirección configurada, podemos configurar la red de balanceo. Para hacer esto, debemos crear un nuevo grupo de balanceo y asociarlo a la instancia de EC2.

    Crear un nuevo grupo de balanceo

    hcl
    resource "aws_lb" "mi_grupo_balanceo" {
    name = "mi-grupo-balanceo"
    internal = false
    load_balancer_type = "application"
    security_groups = [aws_security_group.mi_grupo_seguridad.id]
    subnets = [aws_subnet.mi_subred.id]
    }

    Asociar el grupo de balanceo a la instancia de EC2

    hcl
    resource "aws_lb_listener" "mi_asociacion_balanceo" {
    load_balancer_arn = aws_lb.mi_grupo_balanceo.arn
    protocol = "HTTP"
    port = 80

    default_action {
    type = "forward"
    target_group_arn = aws_lb_target_group.mi_grupo_redireccion.arn
    }
    }

    Configuración de la red de monitoreo


    Una vez que tenemos la red de balanceo configurada, podemos configurar la red de monitoreo. Para hacer esto, debemos crear un nuevo grupo de monitoreo y asociarlo a la instancia de EC2.

    Crear un nuevo grupo de monitoreo

    hcl
    resource "aws_cloudwatch_metric_alarm" "mi_grupo_monitoreo" {
    alarm_name = "mi-grupo-monitoreo"
    comparison_operator = "GreaterThanOrEqualToThreshold"
    evaluation_periods = "1"
    metric_name = "CPUUtilization"
    namespace = "AWS/EC2"
    period = "300"
    statistic = "Average"
    threshold = "80"

    actions_enabled = true
    alarm_actions = [aws_sns_topic.mi_topic.arn]
    }

    Asociar el grupo de monitoreo a la instancia de EC2

    hcl
    resource "aws_sns_topic" "mi_topic" {
    name = "mi-topic"
    }

    Conclusión


    En este artículo, hemos visto cómo diseñar una red de VPC en AWS con Terraform. Hemos creado una nueva VPC, una nueva subred, una nueva tabla de ruteo, una nueva regla de seguridad, una nueva instancia de EC2, un nuevo volumen de EBS, un nuevo grupo de redirección, un nuevo grupo de balanceo y un nuevo grupo de monitoreo.