AWS S3 pricing - data transfer in/out - amazon-web-services

I am planning to store objects in S3 standard storage, each object could be of 100MB in size so monthly it could go upto 1TB. I will use a single region to store these objects in S3.
I want to create a mobile app to store and fetch this objects using post/get apis.
And then show them in my app.
S3 uses different pricing sections, I understand storage and requests (post/get) pricing.
My question is around data transfer in/out pricing, in my case above will I be billed for data transfer in/out? if no why not?

Yes, you will be billed because you mobile app will connect from internet. Even connected from within AWS there are fees associated with your number of requests and data transferred (inside region or outside region).
You can use the AWS Calc to get an estimate for the cost associated: https://calculator.s3.amazonaws.com/index.html

All traffic FROM mobile phones to S3 or EC2 is free.
All traffic TO mobile phones from S3/CloudFront is billed according to a selected region. Take a look at https://aws.amazon.com/s3/pricing/.
Keep in mind that incoming traffic (to S3) is free only if you're NOT using S3 Transfer Acceleration.

Related

Does AWS CloudFront bill for the cache hit?

I know that AWS CloudFront bills Data Transfer Out (and there's 1 TB of free in the free tier). But I was wondering what CloudFront counts as Data Transfer. Is any data transferred to the Internet (CloudFront cached data aka cache hit, data that is transferred from EC2/S3) billed?
For instance, let's say the origin server (EC2) returned 1 Gb of data to the Internet and CloudFront cached it, and eventually cached data got requested & transferred 4 times to the Internet. Will AWS bill me for 5 Gb of Data Transfer Out or only for 1 Gb (and the other 4 Gb won't be billed since it's cached)
Just for context: I have an EC2 application that returns images (that are stored in S3) and now I'm getting more and more requests and therefore more and more costs for the Data Transfer Out of EC2. I was looking for the option to cache images for some time in order to reduce Data Transfer costs. Two options that I found are Cloudflare & CloudFront. Cloudflare seems like a good option and allows to implement caching but in the meantime, I am trying to figure out how CloudFront works (since I'm using AWS ecosystem).
If that CloudFront bills every data transfer (even that is cached) then I suppose it won't reduce the Data Transfer cost.
Here's what the docs say.
On Origin server to Amazon CloudFront (origin fetches)
If you are using an AWS service as the origin for your content, data transferred from origin to edge locations (Amazon CloudFront origin fetches) are free of charge. This applies to data transfer from all AWS regions to all global CloudFront edge locations. Data transfer out from AWS services for all non-origin fetch traffic (such as multi-CDN traffic) to CloudFront will incur their respective regional data transfer out charges.
Free data Transfer between AWS cloud services and Amazon CloudFront for origin fetches
If AWS origins such as Amazon S3, Amazon EC2 or Elastic Load Balancing are used, there is no charge incurred for data transferred from origins to CloudFront Edge locations (this type of data transfer is known as origin fetch).
Here's detailed information on CloudFront Pricing along with a Price Calculator.

Reducing AWS Data Transfer Cost for AWS S3 files

AWS S3 has a standard public bucket and folder (Asia Pacific region) which hosts ~30 GB of images/media. On another hand, the website and app access these images by using a direct S3 object URL. Unknowingly we run into high data transfer cost and its significantly unproportionate:
Amazon Simple Storage Service: USD 30
AWS Data Transfer: USD 110
I have also read that if EC2 and S3 is in the same region cost will be significantly lower, but problem is S3 objects are accessible from anywhere in the world from client machine directly and no EC2 is involved in between.
Can someone please suggest how can data transfer costs be reduced?
The Data Transfer charge is directly related to the amount of information that goes from AWS to the Internet. Depending on your region, it is typically charged at 9c/GB.
If you are concerned about the Data Transfer charge, there are a few things you could do:
Activate Amazon S3 Server Access Logging, which will create a log file for each web request. You can then see how many requests are coming and possibly detect strange access behaviour (eg bots, search engines, abuse).
You could try reducing the size of files that are typically accessed, such as making images smaller. Take a look at the Access Logs and determine which objects are being accessed the most, and are therefore causing the most costs.
Use less large files on your website (eg videos). Again, look at the Access Logs to determine where the data is being used.
A cost of $110 suggests about 1.2TB of data being transferred.

