O que é o AWS VPC?

Neste artigo vamos falar um pouco sobre VPC e da importância deste serviço estar bem configurado dentro da sua infraestrutura.

Figura 1 - AWS VPC
Figura 1 – AWS VPC

VPC é um acrônimo de Virtual Private Cloud, este é o serviço de rede da AWS que é a base para quase tudo o que você vai criar, ele permite a comunicação entre os recursos que existirão na sua solução, porém é um engano nosso dizer que este serviço seja apenas para comunicação de rede, ele é um pacote de coisas como: Regras de firewall, RouteTables, VPC Endpoints permitindo comunicar mult-regions, NAT entre outros.

Vamos então criar nossa primeira VPC, clicando em Serviços, procure por VPC.

Clique para criar uma nova VPC, ele irá pedir o nome do serviço e o CIDR da sua rede.

Classless Inter-Domain Routing (CIDR)

O CIDR é muito importante pois ele irá definir o tamanho da sua rede inicial. O CIDR é a conotação do seu IP que está no final dele, onde temos uma barra precedido de um número ex: 10.0.0.0/8

Um endereço IP tem até 32 bits separados em blocos de 8 bits (1 byte), então o CIDR máximo que temos no padrão IPV4 é de /32, porém você irá notar que nunca usaremos /32 para definir uma rede, pois sempre devemos descontar 2 bits de reserva que são da sua própria rede e o último endereço de que é de Broadcast, logo temos /30. Existe uma formula de cálculo para saber quantos IP de máquinas poderemos ter na nossa rede. A Fórmula de cáclulo é bem simples:

2 elevado á (32-CIDR) – 2 – Exemplo: 2 elevado á (32-30) – 2 = 2 hosts válidos

Voltando (depois da “nerdisse” :-))

Voltando a criação da VPC então vamos colocar no nosso CIDR /16 (2 elevado a 16 – 2), nossa rede então terá 65534 IP’s válidos, por se tratar de uma rede interna e privada o nosso IP será 10.0.0.0/16

Figura 2 - IP/CIDR
Figura 2 – IP/CIDR

Clique em Create e logo a AWS irá te informar o seu novo VPC ID.

Figura 3 - VPC criada
Figura 3 – VPC criada

Criando uma Subnet

Agora que temos nossa rede criada, vamos criar duas sub-divisões dela (subnet), essa fatia da rede, nos permite segmentar o tráfego em pequenas porções, ajudando em performance, fácil administração e até mesmo seguraça, pois podemos definir que uma pequena fatia da rede tenha acessibilidade a internet e outra seja totalmente privada.

Para isso clique em Subnets e selecione a sua nova VPC e agora vamos definir a mascara dessa sub-rede, neste ponto devemos respeitar estritamente a mascara da rede criada. Nossa rede era a 10.0.0.0/16 e nossa sub-rede será a 10.0.1.0/24 e 10.0.2.0/24
A tela de criação da subnet irá te ajudar e validar, caso a fatia da rede que está criando esteja errada.

Após criar a subnet, a informação aparecerá da seguinte forma.

Figura 4 - Subnet Criada
Figura 4 – Subnets Criadas

Agora precisamos definir os RouteTables da subnet informando, no nosso caso, que a Subnet pública estará acessível para a internet, diferente da nossa subnet privada.

RouteTable

Para isso clique em Routetables, depois em criar, informe o nome rt-subnet-public-1, clique em criar novamente. Agora selecione o RouteTable criado e vamos associá-lo a subnet-public-1

Figura 5 - Associação de subnets
Figura 5 – Associação de subnets

Agora precisamos criar um Internet Gateway para que por fim possamos definir no RouteTable a regra para esta comunicação.

Internet Gateway

Este serviço da VPC chamado Internet Gateway permite que você faça que seus recursos de rede estejam visíveis para o mundo, este recurso ficará atrelado a sua VPC, porém apenas via Route Table que o tráfego de dados será redirecionado, então a importância de segmetar a rede fica aparente agora

Para cria um Internet Gateway, clique em criar e coloque o nome: igw-subnet-public-1. Clique em Criar novamente.

Após criado, selecione o mesmo e clique em Actions, selecione Attach to VPC

Figura 6 - Anexando IGW
Figura 6 – Anexando IGW

Selecione a nossa VPC criada e pronto agora a tela irá informar que temos um Internet Gateway atrelado a VPC.

Voltando ao RouteTable

Agora de volta no RouteTable, selecione o rt-subnet-public-1 e vamos criar a regra de comunicação entre a subnet e a o internet gateway.

Ao selecionar, clique em Routes e depois em Edit Routes, irá abrir a tela de edição das rotas.

Figura 7 - Editando Route Table
Figura 7 – Editando Route Table

Pronto nossa subnet terá acessibilidade de IP’s externos da VPC.

Neste exemplo não criamos um RouteTable para a rede privada, pois por padrão a AWS já cria um, com regras de rede interna apenas.

Agora ao atrelar esta VPC a um recurso, sendo ela uma EC2 ou RDS, você deve usar a fatia da rede corretamente, sendo, uma EC2 que será acessada remotamente por administradores via internet, terá atrelado a sua criação a VPC e a subnet pública, já um banco de dados terá a VPC e a subnet privada.

Network ACL

Um importante ponto de segurança é definir regras especificas neste recurso.
O Network ACL fala diretamente com as regras de Inbound e Outbound da VPC a nível de Rede ainda, aumentando a segurança da sua rede. Logo sua importância e criteriosidade é bem complexa.
Por padrão, quando criado uma nova VPC, o network ACL vem com tudo liberado, porém as regras de negação também é criada, mas deixando como padrão como tudo liberado.

Figura 8 - Network ACL Default
Figura 8 – Network ACL Default

Security Groups

Já o Security Groups é uma segunda barreira de segurança já a nível de Máquina/Recursos mesmo, onde podemos definir outros tipos de limitações e permissões, como por exemplo, permitir que um recurso especifico recebe tráfego apenas de outro recurso que esteja no mesmo Security Group.

Então é isso, AWS VPC é uma parte fundamental quando vamos criar uma nova infraestrutura cloud, pois esta será a base de todos os recursos a partir de então.

Esperamos que este artigo ajude a você a tomar boas decisões quando for iniciar um projeto. Caso tenha ficado alguma dúvida, temos um vídeo demonstrando todos esses pontos clique aqui e aqui.

Abraços.