Karl Robinson
Karl Robinson

March 20, 2020

Karl is CEO and Co-Founder of Logicata – he’s an AWS Community Builder in the Cloud Operations category, and AWS Certified to Solutions Architect Professional level. Knowledgeable, informal, and approachable, Karl has founded, grown, and sold internet and cloud-hosting companies.

It’s no secret that AWS, like most cloud providers, charge nothing for data ingress.  It’s free to put your data in to the cloud, yet they do charge for data egress – getting your data back out again.  This fact is often overlooked when modelling the business case for cloud versus on premise.

Money growth vector illustration, flat golden coins pile with revenue graph, concept of income increase or earnings, financial boost chart, success capital investment, cash budget isolated

Recently NASA have committed to upload hundreds of petabytes of data in to AWS, and it seems they failed to factor egress costs into their business case.

Egress costs are published on the AWS website:

Data Transfer OUT From Amazon InternetPrice per GB
Up to 1 GB / Month                  –  
Next 9.999 TB / Month             $0.09
Next 40 TB / Month            $ 0.085
Next 100 TB / Month           $0.07
Greater than 150 TB / Month             $0.05

These are the latest prices – as per Amazon’s pricing philosophy to continually lower prices they have reduced over the years – in 2010 they were around 60% higher, so you can expect these prices to continue to drop over time.

Even if you have a ‘Direct Connect’ dedicated network connection in to the AWS cloud, you can still expect to be charged between $0.02 and $0.19 depending on which region you are downloading data to.

Of course whether or not this presents a problem for you will largely depend on your use case.  In NASA’s use case, data is being downloaded regularly by 3rd parties for modelling purposes – this could get very expensive very quickly.

However, you may be uploading data into the cloud in order to take advantage of cloud based data processing services such as Amazon Redshift, EMR or Elasticsearch.  In these cases you won’t be charged for data egress as your data will remain within the AWS cloud while being processed. But beware you could be charged for moving data between AWS Regions – typically inter region transfer is $0.02 per GB.

If you wanted to remove all your data from the cloud – for example to migrate to another cloud or back to on premise, then this could get costly and it is probably worth modelling this cost beforehand should the situation ever arise – that way you’ll avoid the nasty sticker shock when you get your final AWS bill!  

If NASA were to download all 247 petabytes of data at the rates listed above, I make that over $12,000,000 of egress charges alone!  Unlikely NASA will be paying those rates of course, they will undoubtedly have a private pricing agreement, but you get my point.

If you are building a hybrid cloud solution with some infrastructure in AWS and some on premise, then it would be a good idea to model the data flows in advance to try and estimate data egress fees.  Also consider architecting the solution to minimize data egress where possible.

If you are hosting a web application in the cloud, then you are probably used to paying data egress charges for your outbound traffic anyway, so you will be comfortable with this charging model.

Finally, make sure you are leveraging AWS Cost Explorer or 3rd party tools/services to understand your AWS bill and how much you are actually spending on data egress.  With the right tools and tagging policies in place you should be able to tell who is downloading what, and attribute costs accordingly.