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.
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?".
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-entryaws 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-logsaws ec2 delete-flow-logs
aws ec2 delete-flow-logs --flow-log-ids fl-xxxx
aws ec2 create-flow-logsaws 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-logsaws ec2 describe-flow-logs
aws ec2 describe-flow-logs
aws ec2 describe-security-groupsaws ec2 describe-security-groups
aws ec2 describe-security-groups
aws ec2 describe-route-tablesaws 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-routeaws 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-aclsaws 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-entryaws ec2 delete-network-acl-entry
aws ec2 delete-network-acl-entry --network-acl-id acl-xxxx --ingress --rule-number 40
Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.
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>
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>
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>
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>
Verifique o flow log: o FlowLogStatus precisa estar ACTIVE e apontar pro seu bucket.
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>
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.
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>
Momento da verdade: rode curl http://198.51.100.42 de novo. Se aparecer a página da loja, o primeiro defeito está resolvido. 🎉
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 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.
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.
Agora sim: ssh 198.51.100.42. Se o servidor te receber, os dois defeitos foram resolvidos. 🏆
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>
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>
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