Ungenutzte Elastic IP Kosten sind seit dem 2024-02-01 keine Ausnahme mehr, sondern die Regel: AWS berechnet jede öffentliche IPv4-Adresse je Stunde, zugeordnet oder nicht; Azure berechnet jede Standard-Adresse, ob sie an einer Ressource hängt oder nicht; Google Cloud berechnet reservierte externe Adressen, auch wenn sie keiner Instanz zugewiesen sind. Die Einsparung entsteht, weil eine Adresse ohne Ressource keinen Zweck hat und sofort freigegeben werden kann, und weil Adressen, die nur aus Gewohnheit vergeben werden, durch private Subnetze, Load Balancer und IPv6 ersetzt werden. Die Behebung gehört dem Team, das die Netzwerkvorlagen pflegt, mit einer Liste je Konto, die der Cloud-Verantwortliche abarbeitet.

Symptom

Die Rechnung führt Adressen als eigene Positionen. Bei AWS sind das lineItem/UsageType EUC1-PublicIPv4:IdleAddress für eine Adresse ohne Ressource und EUC1-PublicIPv4:InUseAddress für eine zugeordnete, beide unter AmazonVPC, je Stunde; die Zahl der Stunden je Konto geteilt durch 720 ist die Zahl der Adressen. Bei Azure stehen sie unter MeterCategory Virtual Network mit MeterSubCategory IP Addresses und einem MeterName wie Standard IPv4 Static Public IP, je Stunde. In Google Cloud trägt Compute Engine die SKUs Static Ip Charge für reservierte, nicht zugewiesene Adressen und External IP Charge für Adressen an laufenden Instanzen. Was Adressen bei den drei Providern kosten und wie sie zu Load Balancern und NAT gehören, steht in Load Balancer, NAT und öffentliche IPs; diese Seite behandelt die Adressen, die niemand nutzt.

neinjaEine öffentliche IPv4-Adresseim KontoHängt eineRessource daran?Eine eigene Position, jeStunde: IdleAddress, StaticIp Charge, der Meter IPAddressesEine Nachbarposition, ebenfallsje Stunde: InUseAddress,External IP ChargeStunden je Konto geteiltdurch 720: die Zahl derAdressen, die niemand nutzt
Eine Adresse ohne Ressource ist eine eigene Position, die je Stunde weiterzählt; ihre Stunden geteilt durch 720 sind die Adressen, die niemand nutzt

So erkennen Sie es

AWS

Die Elastic-IP-Adressen ohne Zuordnung, und die Instanzen mit automatisch vergebener öffentlicher Adresse:

aws ec2 describe-addresses --query 'Addresses[?AssociationId==null].[PublicIp,AllocationId,Domain,Tags[?Key==`Name`].Value|[0]]' --output table
aws ec2 describe-instances --query 'Reservations[].Instances[?PublicIpAddress!=null].[InstanceId,PublicIpAddress,State.Name,SubnetId]' --output table

AWS berechnet alle Elastic-IP-Adressen, ob in Gebrauch oder nicht zugeordnet, und alle öffentlichen IPv4-Adressen laufender Instanzen; der VPC-Preis in US East (Ohio) ist 0,005 USD je Adresse und Stunde (gelesen am 2026-10-21, Elastic-IP-Adressen, VPC-Preise). Trusted Advisor meldet unter "Unassociated Elastic IP Addresses" jede Adresse, die keiner laufenden Instanz zugeordnet ist. Public IP Insights im IPAM zeigt alle öffentlichen IPv4-Adressen eines Kontos nach Typ und Nutzung, ohne Zusatzkosten für diese Ansicht. In den Abrechnungsdaten ist die IdleAddress-Position je Konto die Kennzahl, und die InUseAddress-Position die Liste der Adressen, die eine Architekturfrage sind (AWS Cost and Usage Report).

Azure

Die öffentlichen Adressen ohne IP-Konfiguration und ohne NAT-Gateway:

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

Öffentliche IPv4-Adressen haben eine Gebühr, IPv6-Adressen nicht; Basic-Adressen wurden am 2025-09-30 eingestellt, und Standard-Adressen sind immer statisch, bleiben also nach dem Löschen der VM bestehen (Öffentliche IP-Adressen). Azure Advisor führt am Lesetag keine Empfehlung zu nicht zugeordneten Adressen; seine Empfehlung zu Netzwerkgateways ohne Verbindungen nennt deren Adressen mit. Im Kostenexport ist der Kandidat eine publicIPAddresses/-Ressource mit vollem Stundenmeter, deren Name an keiner Netzwerkschnittstelle, keinem Load Balancer und keinem Gateway hängt (Azure-Kostenexporte).

Google Cloud

Die reservierten Adressen mit Status und Nutzern:

gcloud compute addresses list --format="table(name,region.basename(),address,addressType,status,users.list(),creationTimestamp)"

Eine Adresse mit status RESERVED und leerem users-Feld ist reserviert und unbenutzt. Der Recommender für ungenutzte IP-Adressen, google.compute.address.IdleResourceRecommender, liefert dieselbe Liste mit Kostenschätzung (Recommender-Übersicht):

gcloud recommender recommendations list --project=<project-id> --location=<region> \
  --recommender=google.compute.address.IdleResourceRecommender --format="table(name.basename(),description,stateInfo.state)"

