If there’s one thing that acts as both an inhibitor to cloud adoption and a sneaky hidden expense item, it’s the data egress cost. Research from IDC shows that planned and unplanned egress charges account for an average of 6% of organizations’ cloud storage costs. That may not sound like much, but egress charges accumulate as your cloud footprint grows.
Unlike subscriptions, egress charges aren’t fixed, and you usually don’t negotiate these fees in advance with cloud service providers. Organizations often see them increase after they make an acquisition, enter a new market, or become subject to regulations that force companies to relocate data.
Data egress costs are very hard to calculate and forecast. They’re likely the best representation of vendor lock-in. Is there any way to control and reduce them?
Where does data egress cost come from?
Cloud providers charge data egress fees whenever you move data from the cloud storage where it was uploaded to another location: cloud storage of the same provider but in a different Availability Zone, cloud storage of another provider, on-premises data solutions, and others.
Data egress charges are bandwidth or data transfer charges that aren’t part of the costs companies see when signing up for cloud storage.
That’s not everything: egress also comes along when you’re serving content through load balancers, NAT gateways, public IPs, and cross-AZ API traffic. It’s a significant part of the overall cloud spend.
Don’t get me wrong; I see why businesses have jumped on the cloud storage bandwagon. Using cloud storage, engineers have been able to scale quickly, increase innovation, and save costs instead of purchasing, maintaining, and updating on-premises infrastructure. But getting data out is a serious drawback every cloud user needs to be aware of.
Ingress vs. egress cost
Data or traffic entering a cloud infrastructure is referred to as ingress, and data leaving a cloud infrastructure is referred to as outflow.
Moving data onto cloud storage (like Azure Blob Storage or Amazon S3 object storage) is typically cost-free. Because the service’s overall cost effectively covers any associated costs, this is a deliberate business strategy that encourages new users to use the service.
Data ingress frequently happens in the following ways:
- User-generated content – applications gathering user data in some way, such as usage statistics, location information, and other information.
- Data pipelines – a data pipeline converts and processes raw data along the way until it is ready for use when it arrives at its destination.
- Uploading large volumes of data in bulk – cloud service providers offer a variety of options for doing that.
- Data related to updates – that includes recurring additions like updated product photos or videos.
To be usable by other services, this data needs to be transferred via egress, including scenarios such as:
- Using the data to react to HTTP requests from a user or content delivery network for application assets,
- integrating the data across many applications,
- transferring data from the cloud to a local storage device,
- transferring the data with the same provider to a different availability zone,
- moving the data to a different cloud provider.
Egress fees are a sneaky strategy for some providers to deter customers from leaving their environment. With time, organizations amass more and more data, becoming more dependent on the cloud provider. The sum required for exit grows as well, leading to vendor lock-in. This issue is just the tip of the iceberg.
Why are egress costs a problem (apart from being a cost item)?
There are some use cases where egress costs aren’t an issue:
For example, if you’re a user that only wants to use a single cloud architecture and store and access a small amount of data in the cloud.
In other scenarios, however, egress fees come with the following problems:
- Egress fees may limit an organization’s ability to fully benefit from the cloud, losing their competitive advantage.
- They can prevent cloud deployments from becoming more resilient as they raise the operating expenses of hybrid and multi-cloud architectures.
- Typically, they’re unexpected, and the set cloud budgets don’t include them.
The lack of information about egress costs makes this worse. Although the charges are by no means new, it is challenging to forecast and model them, potentially leading to cloud bill shock.
A pretty complex infographic showing AWS data transfer charges for server-based architectures. Source: AWS
AWS egress cost vs. Azure egress cost: What do cloud providers charge for data egress?
No matter your use case, most cloud providers, including Amazon Web Services, Microsoft Azure, and Google Cloud Platform, will charge up to $0.09 USD per every GB transferred out of their storage.
Specific egress fees can be unpredictable and depend on several factors, including:
- Customer tier and type of subscription
- The volume of transferred data
- Country of origin
- Data source and destination
- Failover control requests
- Data transfer speedup
Not all companies out there have the depth of application architecture and cloud infrastructure knowledge needed to understand the line-by-line charges for egress.
To get started, teams should know that data egress costs are usually a bit higher than basic storage costs. For example, for Amazon S3, you’re looking at some 5-7 cents more on top of your basic cloud storage charges.
Egress charges typically average around 9 cents per GB, with exponentially scaled pricing that makes it cheaper to export more data per GB and TB.
Calculating data transmission charges is tricky because you need to have clarity around the data’s journey. Is the data traveling across the internet, between AWS regions, or through separate AWS Availability Zones (AZs)?
Egress fees will change depending on your answer.
You must also examine the services from which the traffic is coming and going, as different services may have different data transfer-related expenses.
Data egress cost comparison
- Traffic exiting AWS is chargeable outside of the free tier within the range of $0.08–$0.12 per GB.
- The free tier provides 100GB of free data transfer out per month.
- Traffic between regions usually costs $0.09 per GB for the egress of both the source and destination.
- Traffic between services in the same region costs $0.01 per GB.
- Data transfer between Availability Zones in the same region costs $0.01 per GB.
- Between regions within North America and Europe – $0.02 per GB.
- Not the regional difference – traffic between regions within South America costs $0.16 per GB.
- For internet egress, the first 100 GB is free of charge.
- The next 10 TB cost $0.087 per GB, and the following 40TB $0.083 per GB to reach the final and lowest pricing level of $0.05 per GB.
Google Cloud Platform
- There’s no charge for network egress within the same location.
- You pay $0.01/GB for egress between locations within the same continent.
- Expect to pay between $0.08 and $0.12 per GB for egress between continents (this excludes Asia and Australia)
How to reduce egress fees
To limit cloud storage and data transfers, IT departments can adopt demand management. However, micromanaging usage in a dynamic cloud environment is expensive in itself. Furthermore, setting strict restrictions on data downloads runs the risk of causing business operations to fail later on.
Architecting for lower egress costs
Instead, teams can carefully select workloads and create cloud architectures that maximize efficiency by prioritizing:
- reduced inter-regional data transfers,
- use of data deduplication and compression,
- redesigning data-intensive apps to just download differences in data.
Choosing the right services
Companies can negotiate lower regional transfer fees or arrange to have part or all of their egress costs included in their subscription rates.
It may be less expensive to move archived material to a tier that allows for more frequent access than to pay additional costs to retrieve it from cold storage.
If the original expectation was that the data wouldn’t be recovered until an emergency, it’s a good idea to know exactly what data you store in each cloud service. This is especially true for cold systems, where egress charges might mount up quickly.
Bringing data on-premises
To determine when it’s no longer cost-effective to store data in the cloud due to egress charges, look at your use case and the value of the data in question. Data repatriation to on-premises systems entails additional fees but might be worth it in the long run.
And although businesses are getting better at understanding their data flows and cloud management technologies, this analysis is still challenging.
Egress fees have long been a major barrier for businesses looking to migrate their data into and out of the cloud, as they make it practically impossible to forecast how much will really be spent to manage data.
Many solutions have appeared on the market to address this issue and do away with all egress costs, increasing transparency and reducing complicated access costs.
Naturally, egress costs are just one cloud cost item.
Compute is another one – and the level of overprovisioning, underutilization, and cloud waste in the industry is staggering (we’re talking at least 37% of purchased compute capacity going to waste in cloud-native applications).
CAST AI is a solution that targets this part of your cloud bill through automation. Book a demo and get a personalized walkthrough of the platform to see how it works.
CAST AI clients save an average of 63%
on their Kubernetes bills
Book a call to see how automation can reduce your cloud bill