Introdução
Uma aplicação de entrega de pacotes precisa de intervalos de endereços separados para o serviço público e os processos internos. Você criará uma VPC, posicionará duas sub-redes sem sobreposição em zonas de disponibilidade diferentes e examinará o plano de endereços no AWS View.
Você já deve saber executar comandos da AWS CLI e ler IDs de recursos. A CLI está configurada para este ambiente novo. Ao terminar, você removerá somente os recursos que criou.
Relação com certificações
Este laboratório oferece prática dos seguintes tópicos de exame.
- Cloud Practitioner (CLF-C02) · Tarefas 3.2 e 3.5: componentes de VPC e sub-rede, e relação entre uma região e zonas de disponibilidade.
- Solutions Architect – Associate (SAA-C03) · Tarefa 3.4: posicionamento básico de camadas de sub-rede e planejamento de endereços IP sem sobreposição.
- CloudOps Engineer – Associate (SOA-C03) · Tarefa 5.1: configuração básica de VPC e sub-redes.
Criar a VPC de entregas
Nesta etapa, você escolherá o intervalo geral de endereços da aplicação e criará sua VPC.
Uma Virtual Private Cloud (VPC) é uma rede isolada para recursos de uma região da AWS. Seu bloco CIDR define os endereços que as sub-redes podem usar. A notação CIDR IPv4 combina endereço inicial e tamanho do prefixo: 10.20.0.0/16 inclui de 10.20.0.0 a 10.20.255.255. Um número de prefixo menor deixa mais bits para endereços; portanto, /16 é maior que /24.
Use o Terminal preparado para os comandos e clique na aba AWS View ao lado. A visualização lê o mesmo estado de recursos que a CLI e mostra os recursos de rede criados. Mantenha ambas as interfaces disponíveis.
Comece no diretório de trabalho:
cd /home/labex/project
Antes de alterar algo, consulte o inventário de VPCs existentes. --query seleciona ID e CIDR; --output table facilita a comparação:
aws ec2 describe-vpcs --query 'Vpcs[].{ID:VpcId,CIDR:CidrBlock}' --output table
Uma rede de referência usa 10.99.0.0/16. Outras VPCs existentes também podem aparecer. Preserve essas redes; você criará e depois removerá sua própria rede 10.20.0.0/16.
O grupo de comandos EC2 inclui operações de rede VPC. --cidr-block define o intervalo; --tag-specifications adiciona as tags Name e Project na criação. As aspas mantêm colchetes e vírgulas juntos em um único argumento.
A expressão de shell $(...) executa um comando e captura sua saída. Atribuí-la a VPC_ID salva o ID gerado para os próximos comandos. --query 'Vpc.VpcId' --output text retorna apenas esse ID:
VPC_ID=$(aws ec2 create-vpc \
--cidr-block 10.20.0.0/16 \
--tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=delivery-network},{Key=Project,Value=parcel}]' \
--query 'Vpc.VpcId' \
--output text)
Um comando cuja saída é capturada não imprime o resultado. Leia novamente o recurso usando o ID salvo. "$VPC_ID" substitui o valor como um único argumento:
aws ec2 describe-vpcs \
--vpc-ids "$VPC_ID" \
--query 'Vpcs[].{ID:VpcId,CIDR:CidrBlock,State:State}' \
--output table
O CIDR é 10.20.0.0/16 e o estado é available. No AWS View, aparece delivery-network com o mesmo CIDR e sem sub-redes de aplicação. Mantenha esse Terminal aberto para preservar os IDs salvos.
Adicionar a sub-rede do serviço público
Nesta etapa, você alocará um intervalo menor dentro da VPC e o posicionará em uma zona de disponibilidade.
Uma sub-rede é uma parte do intervalo de endereços da VPC. Cada sub-rede pertence a exatamente uma zona de disponibilidade (AZ) da região; a VPC abrange a região. Um nome como us-east-1a identifica onde os recursos da sub-rede serão posicionados.
Reserve 10.20.1.0/24 para o futuro serviço público. O intervalo inclui de 10.20.1.0 a 10.20.1.255 e está dentro de 10.20.0.0/16. A AWS reserva os primeiros quatro endereços e o último de uma sub-rede IPv4 comum, deixando 251 endereços atribuíveis neste /24. Não atribua os endereços reservados às cargas de trabalho.
Examine os nomes das zonas disponíveis. A região foi configurada quando o ambiente iniciou:
aws ec2 describe-availability-zones \
--query 'AvailabilityZones[].{Zone:ZoneName,State:State}' \
--output table
Use us-east-1a nesta sub-rede e us-east-1b na próxima. --vpc-id escolhe a rede pai; --availability-zone, o posicionamento. Salve o novo ID para a limpeza:
PUBLIC_SUBNET_ID=$(aws ec2 create-subnet \
--vpc-id "$VPC_ID" \
--cidr-block 10.20.1.0/24 \
--availability-zone us-east-1a \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=delivery-public},{Key=Project,Value=parcel}]' \
--query 'Subnet.SubnetId' \
--output text)
Leia novamente a rede pai, o intervalo e a zona:
aws ec2 describe-subnets \
--subnet-ids "$PUBLIC_SUBNET_ID" \
--query 'Subnets[].{ID:SubnetId,VPC:VpcId,CIDR:CidrBlock,Zone:AvailabilityZone}' \
--output table
O ID da VPC corresponde ao salvo, o intervalo é 10.20.1.0/24 e a zona é us-east-1a. AWS View coloca essa sub-rede dentro de delivery-network.
O nome delivery-public descreve o uso pretendido. Um nome sozinho não torna a sub-rede pública: ela ainda precisa de uma rota para um gateway de Internet, que você configurará no próximo laboratório.
Adicionar uma sub-rede separada para os processos internos
Nesta etapa, você dará aos processos internos uma sub-rede própria sem sobreposição e comparará o plano completo.
Duas sub-redes da mesma VPC não podem se sobrepor. Usar 10.20.2.0/24 para os processos internos separa seu intervalo de 10.20.1.0/24. Ambos estão dentro do /16 da VPC.
Posicione a sub-rede em us-east-1b para observar que uma VPC contém sub-redes em zonas diferentes. Isso demonstra o posicionamento; você ainda não implantou uma aplicação redundante entre as zonas.
PRIVATE_SUBNET_ID=$(aws ec2 create-subnet \
--vpc-id "$VPC_ID" \
--cidr-block 10.20.2.0/24 \
--availability-zone us-east-1b \
--tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=delivery-private},{Key=Project,Value=parcel}]' \
--query 'Subnet.SubnetId' \
--output text)
Use um filtro no servidor para selecionar somente as sub-redes da sua VPC. Em Name=vpc-id,Values=..., Name identifica o filtro e Values contém o ID correspondente:
aws ec2 describe-subnets \
--filters "Name=vpc-id,Values=$VPC_ID" \
--query 'Subnets[].{ID:SubnetId,CIDR:CidrBlock,Zone:AvailabilityZone}' \
--output table
As duas linhas mostram o plano abaixo. Os IDs gerados e a ordem podem variar:
| Uso | CIDR | Zona de disponibilidade |
|---|---|---|
| Serviço público | 10.20.1.0/24 |
us-east-1a |
| Processos internos | 10.20.2.0/24 |
us-east-1b |
Tente adicionar 10.20.1.128/25 para observar o limite de sobreposição. Esse intervalo menor já está dentro de delivery-public, portanto não pode ser outra sub-rede desta VPC:
aws ec2 create-subnet \
--vpc-id "$VPC_ID" \
--cidr-block 10.20.1.128/25 \
--availability-zone us-east-1a
O erro esperado contém InvalidSubnet.Conflict. Nenhuma terceira sub-rede é criada. Preserve os dois intervalos /24 válidos.
Compare os mesmos intervalos e zonas no AWS View. Nenhuma sub-rede tem uma rota para a Internet ainda. Os intervalos distintos oferecem locais separados para aplicar rotas e regras de acesso nos próximos laboratórios.

