AWS Deep Learning AMI volume size exceeds free usage tier - amazon-web-services

I was creating a Deep Learning AMI Amazon EC2 instance.
I have a free tier account. Under this I am eligible up to 30 GiB space. However, the new Deep Learning ubuntu AMI launched by Amazon has snapshot size of 50 GiB.
So, if I select this AMI, I will be charged. Is there any way or I have to choose Ubuntu Linux instance and manually install Libraries such as keras,tensorflow etc?

Yes, that disk volume requires 50 GB of storage. In US regions, storage is 10c/GB/month so it would cost $5/month. You can reduce costs by deleting the EC2 instance (and the EBS volume) when it is not required (but you will lose any information you saved on it).
Actually, the free tier would cover the first 30GB, so you'd probably pay only $2/month for the excess.
Also, please note that you do not have a "free tier account". The account is a normal AWS account. However, new AWS accounts qualify for free tiers of usage within their first 12 months. If you exceed the free amounts, then you will be charged normal prices for the extra services consumed.

Related

Amazon Web services: Why my used elastic compute cloud storage is at 8.35 GB out of 30 GB?

So I am running a nodejs discord bot on AWS EC2 (free tier). I would want to stay in free range as much as possible. In the billing section I came across my usage and found that I am using 8.35 gb.
There are 2 instances linked to my account out of which only 1 is running (I used other one to host an AI app which is in stop state). Both instances are allocated 30 gb separately. I ran df -h in both instances, one reported 2.8 gb occupied and other reported 2gb occupied. So the quick question is why is it 8.35 gb when it should be around 5gb?
Attached a screenshot of bills section.
Please help. What is it that I am missing?
I assume you are referring to Amazon EBS Volumes, for which the AWS Free Tier provides 30GB per month for the first 12 months of your account.
This can be one 30GB volume for an entire month, or 2x15GB volumes for one month, or 1x900GB volume for one day (900* 1/30 = 30). Hence the term "GB-month", which means "Gigbytes for a month".
The fact that you are 8/30 for the allocation means that your account has consumed 8GB-month our of the free 30GB-month.
Don't panic too much -- the cost is only 10c/GB-month, so a 30GB volume for an entire month would cost $3.
Please note that Amazon EBS Volumes are charged based on provisioned storage. So, as soon as you create the volume, the space has been allocated and your account will be charged for it, even if nothing has yet been stored in the volume.
If you wish to minimise costs, then minimise the size of each volume and minimise the number of volumes. The purpose of the Free Tier is to provide a trial of AWS services -- it is not intended to be enough to run your on-going applications.
You are probably looking in the wrong place. When you say "I am using 8.35 gb" I assume you are talking about EBS storage, right? What you see in AWS billing, it is provisioned storage (that is, what you allocated when you launched the instance). It doesn't matter how much you are using - that's what df -h shows you inside the box. Also, it doesn't matter whether the instance is running or stopped - you are still incurring charges for EBS (if it is beyond free tier).
By the way, 8.3GB is what is usually allocated for each Linux instance; so having 8.3GB for two looks suspiciously small
UPDATE: It's not 8 GB that you see - it is 8GB-Mo. So, if you provisioned 30GB, then on the 8th of the month you will see 8GB-Mo (I think AWS updates every 4 hours). Therefore, by the end of the month you will have approximately 30GB-Mo, which is the limit for free tier.

Can I shift an existing EC2 instance to free-tier?

I made a free tier server on my account and configured it there. Then I had to shift the server to my client's account I made an image of that server and copied it to my client's account so that I wouldn't have to configure all of it again. Turns out it kept all the configurations EXCEPT the free-tier one.
So is there a way for me to make this ec2 instance free tier? Or do I have to build a free tier ec2 from scratch again?
Launch the instance in free tier using AMI(Image of the) as you already have the AMI with you.
And there is no way to move existing instance to free tier,just terminate it after launching the new one in free tier.
The AWS Free Tier is a billing discount.
For Amazon EC2, it provides:
750 hours per month of Linux, RHEL, or SLES t2.micro or t3.micro instance dependent on region
750 hours per month of Windows t2.micro or t3.micro instance dependent on region
So, each month, any usage that matches the above is not charged (up to the appropriate number of hours). This means you could run one Linux instance for an entire month, or two instances for half a month, or even 30 instances for 1 day.
You cannot nominate specific resources to be included in the Free Tier. It is calculated based upon total usage, so might cover multiple EC2 resources.

Charges for "traffic" in EC2 instance?

