1

IPs públicos sem uso: quanto AWS e GCP cobram e como encontrá-los

Um IP público parece grátis porque não tem CPU nem disco. Não é. Desde 1º de fevereiro de 2024, a AWS cobra USD 0,005 por hora por cada endereço IPv4 público, esteja ele associado a um recurso ou não. São USD 3,65 por mês por endereço (0,005 × 730 horas). Um só não muda a fatura; quarenta esquecidos ao longo de três anos e várias contas, sim: USD 146 por mês que não compram nada.

Quanto cada nuvem cobra por um IP público

  • AWS: USD 0,005 por hora por cada IPv4 público, incluindo os Elastic IPs não associados e os IPs públicos que a AWS atribui a instâncias, balanceadores e NAT gateways. A regra vale desde 1º de fevereiro de 2024 e consta no anúncio oficial da AWS sobre a cobrança de IPv4 público.
  • GCP: um IP externo estático reservado que não está atribuído a nada custa USD 0,01 por hora; o mesmo endereço em uso por uma VM padrão custa USD 0,005 por hora, em regiões dos Estados Unidos segundo a página de preços de rede do Google Cloud. Sem uso custa o dobro: USD 7,30 por mês contra USD 3,65.
  • Azure: o IP público Standard é cobrado por hora enquanto existir, associado ou não. Um IP que ficou pendurado em uma NIC sem VM é cobrado igual a um em uso.

A diferença em relação aos outros recursos esquecidos é que um IP não aparece em nenhum painel de desempenho: não tem métricas, não dispara alertas e não ocupa espaço. Só aparece na fatura, como uma linha pequena que se repete todo mês.

Por que sobram IPs órfãos

Quase sempre por uma exclusão incompleta. Excluir uma VM na mão pelo console remove a VM, mas não necessariamente o que estava em volta:

  • Na AWS, um Elastic IP sobrevive à instância: ao encerrá-la, o endereço continua alocado na sua conta, sem associação, sendo cobrado.
  • No Azure, excluir a VM pode deixar a NIC e o IP público para trás, a menos que a opção de excluí-los junto com a VM tenha sido marcada. O IP fica associado a uma NIC que não serve a ninguém, e não pode ser liberado até ser desassociado.
  • No GCP, um endereço reservado como estático volta ao status RESERVED quando a VM que o usava é excluída.

A outra origem frequente são os testes: alguém reserva um IP para um ambiente temporário, o ambiente é excluído e o IP não.

Como encontrá-los, nuvem por nuvem

Permissões somente leitura bastam: é o mínimo privilégio na prática, porque procurar não exige poder apagar. Na AWS, os Elastic IPs sem associação (o comando é por região):

aws ec2 describe-addresses \
  --query "Addresses[?AssociationId==null].[PublicIp,AllocationId]" \
  --output table

Há um caso que esse filtro não mostra: um Elastic IP associado a uma interface de rede (ENI) que ficou solta, sem instância. Ele aparece como associado e não serve a ninguém. Para vê-lo, liste as ENIs no status available com aws ec2 describe-network-interfaces --filters Name=status,Values=available.

No GCP, os endereços externos reservados que ninguém usa:

gcloud compute addresses list \
  --filter="status=RESERVED AND addressType=EXTERNAL" \
  --format="table(name,address,region,status)"

No Azure, os IPs públicos sem configuração de IP associada, e as NICs sem VM:

az network public-ip list \
  --query "[?ipConfiguration==null].{name:name, rg:resourceGroup, ip:ipAddress}" -o table

az network nic list \
  --query "[?virtualMachine==null && privateEndpoint==null].{name:name, rg:resourceGroup}" -o table

O filtro privateEndpoint==null não é enfeite: a NIC de um Private Endpoint também não tem VM, e sem esse filtro uma interface em uso aparece como órfã. Excluí-la corta o acesso privado a um serviço.

Antes de excluir: órfão comprovado ou desconhecido

Uma lista de candidatos não é uma lista de exclusão. Se um comando não conseguiu ler um campo, por permissões ou por uma região que não respondeu, a resposta honesta é "não sei", não "está livre". Liberar um IP em uso é pior do que pagá-lo mais um mês: o endereço não volta, e se estava em um registro DNS ou na allowlist de um cliente, a queda é imediata.

Um IP sem uso custa USD 3,65 por mês na AWS. Um IP liberado por engano pode custar um incidente.


Eu trabalho no Control Cloud e este texto saiu primeiro no nosso blog, IPs públicos sem uso: quanto AWS e GCP cobram e como encontrá-los. Lá tem uma seção final sobre como a ferramenta marca esses IPs no mapa; aqui ficou só a parte que serve sem ferramenta nenhuma.

Carregando publicação patrocinada...