Exemplo: ambos os CIDRs estão dentro do intervalo da VPC; cada sub-rede mostra sua zona. Os IDs variam no seu ambiente.
Remover a rede de prática
Nesta etapa, você removerá suas duas sub-redes e a VPC, preservando a rede de referência existente.
Os recursos têm dependências: uma VPC não pode ser removida enquanto contém suas sub-redes. Exclua apenas os IDs que você salvou. Um comando de exclusão bem-sucedido não produz saída:
aws ec2 delete-subnet --subnet-id "$PUBLIC_SUBNET_ID"
aws ec2 delete-subnet --subnet-id "$PRIVATE_SUBNET_ID"
Agora remova a VPC vazia:
aws ec2 delete-vpc --vpc-id "$VPC_ID"
Leia novamente o inventário completo de VPCs em vez de depender de uma tag editável para provar a exclusão:
aws ec2 describe-vpcs --query 'Vpcs[].{ID:VpcId,CIDR:CidrBlock}' --output table
Não há VPC 10.20.0.0/16. A referência 10.99.0.0/16 e as demais redes existentes permanecem. Uma consulta de inventário que falha não comprova a limpeza. AWS View mostra que não há VPC de aplicação.
Execute a verificação de conclusão desta etapa.
O próximo laboratório começa em um ambiente novo com sua própria aplicação preparada. Ele ensina como um gateway de Internet, uma rota e um endereço público permitem que uma solicitação externa alcance a aplicação.
Resumo
Você criou um intervalo de VPC, dividiu-o em duas sub-redes de aplicação sem sobreposição e posicionou cada uma em uma zona de disponibilidade. Conferiu as relações com a CLI e AWS View e removeu somente sua rede de prática.
Continue com Conectar uma sub-rede pública à Internet para transformar o plano de endereços em um caminho de aplicação funcional.