Is there any changes for "traffic" when using basic version of EC2 instance, by basic I mean:
750 hours per month of Linux, RHEL, or SLES t2.micro instance usage
Traffic: If we setup a server and there are some hits on my server then is there any charge for this setup. I am not using ELB, just EC2 instance with a server on it.
The full pricing for On-Demand Amazon EC2 instances can be found at: https://aws.amazon.com/ec2/pricing/on-demand/
The AWS Free Usage Tier gives 750 hours per month of a t2.micro instance. This means you could run one instance for a full month, or two instances for half a month. Simply stop the instance(s) to stop the charges.
You can have this free usage tier for a Linux AND a Windows instance.
However, please note that there are additional charges that also apply:
Data Transfer: This is charged for data leaving the AWS Region going to the Internet. The free usage tier includes "15 GB of bandwidth out aggregated across all AWS services" in the first 12 months. The EC2 pricing page also says that the first 1 GB/month is free, but I'm not sure if they overlap.
EBS Volume storage: Elastic Block Store (EBS) runs the disks attached to your instance. The free usage tier includes "30 GB of Amazon Elastic Block Storage in any combination of General Purpose (SSD) or Magnetic, plus 2 million I/Os (with EBS Magnetic) and 1 GB of snapshot storage", so you will be charged if your disk storage exceeds this (which is likely if you run both a Windows and a Linux instance). This storage charge continues to apply when an instance is Stopped, but not when an instance is Terminated.
Bottom line: Stop or turn off things when you don't need them. You can also activate a billing alert to warn you when you have been charged some actual money.
Yes, there are varying charges for traffic into and out of your EC2 instance.
in very rough numbers, if you budgeted $0.01 per GB of traffic, you would come in under that, but the complete breakdown is here:
https://aws.amazon.com/ec2/pricing/on-demand/

Amazon RDS database free tier storage limit

I wanted to use the free tier of RDS, but when I create instance, I was able to create one with 2000 GB (minimum 5GB, maximum 3072GB). But shouldn't the free RDS be only 20GB allowed? I've successfully created it and I'm very worried if I'll be charged for it.
Here's the screenshot:
The free tier works as a billing discount on certain services. You will be billed for any services used beyond the free tier discounts.

Cost of storing AMI

I understand Amazon will charge per GB provisioned EBS storage. If I create AMI of my instance, does this mean my EBS volume will be duplicated, and hence incur additional cost?
Is there other cost charge in creating and storing an AMI (Amazon Machine Image)?
You are only charged for the storage of the bits that make up your AMI, there are no charges for creating an AMI.
EBS-backed AMIs are made up of snapshots of the EBS volumes that form the AMI. You will pay storage fees for those snapshots according to the rates listed here. Your EBS volumes are not "duplicated" until the instance is launched, at which point a volume is created from the stored snapshots and you'll pay regular EBS volume fees and EBS snapshot billing.
S3-backed AMIs have their information stored in S3 and you will pay storage fees for the data being stored in S3 according to the S3 pricing, whether the instance is running or not.
In this case, you will pay for the size of the storage used, instead of the storage provisioned. Snapshots will not store any empty blocks.
In short, yes, you will incur additional charges, but at a less rate, namely, EBS snapshot storage rate. Provisioned EBS is the 'live' HD that will be charged at $0.10 per GB per month if using standard SSD (gp2, USA east pricing for 2022 used throughout). And if you provisioned 50 GB, you will be fully charged for that 50 GB, even if you are only using 5% of it. The charges will incur even if you forget to attach to an EC2 instance. $5 per month in this case.
When you create an AMI, AWS will create a snapshot in the background. This snapshot is viewable under EBS Snapshots and will not be deletable as long as that AMI is in existence. You will get an error if you try to delete this snapshot. Snapshots cost less than 'provisioned' EBS at $0.05 per GB per month, and since snapshots ignore empty blocks, it will be shrunk to used size, so if you are only using 5% of 50GB, the snapshot should only be around 2.5 GB. $0.13 per month in this case. No other charges.
If you are creating a lot of these, it can get expensive very quickly, so some people save these AMIs into S3, which is cheaper than EBS snapshots. This is somewhat advanced and as far as I know, it can only be done via AWS CLI, and not in the console. You use a command called aws ec2 create-store-image-task and you have to specify the destination bucket name, and make sure permissions for S3, EBS and EC2 will all allow it. More detail at the official AWS documentation. This would reduce the cost to about $0.023 per GB per month. There are other changes relating to this method, i.e. EBS Direct API, but it is not much and you can look it up in the documentations.
Recently in November 2021, AWS released archived function for EBS snapshots, which allows you to archive your snapshots for a minimum of 90 days for $0.0125. You do have to pay $0.03 per GB for restoring the data. However, this is designed for EBS backups (e.g. daily backups using snapshots) and you cannot archive an EBS snapshot that is associated with an AMI. You will get an error: Failed to archive snapshot... snap-xyz is in use by ami-123.
Below is an excerpt of an actual AWS bill that will explain it in a visual sense.