More about AWS Costs
- Understanding AWS Total Cost of Ownership (TCO)
- AWS Cost Optimizations: Tools, Checklist, and Best Practices
- AWS Storage Gateway Pricing Explained
- AWS Snowball Pricing Simplified
- AWS Calculator: Step By Step
- EFS Pricing Explained
- AWS RDS Pricing Explained
- AWS Cost Management: 9 Free Tools to Help Cut Your Costs
- AWS Data Transfer Costs: Hidden Network Transfer Costs and What to Do About Them
- AWS Storage Costs: All in One Place
- AWS Cost Saving Guidebook Shows How You Can Optimize EBS Costs
- AWS EBS Snapshot Pricing Vs. Azure & Cloud Volumes ONTAP
- Find and Optimize Your AWS Storage Costs for AWS EBS and More
- Control EBS Costs: How to Find and Delete Unused AWS EBS Volumes Using a Lambda Function
Have you ever noticed how AWS data transfer costs suddenly start to crop up in your monthly cloud bill? There are different data transfer types you can perform within or out of AWS. Because of the sheer number of different transfer types available, it can be challenging to keep track of all their associated costs. If you’re looking to do some AWS cost optimization, understanding these hidden costs is crucial.
In this article we take a look at the wide range of AWS data transfer costs and give you a few tips on how to keep them under control so you can avoid unnecessary spikes in your AWS cloud bill, including how NetApp Cloud Volumes ONTAP for AWS can help.
AWS Data Transfer Costs
In order to keep a precise accounting of all your AWS data transfer costs or if you want to optimize your AWS design before deploying it, you first need to know exactly how data transfers are charged. This part is a little bit tricky because some data transfer types are charged only one-way (either in or out) such as with S3, others have a fee when going in and another fee for outgoing transfers such as when transferring data between EC2 instances on different Availability Zones, VPCs, or regions. With such a diverse portfolio of AWS services, it can be easy to lose track of how costs can add up.
As a general guide, AWS charges users when moving data in either of two ways: between AWS and the Internet, and within the AWS cloud. Let’s take a look at both.
AWS Data Transfers Over the Internet
In from the Internet: The AWS cloud is not only the different worldwide regions and Availability Zones, but also Direct Connect links and AWS Edge Locations. Direct Connect links are dedicated private connections from on-premises sites to AWS. Edge Locations are data centers that are part of Amazon CloudFront, which delivers cached content of AWS services with reduced latency to users.
Any data transfer coming from the Internet into AWS is free, whether it is into AWS Regions, into Direct Connect, or into Edge Locations.
Out to the Internet: Transfers that send data out over the internet are billed at region-specific and tiered data transfer rates. These rates take into account all the aggregate data transferred by all the following services: Amazon RDS, Amazon Redshift, Amazon SES, Amazon SimpleDB, Amazon EBS, Amazon S3, Amazon Glacier, Amazon SQS, AWS Storage Gateway, Amazon SNS, Amazon DynamoDB, and Amazon CloudWatch Logs.
You can see a specific, per-region chart with the tiered rates here. Below, we’ve included the rates for the US West region as an example:
Data transferred from Edge Locations out to the Internet is billed upon region-specific data tiered rates:
Data Transfer Costs Within the AWS Cloud
There are a few ways in which you can move data around the AWS cloud. Let's explore them.
Inter-Region data transfers: Inter-region data transfer fees are charged at the source region rates. For example, if you have a web content backup stored in Amazon S3 in the South America (Sao Paulo) Region and you need to pull that data from S3 into any other region, you would need to pay according to the Sao Paulo Region rate of $0.138 per GB. If you are expanding your services and now you have app users geographically located on the United States west coast, and you plan to move a copy of your data from the US East (Ohio) region to US West (Los Angeles), you would need to pay by the US East Region rate of $0.02 per GB transferred. You can find all the source-specific region rates here. No fees have to be paid for the incoming traffic at the destination region.
Data transfers between AWS Regions and Direct Connect locations: While there are no AWS data transfer costs into any of the AWS Regions—a situation which follows the general rule that transferring data into AWS from the internet is free—transferring data from an AWS Region to a Direct Connect location does have a charge.
The rates for transferring data from an AWS Region into a Direct Connect location depend on the source Region and the destination Direct Connect location. For example, transferring data from the US East (Ohio) Region to a Direct Connection link in Montreal costs $0.0200 per GB. Transferring the same data from the EU (Frankfurt) region into the same Montreal Direct Connect link costs $0.0300 per GB.
AWS has a complete chart with the rates for transferring from AWS Regions to Direct Connect locations here.
Data transfers between Edge locations and AWS Regions: Remember, Edge locations are data centers that are part of the Amazon CloudFront CDN (Content Delivery Network). Those locations cache data such as videos, APIs, or applications for low-latency access. Transfers from AWS regions into Edge locations are free.
Transfers from Edge locations back to their origin are charged at region specific rates:
AWS Data transfer costs within the same region: Any time AWS resources or services communicate with each other within the same Region, there could be a potential fee attached to it. This is the type of AWS data transfer cost that can be a little trickier to keep track of and understand.
Here are few basic guidelines on how intra-region transfer fees are applied:
- Whenever you are transferring data between Amazon EC2, AWS containers, Amazon RDS, Amazon Redshift, Amazon DynamoDB Accelerator (DAX), Amazon ElastiCache instances, or Elastic Network Interfaces across Availability Zones or across VPC peering connections, whether this transfer is over public, private or Elastic IPv4 or IPv6 addresses, there is an egress fee of $0.01 per GB and an ingress fee of $0.01 per GB.
For example, you could be transferring 500 GB of data between a Redshift cluster in VPC-a and an EC2 instance in VPC-b , both in the same Availability Zone, and you would be charged $5 for egress from VPC-a and $5 for ingress into VPC-b. Using the same case example, only now both of them reside in the same VPC but in different Availability Zones, you would be charged the same.
- Any data transfer between EC2 instances or containers or Elastic Network Interfaces in the same Availability Zone and in the same VPC, whether using Public or Elastic IPv4 addresses, comes with an egress charge of $0.01 per GB and an ingress charge of $0.01 per GB.
- Any data transfer between EC2 instances or services, containers, or Elastic Network Interfaces in the same Availability Zone and same VPC using private IPv4 or IPv6 addresses is free.
- Data transfers between AWS services which can't be confined to a particular Availability Zone or VPC (the clearest example being AWS S3) and EC2 instances or other AWS services within the same region are free. Amazon S3 is the main example but these other services follow the same rule including Amazon Glacier, Amazon DynamoDB, Amazon SES, Amazon SQS, Amazon Kinesis, Amazon ECR, Amazon SNS, and Amazon SimpleDB.
Some important exceptions for cross-AZ transfers:
- Data transferred between Amazon Classic or Application Load Balancers and EC2 instances within the same region is free.
- Some multi-AZ configurations for replication purposes are exempt from charges when replicating data across AZs. These include: Amazon Aurora, Amazon Neptune, and Amazon RDS.
7 Tips on How to Reduce AWS Costs for Transfers
Part of having a good AWS cost optimization strategy is to reduce data transfer costs as much as possible. This calls for an optimized cloud infrastructure design with an efficient storage solution and also for a preventive and proactive monitoring plan. For that matter, check the following seven tips:
- Control data volumes: Limit the size of data transfers by using storage efficiencies with a data management platform such as NetApp Cloud Volumes ONTAP, which we’ll cover in detail below.
- Region exclusivity: If possible, keep all traffic within the same region. If traffic needs to exit a region check and choose the region with the lowest transfer rates that makes most sense for your business requirements.
- AZ exclusivity: Remember all traffic within the same AZ and the same VPC, using AWS Private IPs, is free. So, try keeping your resources within the same AZ and the same VPC using private IPs as much as possible.
- Avoid NAT devices: If you have EC2 instances inside a VPC that need to communicate out to the Internet or to other AWS public resources, try not using a dedicated NAT device as they charge a rate per GB that goes through it on top of the data transfer out rates that might apply. Assign those instances public IPs and use the VPC Internet Gateway NAT functionality instead. Or you can also use VPC endpoints.
- Use Amazon CloudFront: If you need to deliver data out to Internet users, consider Amazon CloudFront. Data transferred out to the Internet up to 50TB is going to be less expensive from Amazon CloudFront than if transferred out from AWS regions and with less latency. If you have a public facing service that delivers rich content such as videos or audio files, this might be a good option.
- Track specific services: Make sure to check the data transfer pricing for the following services as they have specific pricing rules: Amazon ElastiCache, Amazon Neptune, Amazon CloudSearch, Amazon ElasticSearch, Amazon MSK (Managed Kafka).
AWS Cost Optimization Tools
Preventing and tracking AWS data transfer costs are the two main strategies related to monitoring. Here are some valuable monitoring tools and resources that will help you with both:
- AWS Budget Tool lets you set cost thresholds which alert you when a budget has been exceeded or when it is forecasted to exceed it. You can include a data transfer parameter in this cost budget.
- Billing Alerts let you configure billing alerts that trigger with Amazon CloudWatch when your account billing exceeds a specific threshold.
- Using AWS Cost Explorer with cost allocation tags is possibly the best way to have deep insight into your data transfer costs.
- Setting VPC Flow logs and publishing them to CloudWatch.
- Use a network traffic monitoring tool such as IPTraf.
Learn more in our blog, AWS Cost Optimization: Concepts, Tools and Best Practices.
Implementing AWS Cost Controls with Cloud Volumes ONTAP
So how could implementing Cloud Volumes ONTAP aid you in reducing AWS data transfer costs? There are a number of ways that Cloud Volumes ONTAP can help.
A major benefit is SnapMirror data replication, which allows data to be moved efficiently between repositories not only in AWS but between on-prem deployments and other clouds.
NetApp’s storage efficiency features of deduplication, compression, and compaction ensure that the least possible amount of storage space is actually used, shrinking the size of data to transfer and therefore limiting costs. For example, if you are replicating between nodes in different Availability Zones for Disaster Recovery, storage efficiency ensures the least possible amount of data is being transferred. If you have a SnapMirror® data replication relationship between an on-prem ONTAP system and a Cloud Volumes ONTAP instance in AWS and you need to restore a Snapshot™ copy from the AWS instance back to on-prem, the lowest egress fees possible are going to apply for your transfer.
Additionally, Cloud Volumes ONTAP’s automatic data tiering from Amazon EBS to S3 does not accrue additional costs either. Data tiering moves data between Amazon EBS and Amazon S3 automatically based on its usage pattern. When the data isn’t in use, it is stored at less expense in S3; as soon as it is needed again, Cloud Volumes ONTAP automatically tiers it back to EBS for performant use, all without transfer fees.
There are a lot of ways in which you can move data around in the cloud. AWS data transfer costs can skyrocket if not designed and handled properly.
If you are planning on deploying Cloud Volumes ONTAP in AWS, many of its advanced features save on AWS transfer fees. Cloud Volumes ONTAP automatically applies deduplication, compression, and compaction storage efficiencies which guarantee the minimum amount of data possible is being stored and transferred.