- Newest
- Most votes
- Most comments
Yes, you are correct in your understanding. When using an Elastic Load Balancer (ELB), you are indeed paying for two separate components: the Load Balancer Capacity Units (LCUs) and the data transfer out to the internet.
The LCU cost covers the operational aspects of the load balancer, such as the number of new connections, active connections, and rule evaluations it processes. This is charged based on the load balancer's usage and capacity.
The data transfer cost you're seeing as "DataTransfer-Out" is specifically for the traffic leaving your AWS environment to the internet. In the context of a load balancer, this typically represents the responses sent from your load balancer to external users or clients in response to their queries.
So, to break it down:
- You pay for the LCUs used by your load balancer.
- You also pay for the data transferred out from your load balancer to the internet (i.e., to your users).
This dual charging structure is normal and expected. The data transfer charges apply because you're sending data out of the AWS network to the internet. These charges are separate from and in addition to the ELB charges for using the load balancing service itself.
It's worth noting that data transfer in (from the internet to AWS) is typically free, but data transfer out (from AWS to the internet) incurs charges. The exact cost can vary depending on your specific AWS region and the volume of data transferred.
To optimize costs, you might consider strategies like caching frequently accessed content, compressing responses, or using AWS services like CloudFront if appropriate for your use case. However, some level of data transfer cost is unavoidable if you're serving content to users over the internet.
Sources
Application and Network Traffic Distribution - Elastic Load Balancing Pricing - AWS
Exploring Data Transfer Costs for Classic and Application Load Balancers | Networking & Content Delivery
Understanding data transfer charges - AWS Data Exports
answered 2 years ago
The [region]-DataTransfer-Out-Bytes (GB) usage type is for data transfer from an AWS region out to the internet. It's charged regardless of whether the traffic out to the internet is sent by or through an EC2 instance, a load balancer, NAT gateway, or other intermediary.
Depending on the scale of your AWS service consumption overall and assuming that requests serviced through your load balancer are mostly GET, OPTIONS, and HEAD requests with not much traffic uploaded via PUT or POST requests, you might benefit somewhat if you place a CloudFront distribution in front of your load balancer and point users to the CloudFront distribution.
Outbound traffic from the load balancer in a region to CloudFront edge locations is free. Outbound internet traffic is still charged, but only when it leaves the CloudFront edge location on its way to the end user. If your AWS use is relatively small, you'll benefit from the first 1 TB per month of traffic to the internet from CloudFront edge locations being free, and for the per-gigabyte fee for amounts exceeding 1 TB being somewhat cheaper than outbound internet traffic directly from a region.
If your organisation uses AWS's services on a more massive scale, CloudFront's list pricing (https://aws.amazon.com/cloudfront/pricing/) also has higher discount levels for larger amounts of traffic, up to 5 petabytes per month at present, as well as potential for even steeper private discount deals for customers committing to pay for more than 10 petabytes per month.
There's one fringe case that should be considered, however. If your application is upload-heavy, with large amounts of data uploaded from the internet to the load balancer, then the CloudFront option may not be optimal. As the bot wrote, traffic arriving over the internet to a region is free in most cases, as is traffic arriving from the internet to a CloudFront edge location. However, when a CloudFront edge location sends uploaded payload or streamed data to a region (e.g., to an ALB), the outbound traffic from the CloudFront edge location to the region is charged, although at a substantially lower rate than the regular pricing for outbound traffic to the public internet.
So specifically speaking to my use case, ELB is the source for Datatransfer-Out Byte. Which means, EC2 instances behind ELB sending traffic ?
@JD yes, that's where most of the outgoing traffic will be coming from. The ALB may send small amounts of data on its own, such as error messages or fixed responses you configure in listener rules, but in practice, most of the outgoing traffic will come from the EC2 instances or other compute capacity behind the load balancer.
Relevant content
asked 4 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 7 months ago

In the context of a load balancer, this typically represents the responses sent from your load balancer to external users or clients in response to their queries -> which means traffic is not originating from ELB, right ? Still it will consider data transfer to internet charges ?