EC2 na prática: IP Privado, IP Público e Elastic IP
Manual passo a passo para entender e gerenciar os endereços IP de uma instância EC2, incluindo a pegadinha mais famosa da AWS: o IP público que muda sozinho.
Pré-requisito: uma instância EC2 em estado
running(ver manual 01).
Parte 1: Os três tipos de endereço
Toda instância pode ter até três "identidades" de rede:
| Endereço | O que é | Muda quando? | Equivalente on-prem |
|---|---|---|---|
| IP privado | Endereço interno da VPC/subnet | Nunca (vive e morre com a instância) | O IP da VLAN interna |
| IP público | Endereço de internet, emprestado de um pool da AWS | A cada stop/start | IP do NAT/borda |
| Elastic IP | IP público fixo e reservado para a conta | Nunca (até você liberar) | IP público fixo contratado |
💡 A instância não conhece o próprio IP público: rode
ip adentro dela e só o IP privado aparece. O público é um NAT 1:1 feito pela AWS na borda da VPC, semelhante ao NAT do firewall do datacenter.
1.1 Conferir os endereços na console
- Console EC2 → Instances → selecione a sua instância.
- Na aba Details, localize:
- Private IPv4 addresses: ex.:
172.31.5.10 - Public IPv4 address: ex.:
54.170.22.10
- Private IPv4 addresses: ex.:
- Dentro da instância (SSH), confirme que só o privado existe no SO:
ip a # apenas o IP privado (172.31.x.x)
Parte 2: A pegadinha: o IP público muda no stop/start
2.1 Demonstração
- Anote o Public IPv4 address atual da sua instância.
- Instance state → Stop instance → aguarde
stopped.- Observe: o campo Public IPv4 fica vazio, o endereço voltou para o pool da AWS.
- Instance state → Start instance → aguarde
running. - Confira o Public IPv4: é outro endereço.
⚠️ Consequências práticas: DNS apontando para o IP antigo quebra, o comando SSH salvo no histórico para de funcionar, integração de terceiros que liberou o IP no firewall deles quebra. Reboot não muda o IP, apenas o ciclo stop → start.
💡 O IP privado permaneceu o mesmo durante todo o processo, ele é da instância até o terminate.
Parte 3: Elastic IP: o endereço fixo
Quando o endereço público precisa ser estável (DNS, whitelist de parceiros, serviços expostos), usa-se um Elastic IP (EIP): um IP público reservado para a sua conta, que você associa a quem quiser.
3.1 Alocar um Elastic IP
- Console EC2 → menu lateral Network & Security → Elastic IPs.
- Allocate Elastic IP address → mantenha o padrão → Allocate.
- O endereço aparece na lista, ainda sem associação.
3.2 Associar à instância
- Selecione o EIP → Actions → Associate Elastic IP address.
- Resource type: Instance → escolha a sua instância.
- Associate.
- Volte à instância: o Public IPv4 address agora é o EIP (o IP público antigo foi devolvido ao pool).
3.3 Provar que ele é fixo
Repita o teste da Parte 2: Stop → Start → o IP público continua o mesmo. 🎉
3.4 Desassociar e liberar
- Elastic IPs → selecione → Actions → Disassociate (a instância recebe um IP dinâmico novo, se configurada para isso).
- Para devolver de vez: Actions → Release Elastic IP address.
💰 Modelo de cobrança que pega todo mundo: o Elastic IP é cobrado por hora enquanto existir na conta (associado ou não). O maior desperdício clássico é EIP alocado e esquecido sem uso. Regra do lab: liberou a instância, libere o EIP.
⚠️ Ao liberar (Release) um EIP, recuperá-lo depois nem sempre é possível, o endereço volta ao pool público da AWS.
Parte 4: Quando usar cada um
| Cenário | Endereço indicado |
|---|---|
| Comunicação entre instâncias da mesma VPC | IP privado (nunca saia pela internet à toa) |
| Máquina de teste/lab temporária | IP público dinâmico (grátis enquanto a instância roda) |
| Servidor com DNS apontado ou IP em whitelist de terceiros | Elastic IP |
| Produção séria com balanceamento | Nenhum dos três diretamente, usa-se Load Balancer com DNS próprio (capítulo futuro) |
Resumo dos conceitos deste manual
| Conceito | Lembrete-chave |
|---|---|
| IP privado | Fixo, interno, vive com a instância |
| IP público dinâmico | Emprestado; muda a cada stop/start; some no stopped |
| Elastic IP | Fixo, reservado à conta; cobrado enquanto existir |
| Reboot vs Stop/Start | Reboot preserva o IP público; stop/start troca |