How much do you pay for ingress data transfer to your instance? it’s free, right? Well, not exactly…
In AWS EC2 on-demand pricing page, you can find AWS Data transfer pricing, when you look for Data Transfer into Amazon EC2 From Internet, the price is $0.00:
when you scroll down a bit more, you will find this section:
I wasn’t sure about this, do you pay when you download from the same region? I read this section a few times and I was confused, so I decided to conduct a test:
I provisioned 2 instances in the London region (eu-west-2), on 2 different AWS accounts, one instance in zone euw2-az3, and another one in zone euw2-az2.
Then, I downloaded a 5Gb file from an instance in one account to an instance in the other account using a public IP. After 24 hours, I entered the billing dashboard in the account that downloaded the file:
Surprisingly, you actually pay $0.01/Gb for data transfer IN when you download from EC2 IP in the same region.
I was also curious, will I be charged the same if the traffic is in the same availability zone? I ran another test in the Stockholm region (eu-north-1), both of the instances are in the eun1-az1 zone and the result was the same.
AWS Cost and Usage Report (CUR):
I used AWS Cost and Usage report while I was working on this blog post, and I couldn’t find any information in AWS documentation about this, so I’m writing this down here for future searches:
If you search for data transfer IN in AWS CUR, the UsageType is “DataTransfer-Regional-Bytes”, Operation is “PublicIP-In” and ItemDescription is “USD 0.01 per GB for DataTransfer-Regional-Bytes” (pricing varies from one region to another).
P.S — Corey Quinn wrote in his blog about similar unclear pricing issues with data transfer between availability zones.