Praticar de graça

🔧Como esta trilha funciona

Aqui o jogo vira do avesso: em vez de "crie o recurso X", você recebe um chamado — a infraestrutura já existe, já está no ar e está quebrada. Ninguém te diz qual é o defeito. Seu trabalho é investigar e consertar. E a rede funciona de verdade: quando você acerta o conserto, o site volta na hora.

O que você vai treinar

A habilidade que separa quem decorou comandos de quem opera nuvem: diagnosticar sob incerteza. É o que você faz num plantão de verdade, e é o que uma entrevista técnica pergunta — não "qual o comando pra criar uma VPC", mas "o site caiu, e agora?".

O método, passo a passo

Onde o problema costuma estar

Tabela de rotas
diz pra onde o tráfego vai. Sub-rede pública precisa de uma rota 0.0.0.0/0 apontando pro internet gateway — a falta dela é clássica.
Network ACL
firewall da SUB-REDE. Duas pegadinhas: vale a regra de menor número que casar, e ela não tem estado (precisa liberar entrada E saída).
Security group
firewall da INSTÂNCIA. Esse tem estado: se a entrada é permitida, a resposta volta sozinha. É o suspeito mais acusado e muitas vezes inocente.
ACCEPT / REJECT
o veredito de cada linha do flow log. REJECT numa porta específica aponta o dedo pra quem bloqueou.
Interface de rede (eni-)
o "cabo" da instância. O id dela nos logs é o que liga uma linha de log à máquina certa.

Comandos que você aprende nesta trilha

Cada um deles roda de verdade no terminal do CLImb, com a mesma saída e as mesmas mensagens de erro que a AWS devolve.

aws ec2 create-network-acl-entry

aws ec2 create-network-acl-entry

aws ec2 create-network-acl-entry --network-acl-id acl-xxxx --rule-number 100 \
--protocol tcp --port-range From=80,To=80 --cidr-block 0.0.0.0/0 \
--rule-action allow --ingress

aws ec2 delete-flow-logs

aws ec2 delete-flow-logs

aws ec2 delete-flow-logs --flow-log-ids fl-xxxx

aws s3 mb

make bucket (criar bucket)

aws s3 mb s3://<nome-do-bucket>

aws ec2 create-flow-logs

aws ec2 create-flow-logs

aws ec2 create-flow-logs --resource-type VPC --resource-ids vpc-xxxx \
--traffic-type ALL --log-destination-type s3 \
--log-destination arn:aws:s3:::meu-bucket-de-logs

aws ec2 describe-flow-logs

aws ec2 describe-flow-logs

aws ec2 describe-flow-logs

aws ec2 describe-security-groups

aws ec2 describe-security-groups

aws ec2 describe-security-groups

aws ec2 describe-route-tables

aws ec2 describe-route-tables

aws ec2 describe-route-tables
aws ec2 describe-route-tables --route-table-ids rtb-xxxx
aws ec2 describe-route-tables --filter "Name=association.subnet-id,Values='subnet-xxxx'"

aws ec2 create-route

aws ec2 create-route

aws ec2 create-route --route-table-id rtb-xxxx --gateway-id igw-xxxx --destination-cidr-block 0.0.0.0/0

aws ec2 describe-network-acls

aws ec2 describe-network-acls

aws ec2 describe-network-acls
aws ec2 describe-network-acls --filter "Name=association.subnet-id,Values='subnet-xxxx'"

aws ec2 delete-network-acl-entry

aws ec2 delete-network-acl-entry

aws ec2 delete-network-acl-entry --network-acl-id acl-xxxx --ingress --rule-number 40

aws s3 cp

copiar arquivos de/para o S3

aws s3 cp <origem> <destino>

O que você pratica (15 atividades)

Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.

Feche uma porta na network ACL

A network ACL é o firewall da SUB-REDE. Crie uma regra de entrada número 90 que nega a porta 23 (telnet) vinda de qualquer lugar. <small>(vale a regra de MENOR número que casar)</small>

Pare de gravar o tráfego

Os flow logs cobram por volume ingerido. Apague o flow log. <small>(o que já foi entregue no S3 continua lá — isso só para de gravar dali pra frente)</small>

O chamado chegou

Segunda-feira, 8h. O site da loja não abre e ninguém consegue entrar no servidor por SSH. A infra existe e o servidor está ligado — alguém mexeu na rede na sexta.<br><br>Comece reproduzindo o problema: tente acessar o site com curl http://198.51.100.42. <small>(sim, vai falhar — é esse o ponto de partida de todo diagnóstico)</small>

Ligue as câmeras (flow logs)

Antes de sair mexendo, registre o tráfego. Crie o bucket flowlogs-loja e ative um flow log na VPC do laboratório capturando ALL. <small>(pegue o id da VPC com aws ec2 describe-vpcs)</small>

Confirme que está gravando

Verifique o flow log: o FlowLogStatus precisa estar ACTIVE e apontar pro seu bucket.

Descarte a hipótese óbvia

Todo mundo chuta "é o firewall". Verifique o security group do servidor: as portas 80 e 22 estão liberadas? <small>(spoiler: estão — e descartar hipótese também é diagnóstico)</small>

Siga o caminho do pacote

Se o firewall libera, o problema está antes: o pacote não sabe voltar pra internet. Veja a route table da sub-rede do servidor.

Conserto #1: a rota que faltava

Achou: não existe rota pra internet. Crie a rota 0.0.0.0/0 apontando pro internet gateway. <small>(pegue o id do gateway com aws ec2 describe-internet-gateways)</small>

O site voltou?

Momento da verdade: rode curl http://198.51.100.42 de novo. Se aparecer a página da loja, o primeiro defeito está resolvido. 🎉

Mas o SSH continua morto

O site abre, mas ssh 198.51.100.42 ainda dá timeout. Confirme com o nmap: qual porta responde e qual não? <small>(a 80 abre e a 22 não — então não é a instância, é a rede)</small>

O firewall que quase ninguém lembra

O security group libera a 22, a rota existe… falta a network ACL, o firewall da sub-rede. Liste as network ACLs e olhe as regras de entrada.

Conserto #2: remova a regra sabotadora

Lá está: a regra 40 nega a porta 22 e, por ter número menor, vence a regra 100 que permite tudo. Apague a regra 40 de entrada.

Entre no servidor

Agora sim: ssh 198.51.100.42. Se o servidor te receber, os dois defeitos foram resolvidos. 🏆

A prova nos logs

Todas as tentativas que falharam viraram registro. Baixe o flow log do bucket flowlogs-loja pra sua máquina. <small>(use aws s3 ls s3://flowlogs-loja pra achar o caminho do arquivo)</small>

Cace os REJECT

Abra o arquivo e filtre as linhas com REJECT — são as conexões que a rede recusou enquanto estava quebrada. <small>(cada linha traz origem, destino, porta e a ação; a porta é o 7º campo)</small>

Continue por aqui

Ler explica. Digitar fixa. No CLImb você roda os comandos de verdade num terminal AWS simulado — o estado persiste entre eles, como na nuvem real.

As 3 primeiras atividades desta trilha são abertas; o resto faz parte do plano Pro.

Começar — 3 atividades grátis
Todas as lições · Praticar no terminal · Sobre