A load balancer sits between clients and the servers that answer them, and AWS bills it by the hour and by what it carries. In AWS's words, "Elastic Load Balancing automatically distributes your incoming traffic across multiple targets, such as EC2 instances, containers, and IP addresses, in one or more Availability Zones." This article covers what Elastic Load Balancing (ELB) is made of, how a request reaches a target under the hood, what each of its four load balancer types charges for, from the hour to the capacity units, the public IPv4 addresses and the traffic between zones, and the ways AWS documents to cut the bill, priced with the list prices of the Paris Region (eu-west-3). Four architectures show what the levers do to whole monthly bills, and the cost section opens with an index of the levers, in the order to work through them.
Prices in this article are AWS list prices for the EU (Paris) Region, in USD before tax, from the AWS Price List. The offer files and their publication dates are listed in the Sources section, and each table repeats the dates of its own prices. Monthly amounts (730 hours), totals, percentages and per-GB costs are computed from these prices. The Free Tier for new customers, 750 hours a month shared between Classic and Application Load Balancers, 15 GB of Classic data processing and 15 LCUs, and the Free Tier credits of accounts created from July 15, 2025, are not deducted.
What Elastic Load Balancing is, and its four load balancer types
Elastic Load Balancing "monitors the health of its registered targets, and routes traffic only to the healthy targets", and it "scales your load balancer capacity automatically in response to changes in incoming traffic" (What is Elastic Load Balancing?). It comes as four types, each with its own way of routing and its own bill:
The four load balancer types of Elastic Load Balancing, and what each one bills in Paris
| Type | Routes | Billed in Paris |
|---|---|---|
| Application Load Balancer (ALB) | HTTP and HTTPS requests, by listener rules on host, path, headers, method, query string or source address | $0.02646 an hour, and $0.0084 per LCU-hour |
| Network Load Balancer (NLB) | TCP, UDP, TLS and QUIC connections, each to one target for its life | $0.02646 an hour, and $0.0063 per NLCU-hour |
| Gateway Load Balancer (GWLB) | All IP packets, to virtual appliances such as firewalls | $0.0147 an hour, and $0.0042 per GLCU-hour |
| Classic Load Balancer | TCP, HTTP and HTTPS, the previous generation | $0.0294 an hour, and $0.0084 per GB processed |
USD, before tax. AWS Price List, eu-west-3, offer file published September 11, 2026, fetched October 26, 2026.
The Gateway Load Balancer is for appliances: it "enable[s] you to deploy, scale, and manage virtual appliances, such as firewalls, intrusion detection and prevention systems, and deep packet inspection systems", and it "operates at the third layer of the Open Systems Interconnection (OSI) model, the network layer" (What is a Gateway Load Balancer?). The Classic Load Balancer is the previous generation:
Classic Load Balancers are the previous generation of load balancers from Elastic Load Balancing. We recommend that you migrate to a current generation load balancer.
The EC2 article and the EKS article price the targets behind a load balancer; this one prices the load balancer itself.
How a load balancer works under the hood
AWS documents its load balancers at the level of nodes, zones, listeners and DNS. The diagram below follows one request through an internet-facing Application Load Balancer:
- Clients resolve the load balancer's DNS name, a record with a 60-second TTL, to the public IP addresses of its nodes: one node, and one public IPv4 address at $0.005 an hour, in each enabled zone.
- The node evaluates the listener rules in priority order and picks a healthy target. The load balancer bills $0.02646 an hour, and $0.0084 for each LCU-hour on its highest dimension.
- Cross-zone load balancing is always on at the Application Load Balancer's level: each node sends to the targets of every zone, by their private IP addresses, with no data transfer charge: AWS states that data in and out of an Application Load Balancer over private IP addresses is free.
A node in each zone, and DNS in front
"When you enable an Availability Zone for your load balancer, Elastic Load Balancing creates a load balancer node in the Availability Zone", and "With an Application Load Balancer however, it is a requirement that you enable at least two or more Availability Zones" (How Elastic Load Balancing works). Clients find the nodes through DNS: "The Amazon DNS servers return one or more IP addresses to the client. These are the IP addresses of the load balancer nodes for your load balancer", with "the time-to-live (TTL) of 60 seconds." A Network Load Balancer gets one address per zone that stays put: "Elastic Load Balancing creates a network interface for each Availability Zone that you enable, and uses it to get a static IP address."
Internet-facing or internal, and the addresses they use
The scheme decides whether the nodes have public addresses: "The nodes of an internet-facing load balancer have public IP addresses", and "The nodes of an internal load balancer have only private IP addresses." Either way, "Both internet-facing and internal load balancers route requests to your targets using private IP addresses." For the Application Load Balancer, the addresses are counted per zone (Application Load Balancers): "The Application Load Balancer has one IP address per enabled Availability Zone. These are the IP addresses of the Application Load Balancer nodes." Those addresses come from AWS's pool, "Application Load Balancers use Public Elastic IPv4 addresses from EC2's public IPv4 address pool", and the pricing page bills them: "You will incur standard public IPv4 address charges for all the addresses you consume with load balancers."
Listeners, rules and routing, type by type
Each type picks a target its own way (How Elastic Load Balancing works). An Application Load Balancer node "Evaluates the listener rules in priority order to determine which rule to apply"; a Network Load Balancer uses "a flow hash algorithm" and "Routes each individual TCP connection to a single target for the life of the connection"; a Gateway Load Balancer "uses a 5-tuple flow hash algorithm to select a target appliance"; a Classic Load Balancer uses round robin for TCP and "least outstanding requests" for HTTP and HTTPS. The Application Load Balancer's rules can match the host name, which lets one load balancer serve many sites: "This enables you to support multiple subdomains and different top-level domains using a single load balancer."
Cross-zone load balancing: on, off, and who decides
A node can send only to its own zone, or to every zone (How Elastic Load Balancing works): "When cross-zone load balancing is enabled, each load balancer node distributes traffic across the registered targets in all enabled Availability Zones. When cross-zone load balancing is disabled, each load balancer node distributes traffic only across the registered targets in its Availability Zone." The defaults differ by type:
Cross-zone load balancing, type by type, in AWS's words
| Type | Default | Where it is set |
|---|---|---|
| Application Load Balancer | "always enabled at the load balancer level" | Can be disabled per target group |
| Network Load Balancer | "disabled by default" | The load balancer, overridden per target group |
| Gateway Load Balancer | "disabled by default" | The load balancer |
| Classic Load Balancer | Off with the API or CLI, on in the console | The load balancer |
The setting has a price on a Network Load Balancer, in the Network Load Balancer guide's words: "When enabling cross-zone load balancing for a Network Load Balancer, EC2 data transfer charges apply." Inside a Region, that transfer is billed both ways: "For a given resource, you're charged for both inbound and outbound traffic in a data transfer within an AWS Region." The NAT gateway article prices the same rate for other traffic between zones. The Application and Classic Load Balancers are the exception AWS states, in its answer on data transfer between zones (AWS Global Network FAQs): "It is free to transfer data in and out from Amazon Classic and Application Elastic Load Balancers using private IP addresses". It follows that their cross-zone traffic to targets bills no data transfer, and that turning cross-zone off on an Application Load Balancer's target group is a choice for zonal isolation, not a saving.
What Elastic Load Balancing is used for
The uses follow the types, and each one bills a different way:
What each load balancer type is used for, and what it bills
| Use | Type | What the bill counts |
|---|---|---|
| Web applications and APIs, many hosts and paths behind one entry | Application Load Balancer | Hours, LCUs, public IPv4 addresses when internet-facing |
| Lambda functions behind HTTP | Application Load Balancer | The same, with fewer bytes per LCU for Lambda targets |
| TCP, UDP or TLS services, static addresses, very high connection rates | Network Load Balancer | Hours, NLCUs, addresses, and data transfer when cross-zone is on |
| Firewalls and inspection appliances across VPCs | Gateway Load Balancer and its endpoints | Hours and GLCUs, and each endpoint's hours and GB |
| Workloads not yet migrated | Classic Load Balancer | Hours and every GB |
The Lambda article prices the functions an Application Load Balancer can call, and the CloudFront article a distribution with a load balancer as its origin.
How Elastic Load Balancing pricing works
The hour, then the capacity units
Every type bills its hours: "You are charged for each hour or partial hour that an Application Load Balancer is running", and "Each partial Application Load Balancer hour used is billed as a full hour" (Elastic Load Balancing pricing); the Network and Gateway Load Balancers' lines say the same. Then the three current types bill capacity units, "the number of Load Balancer Capacity Units (LCU) used per minute" for the Application Load Balancer, measured on several dimensions, and "You are charged only on the dimension with the highest usage." What one unit holds:
What one capacity unit holds, type by type (Elastic Load Balancing pricing page)
| Dimension | LCU (Application) | NLCU (Network, TCP) | GLCU (Gateway) |
|---|---|---|---|
| New connections | 25 per second | 800 per second | 600 per second |
| Active connections | 3,000 per minute; 1,500 with mutual TLS | 100,000, sampled per minute | 60,000, sampled per minute |
| Processed bytes | 1 GB per hour; 0.4 GB for Lambda targets | 1 GB per hour | 1 GB per hour |
| Rule evaluations | 1,000 per second | None | None |
The Network Load Balancer has other figures for UDP, "400 new UDP flows per second" and "50,000 active UDP flows (sampled per minute)", and for TLS, "50 new TLS connections or flows per second" and "3,000 active TLS connections or flows (sampled per minute)". Rules count only beyond ten: "The first 10 processed rules are free", and "If you have 10 or fewer rules configured, the rule evaluations dimension is ignored in LCU computation." It follows that when processed bytes are the highest dimension, an Application Load Balancer costs $0.0084 per GB processed, $0.021 for Lambda targets, and a Network Load Balancer $0.0063, 25.0% less, computed. The Classic Load Balancer has no capacity unit: it bills "each GB of data transferred through your load balancer."
Load balancers in Paris
Elastic Load Balancing in Paris (eu-west-3)
| Item | List price | Unit |
|---|---|---|
| Application Load Balancer | ||
| Load balancerEach partial hour billed as a full hour | $0.02646 | per hour |
| LCU usedThe highest dimension, each hour | $0.0084 | per LCU-hour |
| LCU reservedWith an LCU reservation | $0.0084 | per LCU-hour |
| Trust storePer associated trust store, for mutual TLS | $0.0059 | per hour |
| Network Load Balancer | ||
| Load balancer | $0.02646 | per hour |
| NLCU usedThe highest dimension for the protocol | $0.0063 | per LCU-hour |
| Gateway Load Balancer | ||
| Load balancer | $0.0147 | per hour |
| GLCU used | $0.0042 | per LCU-hour |
| EndpointPer endpoint and zone, billed separately | $0.011 | per hour |
| Endpoint data processed | $0.0035 | per GB |
| Classic Load Balancer | ||
| Load balancer | $0.0294 | per hour |
| Data processed | $0.0084 | per GB |
USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 26, 2026.
So an Application Load Balancer costs $19.32 a month before any traffic, a Network Load Balancer $19.32, a Gateway Load Balancer $10.73 and each of its endpoints $8.03, and a Classic Load Balancer $21.46, computed. One LCU used all month costs $6.13, one NLCU $4.60.
Public IPv4 addresses and traffic between zones
The lines around the load balancer come from other offers: each public IPv4 address, $0.005 per hour, and data between zones, $0.01 per GB in each direction, so $0.02 for each GB that crosses, computed. AWS documents one address per enabled zone for an Application Load Balancer, which needs two zones at least; it follows that an internet-facing one in two zones has two addresses:
Two public IPv4 addresses
$7.30 a monthin Paris, for an internet-facing Application Load Balancer in two zones, 730 hours each, computed, on top of its own hours: the floor of such a load balancer is $26.62 a month.
Computed from the AWS Price List · eu-west-3 · Oct 16, 2026
Put together, this is an illustrative internet-facing Application Load Balancer in two zones using four LCUs on average, about 4 GB processed an hour:
An Application Load Balancer in two zones, four LCUs on average, all month in Paris (illustrative)
| Line | A month, computed |
|---|---|
| The load balancer, 730 h730 h × $0.02646 /h | $19.32 |
| Its two public IPv4 addresses, 2 × 730 h1,460 h × $0.005 /h | $7.30 |
| LCUs, 4 × 730 h2,920 LCU-h × $0.0084 /LCU-h | $24.53 |
| Total | $51.15 |
USD, before tax. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 26, 2026.
The LCU reservation: capacity, not a discount
An Application Load Balancer can hold a floor of capacity (Capacity reservations for your Application Load Balancer): "Load balancer Capacity Unit (LCU) reservations allow you to reserve a static minimum capacity for your load balancer", and "When minimum capacity is configured, your load balancer continues scaling up or down based on the traffic received, but also prevents the capacity from going lower than the minimum capacity configured." In Paris, the price list has a row of its own for it, and the same price as a used LCU: $0.0084 per LCU-hour against $0.0084 per LCU-hour. It follows that a reservation buys capacity, not a lower rate, and bills the reserved floor whether traffic uses it or not:
The smallest LCU reservation
$613.20 a month100 LCUs, the minimum AWS accepts, held all month in Paris, computed: the price of the same 100 LCUs used.
Computed from the AWS Price List · eu-west-3 · Sep 11, 2026
The Network and Gateway Load Balancers have reservations too, on other terms (Capacity reservations for your Network Load Balancer, and the Gateway Load Balancer's page, which says the same): the feature "is available only in the following Regions", ten of them, with Europe (Frankfurt), Europe (Ireland) and Europe (Stockholm) but not Paris, and "The total reservation request must be at least 2,750 LCU per Availability Zone." That is why the Paris price list has no reserved row for them. The pricing page's own examples, at US prices, bill a reserved NLCU or GLCU at the rate of a used one: it follows that for every type, a reservation buys capacity, not a lower rate.
Reading the load balancer lines of a bill
Each line has its usage type, with the Region's code, EUW3- in Paris. From the Paris price list:
Elastic Load Balancing usage types on a bill in Paris
| Usage type | What it counts |
|---|---|
EUW3-LoadBalancerUsage |
The hours of every type: the operation (LoadBalancing:Application, :Network, :Gateway, or LoadBalancing alone for Classic) tells them apart |
EUW3-LCUUsage |
Capacity units used, LCU, NLCU and GLCU alike |
EUW3-ReservedLCUUsage |
Reserved LCUs |
EUW3-DataProcessing-Bytes |
The Classic Load Balancer's GB |
EUW3-TS-LoadBalancerUsage |
Trust stores associated with Application Load Balancers, for mutual TLS |
EUW3-PublicIPv4:InUseAddress |
Public IPv4 addresses, under Amazon VPC |
EUW3-DataTransfer-Regional-Bytes |
Data between zones, both directions |
In short: Every load balancer bills its hours and, for the three current types, the capacity units of its busiest dimension; its public addresses bill on another line, and so does a Network Load Balancer's traffic across zones, while an Application or Classic Load Balancer's is free; an LCU reservation costs what a used LCU costs.
Architecture patterns around Elastic Load Balancing, and what they cost
Four illustrative configurations in Paris, each priced before and after the levers of the next section, line by line from the AWS Price List: one load balancer per application, load balancers nobody uses, cross-zone traffic on a Network Load Balancer, and a Classic Load Balancer moved to a current one. None is a client case; every amount is computed, and each card lists its assumptions and what it leaves out.
Pattern 1 of 4 · Illustrative configuration
Eight applications, eight Application Load Balancers
Eight small web applications each have their own internet-facing Application Load Balancer in two zones, each using 0.5 LCU on average; then one Application Load Balancer routes the eight host names with one rule each.
- Eight load balancers bill eight times $0.02646 an hour, and two public IPv4 addresses each at $0.005 an hour, whatever their traffic.
- One load balancer routes each host name with a host-header rule: eight rules, under the 10 that keep rule evaluations out of the LCU count. The bytes, and so the LCUs, are the same; the hours and the addresses are one load balancer's.
In this illustration, the capacity units do not move: the bytes add up on one load balancer as they did on eight. What goes is seven load balancers' hours and fourteen addresses, $186.31 a month, computed.
With the levers: $186.31 a month less (78.5% less), computed.
The bills line by line, the assumptions and the sources
Eight applications, eight Application Load Balancers, before: One Application Load Balancer per application Illustrative
Eight load balancers, each with its two public IPv4 addresses.
| Line | A month |
|---|---|
| Network | $237.46 |
| Application Load Balancers, one per application8 load balancers × 730 h × $0.02646 /h | $154.53 |
| Public IPv4 addresses, one per load balancer and zone16 addresses × 730 h × $0.005 /h | $58.40 |
| LCUs used on average, processed bytes the highest dimension4 LCUs × 730 h × $0.0084 /LCU-h | $24.53 |
| A month, computed | $237.46 |
Eight applications, eight Application Load Balancers, with the levers: One Application Load Balancer with host rules Illustrative
One load balancer, one listener rule per host name, each forwarding to the application's target group.
| Line | A month |
|---|---|
| Network | $51.15 |
| One Application Load Balancer, eight host rules1 load balancer × 730 h × $0.02646 /h | $19.32 |
| Its public IPv4 addresses, one per zone2 addresses × 730 h × $0.005 /h | $7.30 |
| LCUs used on average, processed bytes the highest dimension4 LCUs × 730 h × $0.0084 /LCU-h | $24.53 |
| A month, computed | $51.15 |
Assumptions
- Illustrative configuration in Paris (eu-west-3), not a client case.
- Each application averages 0.5 LCU over the month, processed bytes its highest dimension (0.5 GB an hour), so 4 LCUs on average for the eight together, illustrative.
- After: the processed bytes add up, so the one load balancer uses the same LCUs; its other dimensions stay below its bytes, which the article's text checks against AWS's dimensions.
- Eight host-header rules plus the default rule: 10 rules or fewer, so the rule evaluations dimension is ignored (ELB pricing page). One certificate per host name: 8 of the 25 a load balancer takes by default.
- Each load balancer is internet-facing in two zones, with one public IPv4 address per enabled zone, as AWS documents it for the Application Load Balancer.
Not counted
- The targets, the same in both variants, and data transfer out to the internet.
- The Free Tier for new customers (750 hours a month shared between Classic and Application Load Balancers, 15 GB of Classic data processing and 15 LCUs), the Free Tier credits of accounts created from July 15, 2025, and the 100 GB a month of free data transfer out, not deducted.
Sources
- Elastic Load Balancing pricing
- Condition types for listener rules
- Quotas for your Application Load Balancers
- Application Load Balancers
USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 26, 2026. Illustrative configuration, not a client case.
Pattern 2 of 4 · Illustrative configuration
A test account with load balancers nobody uses
A test account runs six Application Load Balancers, two Network Load Balancers and two Classic Load Balancers; six of them have no registered target left. Then the idle ones are deleted.
- Trusted Advisor's Idle Load Balancers check flags the two Classic Load Balancers only; the idle Application and Network Load Balancers are found by their metrics and their target groups.
- Each idle Application Load Balancer still bills $0.02646 an hour, each idle Network Load Balancer $0.02646, and each of their two public IPv4 addresses $0.005 an hour.
Before the cleanup, the ten load balancers' public addresses alone cost $73.00 a month, computed, idle or not.
With the levers: $163.97 a month less (59.4% less), computed.
The bills line by line, the assumptions and the sources
A test account with load balancers nobody uses, before: Every load balancer kept Illustrative
Ten load balancers, six of them idle.
| Line | A month |
|---|---|
| Network | $276.19 |
| Application Load Balancers6 load balancers × 730 h × $0.02646 /h | $115.89 |
| LCUs used on average by the three that serve traffic0.75 LCUs × 730 h × $0.0084 /LCU-h | $4.60 |
| Network Load Balancers2 load balancers × 730 h × $0.02646 /h | $38.63 |
| NLCUs used on average by the one that serves traffic0.25 NLCUs × 730 h × $0.0063 /LCU-h | $1.15 |
| Classic Load Balancers2 load balancers × 730 h × $0.0294 /h | $42.92 |
| Public IPv4 addresses, one per load balancer and zone20 addresses × 730 h × $0.005 /h | $73.00 |
| A month, computed | $276.19 |
A test account with load balancers nobody uses, with the levers: The idle load balancers deleted Illustrative
Four load balancers, each serving traffic.
| Line | A month |
|---|---|
| Network | $112.22 |
| Application Load Balancers3 load balancers × 730 h × $0.02646 /h | $57.95 |
| LCUs used on average by the three that serve traffic0.75 LCUs × 730 h × $0.0084 /LCU-h | $4.60 |
| Network Load Balancer1 load balancer × 730 h × $0.02646 /h | $19.32 |
| NLCUs used on average by the one that serves traffic0.25 NLCUs × 730 h × $0.0063 /LCU-h | $1.15 |
| Public IPv4 addresses, one per load balancer and zone8 addresses × 730 h × $0.005 /h | $29.20 |
| A month, computed | $112.22 |
Assumptions
- Illustrative configuration in Paris (eu-west-3), not a client case.
- Idle: three Application Load Balancers, one Network Load Balancer and both Classic Load Balancers, with no target and no traffic: no capacity units, no GB processed, but their hours and addresses.
- The others serve a little traffic: 0.25 LCU or NLCU each on average, processed bytes the highest dimension.
- All are internet-facing in two zones, with one public IPv4 address per zone; for the Classic Load Balancer, AWS's pages read for this article do not give the count, and one per zone is assumed.
Not counted
- The targets of the load balancers that serve traffic, and their data transfer.
- The Free Tier for new customers (750 hours a month shared between Classic and Application Load Balancers, 15 GB of Classic data processing and 15 LCUs), the Free Tier credits of accounts created from July 15, 2025, and the 100 GB a month of free data transfer out, not deducted.
Sources
- Cost optimization (AWS Trusted Advisor checks)
- Elastic Load Balancing pricing
- How Elastic Load Balancing works
USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 26, 2026. Illustrative configuration, not a client case.
Pattern 3 of 4 · Illustrative configuration
A Network Load Balancer with cross-zone load balancing on
An internet-facing Network Load Balancer in three zones processes 45 GB an hour on average for TCP clients, 32,850 GB a month, with cross-zone load balancing turned on; then turned off, each zone's node sending to its own zone's targets.
- Each node sends to the targets of its own zone: no data transfer charge between them.
- With cross-zone load balancing on, each node also sends to the other zones' targets: two thirds of the bytes cross a zone, billed $0.01 per GB out of one zone and $0.01 into the other.
- With cross-zone off, each zone needs enough targets for its own share of the clients.
The cross-zone lines were $438.00 a month, computed, more than the load balancer and its NLCUs together. Turning cross-zone off removes them only if each zone has the targets for its own share.
With the levers: $438.00 a month less (64.9% less), computed.
The bills line by line, the assumptions and the sources
A Network Load Balancer with cross-zone load balancing on, before: Cross-zone load balancing on Illustrative
Each node spreads its traffic over the targets of the three zones.
| Line | A month |
|---|---|
| Network | $675.23 |
| Network Load Balancer1 load balancer × 730 h × $0.02646 /h | $19.32 |
| NLCUs used on average, processed bytes the highest dimension45 NLCUs × 730 h × $0.0063 /LCU-h | $206.96 |
| Its public IPv4 addresses, one per zone3 addresses × 730 h × $0.005 /h | $10.95 |
| Nodes to targets in another zone: 21,900 GB out of their zone21,900 GB × $0.01 /GB | $219.00 |
| The same 21,900 GB into the other zone21,900 GB × $0.01 /GB | $219.00 |
| A month, computed | $675.23 |
A Network Load Balancer with cross-zone load balancing on, with the levers: Cross-zone load balancing off Illustrative
Each node sends to the targets of its own zone.
| Line | A month |
|---|---|
| Network | $237.23 |
| Network Load Balancer1 load balancer × 730 h × $0.02646 /h | $19.32 |
| NLCUs used on average, processed bytes the highest dimension45 NLCUs × 730 h × $0.0063 /LCU-h | $206.96 |
| Its public IPv4 addresses, one per zone3 addresses × 730 h × $0.005 /h | $10.95 |
| A month, computed | $237.23 |
Assumptions
- Illustrative configuration in Paris (eu-west-3), not a client case.
- 45 GB processed an hour on average, in both directions together, processed bytes the highest dimension: 45 NLCUs, all month.
- Clients reach the three nodes evenly (DNS returns the nodes' addresses) and the targets are spread evenly, so with cross-zone on, each node sends two thirds of its traffic to the other zones: 21,900 GB crossing a zone, billed out of one zone and into the other.
- After: cross-zone off, each zone with enough targets to serve its own share, as the Network Load Balancer guide asks.
Not counted
- The targets, and data transfer out to the internet, the same in both variants.
- The Free Tier for new customers (750 hours a month shared between Classic and Application Load Balancers, 15 GB of Classic data processing and 15 LCUs), the Free Tier credits of accounts created from July 15, 2025, and the 100 GB a month of free data transfer out, not deducted.
Sources
- Edit target group attributes for your Network Load Balancer
- How Elastic Load Balancing works
- Understanding data transfer charges
- Elastic Load Balancing pricing
USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026, September 16, 2026 and October 16, 2026, fetched October 26, 2026. Illustrative configuration, not a client case.
Pattern 4 of 4 · Illustrative configuration
A Classic Load Balancer moved to an Application Load Balancer
A web application behind an internet-facing Classic Load Balancer in two zones processes 2,920 GB a month, 4 GB an hour on average; then the same traffic through an Application Load Balancer.
- The Classic Load Balancer bills $0.0294 an hour and $0.0084 for every GB it processes.
- The Application Load Balancer bills $0.02646 an hour and $0.0084 per LCU-hour: with bytes the highest dimension, the same per GB, so the hourly rate makes the difference.
With bytes the highest dimension, an LCU costs what a Classic GB costs, so the move saves the difference in the hourly rate, $2.14 a month, computed; with many short connections, the LCU count could be higher. For TCP traffic, a Network Load Balancer would bill $45.02, 15.5% less, computed.
With the levers: $2.14 a month less (4.0% less), computed.
The bills line by line, the assumptions and the sources
A Classic Load Balancer moved to an Application Load Balancer, before: Classic Load Balancer Illustrative
Billed by the hour and by every GB processed.
| Line | A month |
|---|---|
| Network | $53.29 |
| Classic Load Balancer1 load balancer × 730 h × $0.0294 /h | $21.46 |
| Data processed2,920 GB × $0.0084 /GB | $24.53 |
| Public IPv4 addresses, one per zone2 addresses × 730 h × $0.005 /h | $7.30 |
| A month, computed | $53.29 |
A Classic Load Balancer moved to an Application Load Balancer, with the levers: Application Load Balancer Illustrative
Billed by the hour and by the LCUs used.
| Line | A month |
|---|---|
| Network | $51.15 |
| Application Load Balancer1 load balancer × 730 h × $0.02646 /h | $19.32 |
| LCUs used on average, processed bytes the highest dimension4 LCUs × 730 h × $0.0084 /LCU-h | $24.53 |
| Public IPv4 addresses, one per zone2 addresses × 730 h × $0.005 /h | $7.30 |
| A month, computed | $51.15 |
A Network Load Balancer instead, for TCP traffic: $45.02 a month, 15.5% less than before, computed.
Assumptions
- Illustrative configuration in Paris (eu-west-3), not a client case.
- 2,920 GB processed a month. After: processed bytes are the Application Load Balancer's highest dimension, 4 LCUs on average; with many short connections, new connections could be higher, and the bill too.
- One public IPv4 address per zone in both variants; for the Classic Load Balancer, assumed (AWS's pages read for this article do not give the count).
Not counted
- The targets, and data transfer out to the internet, the same in both variants.
- The work of the migration: AWS's migration wizard creates the new load balancer, and the traffic is moved by DNS.
- The Free Tier for new customers (750 hours a month shared between Classic and Application Load Balancers, 15 GB of Classic data processing and 15 LCUs), the Free Tier credits of accounts created from July 15, 2025, and the 100 GB a month of free data transfer out, not deducted.
Sources
USD before tax, 730 h a month. AWS Price List, eu-west-3, offer files published September 11, 2026 and October 16, 2026, fetched October 26, 2026. Illustrative configuration, not a client case.
Want the same levers on your own bill?
Get a free auditHow to reduce Elastic Load Balancing costs
Each lever below comes from AWS documentation; their order is this article's: see what each load balancer bills, remove what is idle and count the addresses, reshape how many load balancers there are and of which type, route the traffic within its zone, commit only for capacity, and look again:
- Lever 01,SeeSee what each load balancer billsAlways, and first
- Lever 02,TrimDelete idle load balancers and endpointsA load balancer with no target or almost no traffic
- Lever 03,TrimCount the public IPv4 addressesInternet-facing load balancers
- Lever 04,ReshapePut several applications behind one Application Load BalancerSeveral small HTTP applications, each with its own load balancer
- Lever 05,ReshapePick the type the traffic needsA new load balancer, or one whose traffic has changed
- Lever 06,ReshapeMigrate Classic Load BalancersAny Classic Load Balancer still running
- Lever 07,RouteKeep cross-zone load balancing off where zones are balancedA Network or Gateway Load Balancer with cross-zone on
- Lever 08,CommitReserve LCUs for capacity, not for priceA planned traffic spike or a migration
- Lever 09,ReviewReview on a cadenceAt each workload review, and after each new application
Lever 01 · See
See what each load balancer bills
The bill groups every type's hours under one usage type, so the first step is the list: each load balancer, its type, its scheme, its zones and its capacity units. CloudWatch has two capacity metrics, and AWS tells them apart (Capacity reservations): "The PeakLCUs metric is different from the ConsumedLCUs metric, which only aggregates the billing dimensions of your traffic." ConsumedLCUs explains the bill; PeakLCUs sizes a reservation.
Lever 02 · Trim
Delete idle load balancers and endpoints
AWS's own rule is plain (Trusted Advisor's cost checks): "Any load balancer that is configured accrues charges. If a load balancer has no associated back-end instances, or if network traffic is severely limited, the load balancer is not being used effectively." The check that says so has a gap: "This check currently only checks for Classic Load Balancer type within ELB service. It does not include other ELB types (Application Load Balancer, Network Load Balancer)." Its criteria still work as a test for every type, among them "A load balancer has had less than 100 requests per day for the last 7 days." Each idle Application or Network Load Balancer costs this before its addresses:
One load balancer that serves nothing
$19.32 a monthin Paris, 730 hours, computed, and each of its public IPv4 addresses on top when it is internet-facing.
Computed from the AWS Price List · eu-west-3 · Sep 11, 2026
Gateway Load Balancer endpoints have their own check, "Inactive Gateway Load Balancer endpoints": "A Gateway Load Balancer endpoint is considered to be underutilized if it has no data processed in the last 30 days." Pattern 2 prices a test account before and after the cleanup.
Lever 03 · Trim
Count the public IPv4 addresses
Each node of an internet-facing load balancer has a public address, billed by the hour, and an internal load balancer has none: it follows that where every client is inside the VPC or connected to it, the internal scheme removes the line. Two more options are the Application Load Balancer's. Its IP address type "Dualstack without public IPv4", which How Elastic Load Balancing works lists for the Application Load Balancer only, means "Clients communicate using public and private IPv6 addresses and private IPv4 addresses", so it fits only where every client has IPv6, and the Application Load Balancer guide adds a limit: "Application Load Balancer authentication only supports IPv4 when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address, the load balancer can't complete the authentication process, resulting in HTTP 500 errors." And IPAM pools bring your own ranges: "IPAM IP address pools give you the choice to bring some or all of your public IPv4 address ranges to AWS and use them with your Application Load Balancers", and "There are no additional charges associated with using IPAM IP address pools with your load balancers. However, there might be charges related to IPAM, depending on which tier you use." When the pool runs out, "Elastic Load Balancing uses AWS managed IPv4 addresses instead. There are additional charges to use AWS managed IPv4 addresses."
Lever 04 · Reshape
Put several applications behind one Application Load Balancer
Host and path rules let one load balancer serve several applications (Condition types for listener rules): a host condition routes "based on the host name in the host header (also known as host-based routing)", and a path condition "based on the URL in the request (also known as path-based routing)". The limits are in the quotas:
What one Application Load Balancer takes, by default (quotas)
| Quota | Default |
|---|---|
| Rules per load balancer, excluding default rules | 100, adjustable |
| Certificates per load balancer, excluding default certificates | 25, adjustable |
| Target groups per load balancer | 100 |
| Listeners per load balancer | 50, adjustable |
| Condition values per rule | 5 |
Above ten rules, rule evaluations become one of the capacity dimensions; it follows that a consolidated load balancer with many rules and many requests can use more LCUs than the sum of the ones it replaces. Pattern 1 merges eight applications with eight rules.
Lever 05 · Reshape
Pick the type the traffic needs
The Application and Network Load Balancers cost the same by the hour in Paris, and their capacity units count different things: 25 new connections a second or 1 GB an hour for an LCU, 800 new TCP connections a second or 1 GB an hour for an NLCU (Elastic Load Balancing pricing). On bytes, the NLCU costs 25.0% less. What decides is what the traffic needs: rules on hosts, paths and headers, Lambda targets and user authentication are the Application Load Balancer's (Migrate your Classic Load Balancer); "Static IP addresses, which allow assigning one Elastic IP address per subnet enabled for the load balancer" and the "Ability to handle volatile workloads and scale to millions of requests per second" are the Network Load Balancer's. ConsumedLCUs shows which dimension a workload fills.
Lever 06 · Reshape
Migrate Classic Load Balancers
AWS recommends the move for every Classic Load Balancer, and lists what an Application Load Balancer adds, among them "Improved load balancer performance overall" (Migrate your Classic Load Balancer). The migration wizard "creates a new load balancer. The wizard doesn't convert the existing Classic Load Balancer to an Application Load Balancer or Network Load Balancer. You must manually redirect the traffic to the newly created load balancer." The manual path moves the traffic by DNS weights, "a weight of 1 in the new DNS record and a weight of 9 in the existing DNS record for your old load balancer", then updates the IAM policies, the CloudWatch metrics, the CLI scripts and the CloudFormation templates to the current API. The saving depends on the traffic: Pattern 4 prices it when bytes dominate.
Lever 07 · Route
Keep cross-zone load balancing off where zones are balanced
A Network or Gateway Load Balancer starts with cross-zone off, and turned on, a Network Load Balancer's traffic between zones pays data transfer (the Network Load Balancer guide). The same page gives the condition for leaving it off: "When cross-zone load balancing is disabled, ensure that you have enough target capacity in each of the load balancer Availability Zones, so that each zone can serve its associated workload." It also gives the reason beyond cost: "This could be used if zonal failure domains are preferred over regional, ensuring that a healthy zone isn't impacted by an unhealthy zone, or for overall latency improvements." Each GB that crosses costs $0.02, computed; Pattern 3 prices a month of it. On an Application Load Balancer, cross-zone stays on at the load balancer level and can be turned off per target group, and its traffic to targets is free: "It is free to transfer data in and out from Amazon Classic and Application Elastic Load Balancers using private IP addresses". It follows that turning it off there is a choice for zonal isolation, not a saving.
Lever 08 · Commit
Reserve LCUs for capacity, not for price
AWS lists when to reserve (Capacity reservations): "You have an upcoming event that will have a sudden, unusual high traffic", "You have unpredictable spiky traffic due to the nature of your workload for a short period", a start "at a specific start time", and migrations "between load balancers". Saving money is not on the list, and the Paris price list explains why: a reserved LCU-hour costs $0.0084, what a used one costs. Reserve for the hours that need the floor, sized from PeakLCUs, and release it after: "The total reservation request must be at least 100 LCU", $613.20 for a whole month, computed. A Network or Gateway Load Balancer cannot reserve in Paris: AWS offers it in ten other Regions, from 2,750 LCUs per zone (Capacity reservations for your Network Load Balancer).
Lever 09 · Review
Review on a cadence
Well-Architected sets the cadence by the stake (COST10-BP01): "The review effort should reflect potential benefit. For example, core workloads or workloads with a value of over ten percent of the bill are reviewed quarterly or every six months, while workloads below ten percent are reviewed annually." Load balancers arrive with applications, environments and accounts, and do not leave with them: the list of the first lever, compared from one review to the next, shows the ones nobody owns. The capacity units move with the traffic, so the type that cost less for a workload last year may not this year, and a Classic Load Balancer still running is a migration still to plan.
In short: See what each load balancer bills, delete the idle ones and count the addresses, merge small HTTP applications behind one Application Load Balancer, migrate the Classic ones, keep cross-zone off on a Network Load Balancer where the zones are balanced, and reserve LCUs only for capacity.
FAQ
How much does an Application Load Balancer cost per month?
In Paris, $0.02646 per hour, $19.32 a month at 730 hours, computed, plus $0.0084 per LCU-hour and one public IPv4 address per zone when internet-facing: $26.62 a month in two zones before any traffic (Load balancers in Paris).
What is an LCU?
A Load Balancer Capacity Unit: the amount of new connections, active connections, processed bytes and rule evaluations an Application Load Balancer bills as one, on its busiest dimension. The Network and Gateway Load Balancers have their own, the NLCU and the GLCU (The hour, then the capacity units).
Does a reserved LCU cost less?
Not in Paris: the price list bills a reserved LCU-hour at $0.0084, the price of a used one. A reservation guarantees a minimum capacity, from 100 LCUs, and bills it whether used or not. Network and Gateway Load Balancers have reservations too, from 2,750 LCUs per zone, in ten Regions that do not include Paris (The LCU reservation).
Is cross-zone load balancing charged?
The setting is free. On a Network Load Balancer, the traffic it sends between zones is not: data transfer applies, $0.02 per GB that crosses in Paris, computed. On an Application or Classic Load Balancer, no: AWS states that their data in and out over private IP addresses is free. Cross-zone is always on at the load balancer level for an Application Load Balancer, and off by default for Network and Gateway Load Balancers (Cross-zone load balancing).
ALB or NLB: which costs less?
The same by the hour in Paris; on bytes, an NLCU costs 25.0% less than an LCU, but each counts connections differently, and only the Application Load Balancer routes by host, path or header. The traffic's busiest dimension decides (Pick the type the traffic needs).