Looking at raw numbers and real-world bills. The marketing terms are irrelevant. Here's the breakdown.
**Pricing models are fundamentally different.**
* **AWS ALB/NLB:** Pay per Load Balancer Capacity Unit (LCU) or NLCU. An LCU aggregates new connections, active connections, processed bytes, and rule evaluations. You get 750 free hours of a shared ALB, then it's $0.0225 per LCU-hour.
* **Google Cloud Load Balancer:** Pay for each component: forwarding rules, rules, IP addresses, and most critically, **processed bytes**. No "capacity unit" abstraction.
```hcl
# Example GCLB cost elements (simplified)
# - $0.025 per hour for the forwarding rule
# - $0.004 per GB for ingress, $0.005 per GB for egress (Intercontinental)
# - $0.10 per hour for each static IP
```
* **Azure Load Balancer:** Simple, tiered. Basic SKU is free but limited. Standard SKU costs ~$0.026/hour plus data processing (~$0.005/GB outbound) and per-rule charges.
**Which is cheapest? It depends entirely on your traffic pattern.**
* High throughput, low connection churn? GCLB's pure data processing cost can win.
* Many short-lived connections (e.g., APIs)? AWS LCU model might be cheaper than paying for all the GBs.
* Predictable, steady-state? Azure's flat hourly + data rate is simple to forecast.
**Don't forget the hidden costs.**
* AWS/GCP cross-zone load balancing has data transfer fees ($0.01/GB). Azure's Standard LB includes it.
* GCLB's global anycast IP is a unique feature, but you pay for the premium.
* Managed TLS termination pricing varies: per-hour on AWS, per-cert on GCP.
**Bottom line:** Model it. Take a sample of your traffic (connections/sec, GB transferred) and run it through each provider's pricing calculator. For most web services I audit, the difference is less than 10% unless you have a very skewed traffic profile. The bigger waste is usually over-provisioned backend instances behind the LB.
cost per transaction is the only metric
I'm a platform engineer at a 400-person SaaS shop, we run about 60 production services on EKS across three AWS regions and I track the bill. I've used ALB and NLB extensively, tested GCLB on a GKE pilot, and migrated an acquisition off Azure LB.
* **True cost comparison needs a spreadsheet.** The models don't align. For our API workload (~5M short-lived connections/day, ~15 TB data transfer), one ALB costs ~$300/month. Simulating the same traffic pattern on GCLB's processed bytes model came in around $270. Azure Standard SKU was ~$220 but lacked the feature depth we needed. Under 1 TB egress, Azure often wins on paper.
* **Hidden cost is config/management time.** AWS has a million annotations for the controller. GCLB's component-based setup (forwarding rules, target proxies, URL maps) is more verbose in Terraform. Azure's Basic SKU is a non-starter for K8s (no VNet integration, health probes fail). The real tax is the hours your team spends debugging why Ingress isn't working.
* **Performance ceiling hit first with AWS NLB.** NLB handles our high-throughput, static IP use cases (like exposing a Redis cluster) at ~$50/month less than ALB. But it's Layer 4. If you need host/path-based routing, you're back to ALB or need a service mesh. GCLB and Azure Standard give you L7 features without a separate resource.
* **Enterprise readiness means logging and WAF.** ALB logs to S3 buckets are clunky but usable. GCLB's Cloud Logging integration is cleaner. Azure's monitoring feeds into Application Insights if you're already in that ecosystem. WAFv2 on ALB is an extra $20/month per resource. Cloud Armor on GCLB has a similar per-rule cost model. If you need WAF, factor that in immediately; it doubles the cost.
I'd pick AWS NLB for anything that's pure TCP/UDP traffic (databases, custom ports) and ALB for general web services. If your traffic is mostly internal with massive, stable data flows, test the Azure Standard SKU calculation. Tell us your monthly egress volume and whether you need WAF.
null
Agree on the pricing model divergence, but the LCU abstraction makes forecasting harder than the itemized models. You need to reverse-engineer your usage into the four LCU dimensions to get a true comparison, and AWS's published LCU conversion rates (e.g., 25 new connections per second = 1 LCU) aren't always transparent for bursty workloads.
For a real benchmark, you'd instrument identical traffic patterns against all three - synthetic HTTP/RPC traffic at a controlled rate and volume. I've found the crossover point where GCLB's processed bytes becomes cheaper is usually above 2-3 Gbps sustained, assuming low connection churn.
The Azure Basic SKU being free is a major asterisk - it's non-zone-redundant and lacks health probes for backend pools, so it's not a production comparison.
numbers don't lie