Load balancer pricing at AWS, Azure and Google Cloud combines a fixed fee per hour or per rule with a usage charge per gigabyte processed or per capacity unit; NAT gateways follow the same pattern, and public IP addresses add an hourly price per address. For the bill this means these network resources cost money from the moment they exist, traffic or not, and their per-gigabyte charge comes on top of data transfer rather than replacing it.
How it works
The fixed charge belongs to the resource, per load balancer, rule, gateway or address and hour; the variable one follows traffic, as gigabytes processed or as capacity units. All three providers bill egress separately.
AWS
Elastic Load Balancing charges every hour or partial hour a load balancer runs, plus capacity units per hour: LCUs for the Application Load Balancer, NLCUs for the Network Load Balancer, GLCUs for the Gateway Load Balancer. An LCU measures new connections, active connections, processed bytes and rule evaluations averaged over the hour; only the dimension with the highest usage is charged, and the first ten rules are free. Public IPv4 addresses used by a load balancer carry the IPv4 charge on top.
A NAT gateway costs per provisioned hour and per GB processed whatever the source or destination, with data transfer on top. A Regional NAT Gateway is billed per hour for each availability zone it is configured in.
Since 2024-02-01 AWS charges every public IPv4 address per hour, metered per second with a 60-second minimum, at the same rate whether it is attached to a resource or sits idle in the account; bring-your-own addresses (BYOIP) are exempt.
Azure
The Standard Load Balancer costs per hour for the first five rules, per additional rule and hour, and per GB processed in either direction; with no rule configured there is no hourly charge. Application Gateway v2 charges a fixed fee per gateway-hour plus capacity units measuring compute, persistent connections and throughput.
Azure NAT Gateway costs per resource hour and per GB processed, outbound data and its return traffic alike. Billing starts at creation and runs whether or not subnets or addresses are attached.
Azure prices public IP addresses per hour by SKU; prefixes cost per address from creation, and a static address is charged even while its VM is stopped and deallocated. Microsoft retired the Basic SKU on 2025-09-30; existing Basic addresses keep working, unsupported and outside the SLA.
Google Cloud
Cloud Load Balancing charges forwarding rules per hour, the first five at one rate and each further rule separately, per project and separately for global and regional rules, plus data processed per GiB by region. The internal Application Load Balancer charges per proxy instance and hour instead, with at least three proxies per forwarding rule. Charges land in the project that holds the forwarding rule.
Cloud NAT costs per gateway hour by the number of VMs using it, capped from 32 VMs, per GiB processed and per hour for each external address it uses. External IP addresses cost per hour while attached to a VM, and a reserved static address left unused costs more; addresses on forwarding rules are free, as are external IPv6 addresses on VMs.
| Resource | AWS | Azure | Google Cloud | Charged when idle |
|---|---|---|---|---|
| Load balancer | Hour plus LCU, NLCU or GLCU | Rules per hour plus GB; Application Gateway: hour plus capacity units | Forwarding rules per hour plus GiB; internal: proxy hours | Yes, the Azure Load Balancer only with rules |
| NAT | Hour (regional: per zone) plus GB | Hour plus GB | Hour by VM count plus GiB plus addresses | Yes |
| Public IPv4 | Every address per hour | Static per hour, prefix per address | In use per hour, unused at a higher rate | Yes |
What it means for your cost
In billing data these resources appear as flat hourly lines that grow with the number of environments, zones and projects, not with users: every test environment with its own load balancer, NAT gateway and addresses pays the fixed fee around the clock. The per-gigabyte lines sit beside them and add to the egress explained in Data transfer and egress, including S3 traffic routed through a NAT gateway.
A load balancer or NAT gateway often serves several services or teams; its cost is then shared cost, split as Shared cost and how to split it describes. In Kubernetes clusters, load balancers and addresses often come from the cluster configuration; see Containers and Kubernetes.
The decisions are whether each zone gets its own NAT gateway, whether applications share one load balancer with several rules, and which resources need a public IPv4 address at all. On Google Cloud a CDN relieves the load balancer, because objects served from cache do not pass through it (Content delivery). Addresses, gateways and load balancers without traffic are a savings opportunity covered in Idle and orphaned resources.
Where it goes wrong
- Idle public IPv4 addresses. Symptom: the IPv4 charge exceeds what the number of public-facing applications would suggest. Cause: AWS charges every address at the same hourly rate, including unattached Elastic IPs and the addresses of load balancers, RDS instances and EKS nodes.
- A NAT gateway in every environment. Symptom: constant NAT hours in accounts, subscriptions or projects with little outbound traffic. Cause: the hourly charge runs regardless of traffic, on Azure even with no subnet attached.
- One load balancer per service. Symptom: many load balancer hours with hardly any capacity units. Cause: each application or Kubernetes service gets its own load balancer with its own base fee instead of a rule on a shared one.
- An address on a stopped VM. Symptom: the IP charge continues although the VM is stopped. Cause: Azure charges static addresses regardless of the VM, and Google counts a static address on a stopped VM as in use.
- An internal load balancer without load. Symptom: proxy hours for a Google internal Application Load Balancer with no traffic. Cause: every forwarding rule keeps at least three proxy instances.
Example
List prices in USD, read on 2026-10-16. AWS in Europe (Frankfurt): Application Load Balancer USD 0.027 per hour plus USD 0.008 per LCU-hour, NAT gateway USD 0.052 per hour plus USD 0.052 per GB, public IPv4 address USD 0.005 per hour. Azure in Germany West Central: Standard Load Balancer USD 0.025 per hour for the first five rules plus USD 0.005 per GB; Application Gateway Standard v2 USD 0.20 per gateway-hour plus USD 0.008 per capacity unit and hour; NAT Gateway USD 0.045 per hour plus USD 0.045 per GB. Google Cloud: first five forwarding rules USD 0.025 per hour, data processed in Frankfurt (europe-west3) USD 0.01 per GiB; Cloud NAT USD 0.0014 per VM and hour up to USD 0.044 per hour plus USD 0.045 per GiB; unused static address in Frankfurt USD 0.012 per hour.
Sources
Read on 2026-10-16. Elastic Load Balancing pricing, Amazon VPC pricing, AWS News Blog: new AWS public IPv4 address charge and Public IP Insights, Azure Load Balancer pricing, Azure Application Gateway pricing, Azure NAT Gateway pricing, Azure IP addresses pricing, Upgrade Basic public IP addresses to Standard SKU, Cloud Load Balancing pricing, Cloud NAT pricing, Google Cloud network pricing.