Pricing Structure of Amazon S3 AWS - amazon-web-services

I'm a newb at this and just want a clear understanding of how price is calculated.
I want to uses s3 cloud storage so that people can upload video, let's say 5 gb per day, we download the video, make changes and upload again for the person to retrieve.
That is 4x upload/download. Would that be 20gb transfer total? AWS on the high cost allows 100gb transfer per month (https://www.hostingadvice.com/how-to/aws-s3-pricing/). If each day our transfer is 20gb that will add up pretty fast.
Is there a more cost effective way to do cloud storage?
Thanks!

Pricing for Amazon S3 can be found at: S3 Pricing by Region | Amazon Simple Storage Service
The data transfer costs incurred would be:
Upload from Internet to S3: Zero
Download from S3 to an Amazon EC2 instance in the same region (for processing): Zero
Upload from EC2 to S3 in same region: Zero
Download from Amazon S3 to Internet: 9c/GB (in USA, but varies elsewhere!)
For a 5GB file, total data transfer costs: 5 x 9c = 45c
There would also be storage costs (2.3c/GB per month) and request pricing (way under 1c).

Related

How can I pin-point the source of AWS S3 costs?

I'm currently surprised by a pretty high daily AWS S3 cost of over 31 USD per day (I expected 9 USD - 12 USD per month):
I'm using eu-central-1
All buckets combined are less than 400 GB
No replication
The best explanation I have is that the number of requests was way higher than expected. But I don't know how I can confirm this. How can I narrow down the source of AWS S3 cost?
Is it possible to see the costs by bucket?
Is it possible to see a breakdown by storage / requests / transfers / other features like replication?
First pay attention to the factors on which AWS S3 charges - i.e. based on storage, how many requests s3 is getting, data transfer and retrieval.
Some of the ways for cutting and keep track on the cost -
Delete the previous version of the buckets if you don't need that.
Move the data to different s3 storage based on frequency of data retrieval.
activate the cost allocation tags on your buckets so that you can review the cost on individual bucket.
create an S3 Storage Lens dashboard for all the buckets in your account.

Cloudwatch log store costing vs S3 costing

I have an ec2 instance which is running apache application.
I have to store my apache log somewhere. For this, I have used two approaches:
Cloudwatch Agent to push logs to cloudwatch
CronJob to push log file to s3
I have used both of the methods. Both methods suit fine for me. But, here I am little worried about the costing.
Which of these will have minimum cost?
S3 Pricing is basically is based upon three factors:
The amount of storage.
The amount of data transferred every month.
The number of requests made monthly.
The cost for data transfer between S3 and AWS resources within the same region is zero.
According to Cloudwatch pricing for logs :
All log types. There is no Data Transfer IN charge for any of CloudWatch.Data Transfer OUT from CloudWatch Logs is priced.
Pricing details for Cloudwatch logs:
Collect (Data Ingestion) :$0.50/GB
Store (Archival) :$0.03/GB
Analyze (Logs Insights queries) :$0.005/GB of data scanned
Refer CloudWatch pricing for more details.
Similarly, according to AWS, S3 pricing differs region wise.
e.g For N.Virginia :
S3 Standard Storage
First 50 TB / Month :$0.023 per GB
Next 450 TB / Month :$0.022 per GB
Over 500 TB / Month :$0.021 per GB
Refer S3 pricing for more details.
Hence, we can conclude that sending logs to S3 will be more cost effective than sending them to CloudWatch.
They both have similar storage costs, but CloudWatch Logs has an additional ingest charge.
Therefore, it would be lower cost to send straight to Amazon S3.
See: Amazon CloudWatch Pricing – Amazon Web Services (AWS)

Amazon S3 Bucket data transfer charges applicable while mounted in EC2 server?

I have created an S3 Bucket and mounted into one of my EC2 servers in the same region. Then I put data into the bucket using FTP account created for that EC2 instance. Finally, I access the data by Http request.
I'm not accessing S3 bucket directly from Internet, either for writing or accessing. All the data transferred through EC2 instance.
So, I assume per month charges as below, for fully used up 1TB S3 bucket (standard storage),
Storage Pricing - $0.0300*1024 = $30.72
Request Pricing - $0.005*10 = $0.05 (Assumed 10,000 request per month )
Data Transfer Pricing - Nill (Since the bucket is not being accessed directly)
Is that correct? or data transfer pricing is applicable?
Ref: Pricing Details
You do not pay for data transfer between S3 and EC2 in the same region, however you pay for Data Transfer OUT From Amazon EC2 To Internet or EC2 instance in a different availability zone in the same region.
See EC2 pricing for more details.
If you transfer 1TB of data OUT to Internet from AWS, either directly from S3 or through EC2 instance, you will pay the same price.
TIP:
If you are transferring big amount of data from S3 out to Internet, look into CloudFront. Data transfer EC2/S3/ELB -> CloudFront is free of charge and CloudFront has cheaper rates per Gb compared to downloading files directly from S3.
EDIT:
see #Michael - sqlbot's comment, this is often but not always true depending on S3 Bucket's region and CloudFront edge location serving the content.
TIP 2:
For really large amounts of data it might be worth setting up DirectConnect connection (private connection from your office / on-premise setup to AWS). Then Data Transfer becomes even cheaper per Gb, however you start paying hourly rate for your DirectConnect link. Do the math to calculate what's best for you.
If you are reading data from S3 to your EC2 instance, and the S3 bucket is in the same region as your EC2 instance, then there are no data transfer costs.
Broken down:
There is no “data transfer in” costs to your EC2 instance if the data is coming from an S3 bucket in the same region: EC2 Instance Pricing – Amazon Web Services (AWS)
There is no “data transfer out” costs from your S3 bucket if the data is going to an EC2 instance in the same region: Cloud Storage Pricing – Amazon Simple Storage Service (S3) – AWS
There is no "data tansfer out" costs from EC2 to S3.
More info:
https://www.quora.com/In-AWS-EC2-what-counts-towards-data-transfer-costs

Aws pricing doubts (s3, glacier and dynamodb)

Im studing aws pricing and I have some doubts.
About Amazon S3, it says that we pay $0.03 per gb per month.
But for example If I use only 256kb of storage, 256kb = 0.000256gb, using AWS S3 calculator it says that the cost is $0.00. So for small amounts of storage is always free??
And I have my s3 bucket configured with glacier class, so when I store this 256kb of data in s3, after 1 day this data is stored in glacier. So in this case, using 256kb for a day in s3 and then store in glacier, I dont pay nothing for s3 and glacier?
And also about Amazon S3 it says that we pay for get requests and for data transfer out from Amazon S3 To internet, If I acess for example a file inside my bucket from for example this link: https://s3.amazonaws.com/uploads/uploadedfiles/test/file.txt, it is a get request or data transfer out from Amazon S3 to internet??
And just one more about dynamoDB, it says that first 25GB stored per month is free, it is always free? Or it is just free for free tier?
S3 is free for 12 months for up to 5GB per month.
DynamoDB is 25GB per month for up to 12 months on the free tier.
Glacier is not part of the free tier program.
If I access for example a file inside my bucket from for example this
link: https://s3.amazonaws.com/uploads/uploadedfiles/test/file.txt, it
is a get request or data transfer out from Amazon S3 to internet??
Blockquote
That is both a S3 GET request and a S3 data transfer out.
AWS has each item and how much the FREE tier provides broken out on this page
http://aws.amazon.com/free/faqs/
http://aws.amazon.com/free/
Using the calculator with 256kb will not give you realistic results. That's like using a mortgage calculator on a $0.01 loan.
Try using the AWS calculator http://calculator.s3.amazonaws.com/index.html with 3 GB at least. Still with the AWS free tier you can do a lot for your first year and pay zero dollars to Amazon.

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.