AWS Bandwidth data transfer out beyond the global free tier dramatically increased

I'm new to AWS. I launched a EC2 instance and some S3 buckets in April.
The cost of AWS in April and May are normal, but the cost of AWS in June are doubly increased.
I went to the Bills Page to check and I found that the data transfer is abnormal.
Here are the pictures about the cost in May and June:
I didn't change anything except the ssh setting of EC2's (myip -> anywhere).
Can anyone tell me where should I check my setting first?
I assume you are referring to:
Data Transfer in May: 48 GB for $4.36
Data Transfer in June: 319 GB for $28.71
Data Transfer is charged for outbound traffic to the Internet. The AWS Free Usage Tier provides an initial 15GB at no charge. Thereafter, the charge depends upon your Region. It appears that you are in the USA, where the rate is $0.09/GB.
There has been no price increase on AWS. In fact, AWS just announced their 62nd price reduction. Rather, the cause of the increased charge is the fact that your account consumed more data transfer in June (319 GB) than in May (45 GB).
Data transfer would include users on the Internet accessing your web servers, any downloads from AWS (eg from Amazon S3) and everything else causing data to go from AWS to the Internet.
If you think this is too high, you should examine the services you are running and, in particular, make sure you are not serving large content from Amazon S3.

AWS S3 and AWS storage gateway

i am bit confused between AWS S3 and AWS storage gateway as both functions the same of storing data.Can anyone explain me with example of what is the exact difference between two services offered by Amazon
AWS S3 is the data repository
AWS Storage Gateway connects on premise storage to the S3 repository.
You would use Storage Gateway for a number of reasons
You want to stop purchasing storage devices, and use S3 to back your enterprise storage. In this case, your company would save to a location defined on the storage gateway device, which would then handle local caching, and offload the less frequently accessed data to S3.
You want to use it as a back up system - whereby Storage Gateway would snap shot the data into S3
To take advantage of the newly released virtual tape library - which would alloy you to transition from tape storage to S3/Glacier storage, without losing your existing tape software and cataloging investment.
1, AWS S3 is a file system. It acts as network disk. For people has no cloud experience, you can treat it as dropbox.
2, AWS Storage Gateway is an virtual interface (or in practice, it is a virtual pc running on your server) which allow you read/write data from/to aws S3 or other aws storage service transparently
You can assume S3 is dropbox itself, you can access it through web or api, and AWS Storage Gateway is the dropbox client on your pc, which simulate the dropbox as your local drive (actually a network drive in the real case).
I think, the above answers are enough explanatory. But here's just a check
Why would I use Storing data on AWS S3?
Easy to use
Cost-effective
Long durability and availability
No limitation for storing amount of data. Only thing is - Data object should not be more than 5 TB
Why would I use AWS Storage Gateway?
I have large amount of data or important data that is stored in data centre and I want to store on Cloud (AWS) for "obvious" reasons
I need a mechanism to transfer my important data from data centre to AWS S3
I need to store my old and "not-so-useful" but "may-be-needed-in-future" type data so I will store it on AWS
Glacier
Now, I need a mechanism to implement this successfully. AWS Storage gateway is provided to fulfil this requirement.
AWS Storage Gateway will provide you a VM which will be installed on your data centre and will transfer that data.
That's it. (y)

Number of Buckets in Amazon Free Tier

I am trying out Amazon S3 for my file uploads and would like to store different buckets for development, test and production environments. In amazon documentation it was mentioned the following statement
As part of the AWS Free Usage Tier,
you can get started with Amazon S3 for
free. Upon sign-up, new AWS customers
receive 5 GB of Amazon S3 storage,
20,000 Get Requests, 2,000 Put
Requests, 15GB of data transfer in,
and 15GB of data transfer out each
month for one year.
Is there any limitation about the number of buckets. I mean if I have three buckets and If I use within the overall storage limit, will I be charged.
Each account in AWS is limited to 100 buckets -- even if you are paying the normal usage rates.
Buckets are not billable items in S3.
If the limit of 100 is not enough you can create virtual folders in your buckets and structure your environment that way.