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.