Cobrança de Elastic IP: Por Que Você Ainda Paga Mesmo com a Instância Parada
Você parou a instância EC2 para economizar, mas no final do mês a fatura ainda mostra cobranças de Elastic IP. Esse é um dos erros mais comuns de custo na AWS — a lógica parece contraintuitiva até você entender o modelo de cobrança real por trás dos IPs elásticos.
TL;DR — Resumo Direto
| Situação | Cobrado? | Ação Necessária |
|---|---|---|
| EIP associado a instância em execução | Não (1 EIP gratuito por instância rodando) | Nenhuma |
| EIP associado a instância parada | Sim | Desassociar e liberar o EIP |
| EIP não associado a nenhum recurso | Sim | Liberar o EIP |
| EIP associado a interface de rede anexada a instância parada | Sim | Desassociar e liberar o EIP |
Como o Elastic IP é Cobrado na AWS
A AWS cobra por Elastic IP com base em um princípio simples: endereços IPv4 públicos são um recurso escasso. O modelo de cobrança penaliza o desperdício — ou seja, manter um IP alocado sem utilizá-lo ativamente.
A regra documentada pela AWS é a seguinte: um Elastic IP associado a uma instância EC2 em execução não gera cobrança adicional (o primeiro EIP por instância rodando é gratuito). Assim que a instância para, o EIP continua alocado à sua conta, mas não está mais em uso ativo — e a cobrança por hora começa imediatamente.
Pense no Elastic IP como uma vaga de estacionamento reservada. Enquanto seu carro está lá, você usa o espaço. Quando você vai embora mas mantém a reserva, você paga pela vaga vazia — independentemente de o carro estar ou não no local.
Parar a instância não libera o Elastic IP. Esses são dois recursos independentes no modelo da AWS. A instância pode ser parada, reiniciada ou até terminada — o EIP permanece alocado até que você o libere explicitamente.
EIP ocioso"] C -- "Sim" --> D["✅ Sem Cobrança
Uso ativo"] C -- "Não (Parada)" --> E["⚠️ Cobrança Ativa
IP reservado sem uso"] E --> G["Ação: Desassociar + Liberar"] F --> G G --> H["✅ Cobrança Encerrada"]
- Instância em execução + EIP associado: sem cobrança pelo EIP (uso ativo).
- Instância parada + EIP ainda associado: cobrança por hora começa — o IP está alocado mas ocioso.
- EIP desassociado mas não liberado: cobrança continua — o IP ainda pertence à sua conta.
- EIP liberado: cobrança encerrada — o endereço retorna ao pool da AWS.
Desassociar vs. Liberar — Qual a Diferença
Desassociar remove o vínculo entre o EIP e a instância (ou interface de rede), mas o endereço permanece alocado na sua conta. Você ainda paga. Essa operação é útil quando você quer reutilizar o mesmo IP em outro recurso em breve.
Liberar devolve o endereço ao pool da AWS. A cobrança para imediatamente. O endereço deixa de existir na sua conta — e você não tem garantia de recuperá-lo se precisar no futuro.
Para parar completamente a cobrança de um Elastic IP que não está em uso, você precisa fazer as duas operações: primeiro desassociar, depois liberar. Se o EIP já estiver desassociado (sem nenhum recurso vinculado), basta liberar diretamente.
Como Verificar Elastic IPs Ociosos na Sua Conta
Antes de sair liberando IPs, vale identificar quais estão gerando custo desnecessário. O comando abaixo lista todos os Elastic IPs alocados na região e mostra o status de associação:
aws ec2 describe-addresses \
--region us-east-1 \
--query 'Addresses[*].{IP:PublicIp,AllocationId:AllocationId,AssociationId:AssociationId,InstanceId:InstanceId}' \
--output table
Qualquer linha com AssociationId e InstanceId vazios indica um EIP desassociado — cobrança ativa sem uso. Linhas com InstanceId preenchido mas instância parada também geram cobrança.
Para verificar o estado das instâncias vinculadas aos EIPs:
aws ec2 describe-instances \
--region us-east-1 \
--query 'Reservations[*].Instances[*].{InstanceId:InstanceId,State:State.Name,PublicIp:PublicIpAddress}' \
--output table
Parando a Cobrança do Elastic IP — Passo a Passo
Passo 1: Desassociar o Elastic IP da Instância
Se o EIP ainda está vinculado a uma instância parada, desassociar é o primeiro passo. Você precisa do AssociationId, não do AllocationId, para esta operação. Recupere-o com o comando de listagem acima.
aws ec2 disassociate-address \
--region us-east-1 \
--association-id eipassoc-0abc123def456789a
Após a desassociação, o EIP ainda aparece na sua conta — a cobrança continua até a liberação.
Passo 2: Liberar o Elastic IP
Com o EIP desassociado, use o AllocationId para liberar o endereço definitivamente:
aws ec2 release-address \
--region us-east-1 \
--allocation-id eipalloc-0abc123def456789a
Sem saída significa sucesso. A cobrança cessa a partir deste momento. Confirme com describe-addresses — o IP não deve mais aparecer na lista.
Passo 3: Confirmar que Nenhum EIP Ocioso Permanece
Execute novamente a listagem filtrada apenas para EIPs sem associação:
aws ec2 describe-addresses \
--region us-east-1 \
--query 'Addresses[?AssociationId==`null`].{IP:PublicIp,AllocationId:AllocationId}' \
--output table
Se a saída estiver vazia, não há EIPs ociosos na região. Repita para cada região onde você opera.
Listar EIPs"] --> B["Identificar EIPs
ociosos ou parados"] B --> C["disassociate-address
usando AssociationId"] C --> D["release-address
usando AllocationId"] D --> E["describe-addresses
Confirmar lista vazia"] E --> F["✅ Cobrança Encerrada"]
- Identifique o
AllocationIdeAssociationIdcomdescribe-addresses. - Execute
disassociate-addressusando oAssociationId. - Execute
release-addressusando oAllocationId. - Valide com nova chamada a
describe-addresses— lista deve estar vazia.
Permissões IAM Necessárias
Para executar os comandos acima, a entidade IAM precisa das seguintes permissões mínimas:
🔽 Clique para expandir — Política IAM mínima para gerenciar Elastic IPs
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DescribeElasticIPs",
"Effect": "Allow",
"Action": [
"ec2:DescribeAddresses",
"ec2:DescribeInstances"
],
"Resource": "*"
},
{
"Sid": "ManageElasticIPs",
"Effect": "Allow",
"Action": [
"ec2:DisassociateAddress",
"ec2:ReleaseAddress"
],
"Resource": "*"
}
]
}
As ações DescribeAddresses e DescribeInstances exigem "Resource": "*" — não suportam restrição por ARN de recurso específico. Verifique o Service Authorization Reference da AWS para confirmar o suporte atual a nível de recurso.
O Erro que Todo Mundo Comete — e Por Que Acontece
O cenário mais comum: você para a instância pelo console ou CLI para 'economizar durante o fim de semana'. A instância para, o custo de computação cessa — mas o EIP continua acumulando centavos por hora. No final do mês, aparece uma linha inesperada na fatura.
A confusão vem do fato de que parar uma instância EC2 parece uma operação 'completa' — como desligar um servidor. Mas na AWS, parar a instância e liberar recursos de rede associados são operações distintas e independentes. A instância parada ainda mantém sua configuração de rede, incluindo o EIP vinculado.
Quem descobre isso pela primeira vez geralmente vai ao console, vê a instância parada, assume que não há nada rodando e fecha o navegador. Semanas depois, a fatura conta a história real.
Parar uma instância EC2 não é equivalente a desligar um servidor físico — é mais parecido com suspender uma VM enquanto mantém todas as reservas de rede ativas.
Automatizando a Detecção de Elastic IPs Ociosos
Para contas com múltiplas regiões e equipes, a verificação manual não escala. O AWS Cost Explorer e o AWS Trusted Advisor (nos planos que incluem verificações de custo) podem identificar EIPs não utilizados automaticamente.
Para uma abordagem via CLI em todas as regiões ativas da conta:
for region in $(aws ec2 describe-regions \
--query 'Regions[*].RegionName' \
--output text); do
echo "=== Região: $region ==="
aws ec2 describe-addresses \
--region "$region" \
--query 'Addresses[?AssociationId==`null`].{IP:PublicIp,AllocationId:AllocationId}' \
--output table
done
Esse script varre todas as regiões habilitadas na conta e lista EIPs desassociados — candidatos imediatos para liberação.
Próximos Passos e Referências para Elastic IP na AWS
Se você identificou EIPs ociosos e os liberou, o próximo passo é evitar que o problema se repita. Considere:
- Criar um alerta no AWS Budgets para custos de EC2 que incluam a categoria de endereços IP.
- Usar o AWS Trusted Advisor para verificações periódicas de Elastic IPs não associados (disponível em planos Business e Enterprise).
- Documentar o processo de desligamento de ambientes de desenvolvimento para incluir a liberação de EIPs como etapa explícita.
- Avaliar se o uso de Elastic IP é realmente necessário — para muitos casos, DNS com registros dinâmicos ou Load Balancers eliminam a necessidade de IPs elásticos fixos.
Consulte a documentação oficial: Elastic IP Addresses — AWS EC2 User Guide.
Glossário — Termos Essenciais sobre Elastic IP
| Termo | Definição |
|---|---|
| Elastic IP (EIP) | Endereço IPv4 público estático alocado à sua conta AWS, independente do ciclo de vida de instâncias EC2. |
| AllocationId | Identificador único do EIP na sua conta (ex: eipalloc-0abc123). Usado para liberar o endereço. |
| AssociationId | Identificador do vínculo entre um EIP e uma instância ou interface de rede (ex: eipassoc-0abc123). Usado para desassociar. |
| Desassociar | Remove o vínculo do EIP com um recurso, mas mantém o IP alocado na conta. Cobrança continua. |
| Liberar (Release) | Devolve o EIP ao pool da AWS. Cobrança encerrada. O endereço não pode ser recuperado. |
Comentários
Postar um comentário