tf/network/

Esse mĆ³dulo Ć© responsĆ”vel pela criaĆ§Ć£o de uma rede VPC, subnets, internet gateway, route table e nat gateway.

Vamos passar por cada recurso presente no arquivo main.tf e entender o que ele faz.

āš ļø

No caso deste mĆ³dulo, ele Ć© executado apenas uma vez, diferentemente de modulos como ec2, pois nĆ£o Ć© necessĆ”rio criar uma nova rede para cada ambiente.

CriaĆ§Ć£o da VPC

O primeiro recurso que criamos Ć© a VPC, que Ć© a nossa rede virtual.

resource "aws_vpc" "vpc" {
cidr_block = var.vpc_cidr_block
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = var.vpc_name
}
}
šŸ“

Aqui definimos o CIDR da nossa rede, que Ʃ o endereƧo de rede que serƔ utilizado para todas as subnets. AlƩm disso, definimos o nome da VPC.

CriaĆ§Ć£o da Subnet

Agora vamos criar as subnets que serĆ£o utilizadas na nossa VPC.

resource "aws_subnet" "public_subnet" {
vpc_id = aws_vpc.vpc.id
cidr_block = var.public_subnet_cidr_block
availability_zone = var.availability_zone
map_public_ip_on_launch = true
tags = {
Name = var.public_subnet_name
}
}
šŸ“

Aqui definimos o CIDR da nossa subnet pĆŗblica, que Ć© o endereƧo de rede que serĆ” utilizado para a subnet pĆŗblica. AlĆ©m disso, definimos o nome da subnet.

CriaĆ§Ć£o e AssociaĆ§Ć£o da Route Table

Uma route table Ć© uma tabela de roteamento que define quais rotas serĆ£o utilizadas para enviar pacotes de dados para uma determinada rede.

resource "aws_route_table" "public_rt" {
vpc_id = aws_vpc.vpc.id
tags = {
Name = "Public RT"
}
}

Agora vamos associar a nossa subnet pĆŗblica com a nossa route table.

resource "aws_route_table_association" "public_rta" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_rt.id
}

CriaĆ§Ć£o do Internet Gateway e AssociaĆ§Ć£o com a Route Table

Agora vamos criar um internet gateway, que Ć© um recurso que permite que a nossa VPC tenha acesso Ć  internet.

resource "aws_internet_gateway" "igw" {
vpc_id = aws_vpc.vpc.id
tags = {
Name = "IGW"
}
}

Uma route Ʃ uma regra que define como o trƔfego serƔ encaminhado para uma determinada rede.

resource "aws_route" "default_route" {
route_table_id = aws_route_table.public_rt.id
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.igw.id
}
šŸ“

Aqui definimos a rota padrĆ£o para a nossa VPC, que Ć© a rota que serĆ” utilizada para enviar pacotes de dados para a internet.