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.