AWS na prática | VPC

AWS na prática | VPC

Continuando com a série de artigos AWS na prática, vamos entender o que é uma VPC, ou Virtual Private Cloud.

Como o próprio nome sugere, pense em uma VPC como um data center lógico dentro da AWS. Uma VPC permite que você crie uma topologia lógica de rede muito semelhante com uma topologia tradicional em um ambiente tradicional.

Em uma VPC você tem controle dos seu range de IP’s privados, podendo segmentar sua rede em várias subnets. Você pode alocar múltiplos IP’s públicos e interfaces de rede (ENI’s). É possível também conectar seu ambiente on-premisse com seu ambiente na AWS através de VPN ou um serviço chamado Cloud Connect.

Subnets

Quando você cria uma VPC, você pode escolher qual endereçamento de IP’s privados deseja usar com base nas classes A, B e C. Porém existe uma característica na AWS, que o maior range que pode ser usado é um /16 e o menor range deve ser um /28.

  • Classe A: 10.0.0.0/16
  • Classe B: 172.16.0.0/16
  • Classe C: 192.168.0.0/16

Em uma subnet, reservamos o primeiro e o último IP para endereçamento de rede e de broadcast, respectivamente. Na AWS, além do endereçamento de rede, os primeiros 3 IPs são reservados para uso da AWS, portanto não devem ser usados no ambiente.

Exemplo: subnet 10.0.0.0/24

Captura-de-Tela-2017-10-02-a-s-15.33.02

Lembra quando falamos sobre escopo de serviços? No caso da VPC o escopo é de Região, ou seja, quando você cria uma VPC, ela automaticamente passa a existir em todas as AZ’s da região. Porém existe um detalhe importante. Quando você “quebra” seu range de IP’s da VPC em subnets, cada subnet passa a ter escopo de AZ. Isso significa que se você criou uma subnet 10.0.0.0/24 na AZ-A, você não poderá usar endereços dessa rede em qualquer outra AZ. Vamos simular o cenário de uma VPC com 4 subnets, sendo duas subnets Públicas e duas subnets Privadas, trabalhando em multi-az. O endereçamento de rede poderia ser algo como:

Captura-de-Tela-2017-10-02-a-s-15.36.07

Para reduzir a complexidade do ambiente, evite usar muitas subnets. Os recursos de Security Groups e Network ACL’s podem ser usados para segmentar recursos dentro de uma mesma subnet. Isso não quer dizer que não se deva segmentar seu ambiente em rede pública e privada. Isso é altamente recomendável.

Os principais recursos de uma VPC são:

  • Route Table
  • Internet Gateway
  • Virtual Private Gateway
  • NAT Gateway (ou NAT Instance)
  • Security Groups
  • Network Access Control nkst

Route Table

Uma route table possui um conjunto de regras (ou rotas), que determinam para onde o tráfego de rede deve ser direcionado. Cada VPC possui uma route table default. Cada subnet em uma VPC deve ser associada com uma route table. Se não tiver nenhuma route table associada na subnet, ela automaticamente usará a route table padrão da VPC.

custom-route-table-diagram

Geralmente usamos route tables para configurar rotas para:

  • Internet Gateway
  • Virtual Private Gateway
  • NAT Gateway
  • VPC Peering

Internet Gateway

Internet Gateway é um recurso da VPC, escalável, redundante e altamente disponível, responsável por possibilitar a comunicação das instâncias com a internet. Ele é usado para dois propósitos:

  • Fornecer um destino (target) para sua tabela de rotas.
  • Traduzir endereços de rede (NAT) para instâncias com endereço IP público

internet-gateway-overview-diagram

Virtual Private Gateway

Um Virtual Private Gateway é um concentrador de VPN, gerenciado pela AWS, que possibilita que você conecte seu ambiente on-premisse com sua VPC.

VPN_Basic_Diagram

NAT Gateway e NAT Instance

NAT Gateway é um serviço gerenciado pela AWS usado para permitir que instâncias em uma subnet privada se conectem com a internet e com serviços da AWS fora de sua VPC, porém restringe o acesso de conexões vindas da internet às suas instâncias. Com o NATGateway suas instâncias em uma rede privada conseguem se conectar à internet sem a necessidade de terem um endereço IP público.

NAT Instance tem a mesma finalidade, porém não é um serviço gerenciado pela AWS, então você precisa criar uma instância Linux, configurar o IPTables e cuidar da disponibilidade e escalabilidade dela. Apesar de ser um pouco mais custoso, é vantajoso usar o serviço gerenciado pela AWS ao invés de NAT Instance.

nat-gateway-diagram

Security Groups

Um security Group atua como um firewall virtual, controlando o tráfego de entrada e saída. Quando você cria uma instância, você pode relacionar até 5 security groups para a instância. O escopo de atuação do Security Group é de instâncias, ou seja, você pode ter instâncias em uma mesma subnet mas com regras de security groups totalmente diferentes. Se você não relacionar nenhum security group para a instância no momento da criação, ela assumirá o security group padrão da VPC.

scenario-1-sg-inbound-gwt

Os security groups são stateful, isso significa que, por exemplo, quando você libera uma regra de inbound, o tráfego de resposta para conexões dessa regra será automaticamente liberado.

Outra característica do security group é que ele somente permite regras de ALLOW, a política padrão dele é DENY.

security-diagram

Network ACL’s

Network Access Control List é uma segunda camada de defesa para seu ambiente. O escopo de atuação da Network ACL é de subnet, portanto quando você configura uma regra de NACL em uma subnet, todas as instâncias dessa subnet estarão protegidas pela regra. Você pode configurar suas regras de Network ACL da mesma forma que faz com os security groups, com a diferença de que ela é Stateless. Quando você configura uma regra de inbound, você também precisa configurar a regra de outbound. Você também pode criar regras de allow e deny, diferentemente dos security groups, que permite apenas allow.

Por padrão é criada uma Network ACL em sua VPC. Essa NACL padrão é configurada com a política padrão de allow all, tanto para inbound como para outbound. Quando você cria uma nova Network ACL, a política padrão dela será deny all.

figure-2

Conclusão

Entender os recursos da VPC é fundamental para implementar ambientes na AWS. Security Groups, Nat Gateway e Route tables farão parte do seu dia a dia. Se você está estudando para tirar qualquer uma das 3 certificações de nível associate, saiba que cairão várias questões deste tema.