Im Abrechnungsexport ist der Kandidat eine Static Ip Charge-Position je Projekt; die Preise je Adresse und Stunde nennt die Netzwerkpreisliste (Google-Cloud-Abrechnungsexport).

So beheben Sie es

  1. Die Liste je Konto, Abonnement oder Projekt mit dem Verantwortlichen durchgehen; eine Adresse mit DNS-Eintrag oder Allowlist beim Kunden bleibt, bis der Eintrag geändert ist, alles andere wird freigegeben.
  2. Freigeben. AWS: aws ec2 release-address --allocation-id eipalloc-0123456789abcdef0 --dry-run, dann ohne --dry-run; eine Adresse an einer gestoppten Instanz zuerst mit aws ec2 disassociate-address --association-id <id> lösen. Azure: az network public-ip delete --name <ip> --resource-group <rg>, ohne Dry-Run, also nur gegen die geprüfte Liste. Google Cloud: gcloud compute addresses delete <address> --region=<region>.
  3. Den Bedarf senken, wo Adressen in Gebrauch sind, aber nicht nötig: Instanzen in private Subnetze hinter einen Load Balancer oder ein NAT-Gateway, eine Adresse je Load Balancer statt je Instanz, Bastion-Hosts durch Session Manager, Azure Bastion oder Identity-Aware Proxy ersetzen, und IPv6, das bei allen dreien ohne die IPv4-Gebühr kommt, wo die Gegenseite es spricht.
  4. Die Vorlage korrigieren: MapPublicIpOnLaunch auf false in privaten Subnetzen, keine öffentliche Adresse in der VM-Vorlage bei Azure, --no-address bei Google Cloud, und eine Prüfung im Review, die jede neue öffentliche Adresse begründet (Kostenprüfung von Infrastrukturcode).

Die Stundengebühr endet mit der Freigabe; der Tagesexport zeigt es am Folgetag.

jaEintrag geändertneinDie Liste je Konto, Abonnementoder Projekt, mit demVerantwortlichenDNS-Eintrag oderAllowlist beim Kunden?Bleibt, bis der Eintraggeändert istRDen Bedarf senken: privateSubnetze hinter Load Balanceroder NAT, eine Adresse jeLoad Balancer, Bastion-Hostsersetzt, IPv6Die Vorlage korrigieren:keine öffentliche Adresseals Standard, eine Prüfungim Review für jede neueDie Stundengebühr endet mit derFreigabe; der Tagesexport zeigtes am Folgetag
Erst der Verantwortliche, die Freigabe nur gegen die geprüfte Liste, dann weniger Adressen in Gebrauch und eine Vorlage, die keine mehr verteilt

Risiken und Nebenwirkungen

  • Eine freigegebene Adresse kommt nicht zurück: bei AWS kann sie nach der Freigabe zuweilen mit allocate-address --address zurückgeholt werden, solange niemand sie bekommen hat, bei Azure und Google Cloud nicht. DNS-Einträge, Firewall-Regeln bei Kunden und Partnern, SPF-Einträge und Lizenzbindungen an die Adresse gehören vor die Freigabe.
  • Eine nicht zugeordnete Adresse ist zuweilen Absicht: die reservierte Adresse eines Failover-Plans oder eines Wartungsfensters. Das Tag sagt es, und eine solche Adresse bekommt ein Ablaufdatum.
  • Der Wechsel einer Instanz in ein privates Subnetz braucht einen Weg nach draußen, NAT-Gateway oder Endpunkt, der selbst je Stunde kostet; ungenutzte NAT-Gateways und Endpunkte beschreibt die Gegenrechnung.
  • IPv6 hilft nur, wo Clients und Dienste es sprechen; ein Dual-Stack-Load-Balancer behält seine IPv4-Adresse und ihre Gebühr.
  • Bei Azure verliert eine VM mit einer dynamischen Basic-Adresse diese beim Freigeben; Standard-Adressen sind statisch und ändern sich nicht, was beim Löschen der VM der Grund ist, warum sie übrig bleiben.

So weisen Sie die Einsparung nach

Vorher: je Konto die IdleAddress-Stunden, die IP Addresses-Meter und die Static Ip Charge-Position im letzten vollen Monat, und daraus die Zahl der Adressen. Nachher: dieselben Positionen im ersten vollen Monat nach der Freigabe, erwartet null für nicht zugeordnete Adressen und, nach Schritt 3, eine niedrigere Zahl der InUseAddress-Stunden. Die Zahl der Adressen mal Stundengebühr mal 720 ist die Schätzung, die Freigabe des Teams macht sie akzeptiert, das Löschen umgesetzt, und die Rechnung des Folgemonats belegt sie nach dem Muster von geschätzt, akzeptiert, umgesetzt, verifiziert. Die Zahl der Adressen ohne Ressource ist die Kennzahl, die danach im Kostenreview bei null steht.

Quellen

Gelesen am 2026-10-21. Elastic-IP-Adressen, Amazon VPC, Preise, Trusted Advisor, Kostenoptimierungsprüfungen, describe-addresses, Öffentliche IP-Adressen in Azure, Azure Advisor, Kostenempfehlungen, Statische externe IP-Adressen reservieren, Google Cloud, Netzwerkpreise, Recommender-Übersicht.