Building blocks are fantastic toys.
They’re great when used together but fully functional on their own. Used correctly, they can enable you to create a masterpiece that would otherwise be impossible.
It’s the same concept with AWS containers, only AWS container pricing is a little more difficult than simply paying for building blocks.
This post will dive into everything you need to know about the pricing points of all of the AWS services related to containers. Whether you’re utilizing them to run a single program or as a core part of your wider infrastructure, you’ll never be surprised by your monthly bill again with the tips and tricks we have right here.
We’ll be covering:
- AWS container basics
- AWS ECS vs ECR vs EKS
- AWS Container pricing
- Optimize your AWS container costs with this core trick
Let’s get started.
AWS container basics
First we need to define what a container is.
In our case, an AWS container is a way of encapsulating an application, or logical portion of one, along with an operating system in a single (often portable) space. Those spaces can be stacked together on single server instances, easily moveable to take advantage of processing resources where they exist. This lets you run the application much more freely than a traditional virtual machine. Containers are generally lightweight, portable, and standardized, which also means that they’re relatively easy to deploy in new environments.
Think of them as a core building block in your cloud computing setup. They can be used in a wide range of environments to run any number of different applications without the same pressure of a full deployment natively in that environment. It’s a block that fulfills a specific purpose and can be plugged in and out of your setups as you please - a smaller part of the whole that’s nonetheless functional on its own.
That’s the basics covered, but we also need to talk about the three main services related to creating and managing these containers before we can move on to AWS container pricing points. These services are:
- AWS ECS
- AWS ECR
- AWS EKS
AWS ECS vs ECR vs EKS
Amazon Elastic Container Service (AWS ECS) is the primary offering for AWS containers, so you’ll likely be utilizing this. AWS ECS boils down to being a fast, reliable, and highly scalable management service for containers on a cluster. Whether you’re looking to run, stop, fine-tune or even integrate your clusters with other AWS services, ECS is likely going to be your first port of call, and for good reason too.
There are two different launch types for containers within AWS ECS, but we’ll get to those when we dive into the main pricing points.
Amazon Elastic Container Registry (AWS ECR) is a fully managed container registry. Using ECR thus makes it much easier to store, track, and deploy your containers in other locations without the headache of managing them manually. You can do all of this while also not having to scale your container infrastructure too, letting you save time and money on that front.
Think of AWS ECR as the toy cupboard where you put away your building blocks (containers). They’re safely stored, easy to locate and access, and are still simple to deploy whenever you need them.
Finally, Amazon Elastic Kubernetes Service (AWS EKS) is a managed service for Kubernetes on the AWS cloud. Think of EKS as the Maserati to the ECS Toyota. The benefits of this are as you’d imagine - automatic Kubernetes application scaling, the ability to automatically push security patches to your clusters, and even spreading your infrastructure across multiple Availability Zones to eliminate single points of failure.
Basically, if you’re running any kind of Kubernetes environment and need it to interact with an AWS service (or just want to have all of your containers managed through the same company), AWS EKS is a great choice to make.
AWS Container pricing
Now we get into the details of this article; the AWS container pricing points. For this it makes sense to split up into three categories, one for each AWS container-related service. Thus we will go through pricing for the following services in order:
- AWS ECS
- AWS ECR
- AWS EKS
AWS Container pricing: ECS
The AWS Container pricing model for ECS depends on the launch type you utilize. In other words, which compute system will your containers operate on?
The standard type is known as (surprise, surprise) the AWS EC2 launch type, and this is also the cheapest option available. With this method you don’t have to pay anything extra for AWS ECS services. Instead, you just pay for the EC2 resources (typically EC2 instances or EBS volumes) that are used in conjunction with your containers.
It’s simple, easy to manage, lets you freely control and customize the instances selected and, especially if you introduce spot instances to the mix, very cheap to boot.
The other option is the AWS Fargate launch type, which does incur some extra costs. With Fargate offering a serverless, pay-as-you-go compute engine for your containers you’re going to be charged based on the resources that you use. This pretty much means the amount of vCPU, memory, and storage resources being utilized.
The standard charges for AWS Fargate are as follows, with all prices being based on the US East (Ohio) region.
AWS Fargate, Linux on X86 architecture:
- $0.04048 per vCPU hour
- $0.004445 per GB hour
AWS Fargate, Linux on ARM architecture:
- $0.03238 per vCPU hour
- $0.00356 per GB hour
AWS Fargate, Windows on X86 architecture:
- $0.09148 per vCPU hour
- $0.01005 per GB hour
- $0.046 OS license fee (per vCPU per hour)
Much like EC2 Spot Instances, there is also an option to purchase AWS Fargate Spot instead at a heavily discounted price versus standard. The downside is that the availability of these is subject to supply and demand, as are the prices. If AWS Fargate is put under a heavy load, you may find Fargate Spot tasks being interrupted as the capacity is taken away.
AWS Fargate Spot, Linux on X86 architecture:
- $0.01223864 per vCPU hour
- $0.00134389 per GB hour
The final AWS Container pricing element to AWS Fargate is for Fargate Ephemeral Storage. 20GB of storage is available by default for free, but charges will be incurred should you go beyond that limit.
AWS Fargate Ephemeral Storage for Amazon ECS:
- $0.000111 per storage GB hour
Pricing on Linux is calculated per second with a 1-minute minimum, whereas Windows has a 15-minute minimum. Time begins when you start to download your container image to when the task terminates, rounded up to the nearest second.
Note that AWS Fargate won’t bypass any data transfer charges involved in your operations from, say, AWS CloudFront. Those will be added to your bill as they would with most other AWS services.
All this being said, if rapid scale-up and scale-down of container resources is what you’re looking for, the high price of AWS Fargate might not be ideal. Consider using Application Auto Scaling for ECS on EC2 instead.
AWS Container pricing: ECR
AWS ECR follows the trend of not having any inherent cost tied to the service - all charges are based on your usage. That is, you only pay for what you store with the service and for data transferred out to the internet rather than any kind of flat monthly fee.
Just remember that, while this service saves you some of the cost of scaling and operating your container registry’s infrastructure, the storage fees can quickly rack up. As with AWS ECS, all prices below are based on the US East (Ohio) region.
AWS ECR free tier:
- 500 MB storage for private repositories per month
- 50 GB storage for public repositories per month
- 500 GB data transfer to the internet from public repositories per month (anonymous)
- 5 TB data transfer to the internet from public repositories per month (with an AWS account)
Once you’ve exhausted the free tier limits, the following charges apply.
AWS ECR storage costs:
- $0.10 per GB per month for all repositories
AWS ECR data transfer out from private repositories costs:
- Up to 9.999 TB per month beyond the free tier = $0.09 per GB
- Next 40 TB per month = $0.085 per GB
- Next 100 TB per month = $0.07 per GB
- Over 150 TB beyond the free tier per month = $0.05 per GB
AWS ECR data transfer out from public repositories costs (when using an AWS account):
- More than 5 TB per month to non-AWS Regions = $0.09 per GB
- Any amount to any AWS Region = free
It’s important to note that you might be incurring AWS ECR charges without using either ECS or EKS. Many other serverless products offered by AWS can run containerized workflows, and all of them need a storage repository.
AWS Container pricing: EKS
The pricing for AWS EKS is blessedly simple compared to many other AWS services in that there is only one price point to remember. It doesn’t matter what kind of operation you’re running or whether you’re running it via AWS EC2 or EBS volumes, because everything is boiled down to the following:
- $0.10 per hour for each AWS EKS cluster you create
That really is it - there are no hidden tricks to look out for. You pay for what you use at the same rate as everyone else, and the only other costs incurred are those created by using other services in the process. For example, if you were to use AWS EBS in conjunction with AWS EKS, you would still have to pay the appropriate amount for the EBS service you’re using.
Optimize your AWS container costs with this core trick
Managing AWS container pricing against what you need from the services is and always will be an ongoing struggle. You need to make the most of what’s available without falling prey to nasty surprise bills, such as if you accidentally leave an AWS EKS cluster running for longer than intended or accidentally leaving too much resource space free on each running instance.
Not only that, but it’s also vital that you know other relevant AWS products and their pricing points inside and out if you intend to use them with your containers. Which EC2 instances will you use in conjunction with ECS? Will those specs be suitable? Do you know how much those instances will cost? Is there a way to reduce your bill? Are you aware of potentially useful savings plans or even Spot Instances which could cut costs?
It’s a nightmare. However, it doesn’t have to be. All you need to do is this:
Don’t try to manage it alone.
The worst thing you can do with any and every AWS product and service is to attempt to get the most out of it without consulting expert advice. It’s not a failing on your part, there is simply too much information that’s being constantly tweaked and added to with new releases that it’s impossible to keep track of unless it’s your full-time job.
That’s why we’re here.
Here at Aimably we handle the AWS headaches so that you don’t have to. Our years of experience with every last aspect of AWS mean that we can review your accounts and give tailored advice that you can instantly act on to reduce your bills.
If that sounds good (and it should) then you need our AWS Cost Reduction Assessment. We’ll scour your Cost and Usage Reports (CURs) to get the full picture of what your AWS accounts look like, where you could be saving money, where you’re getting the most value, and so on, and then provide you with an actionable, prioritized todo list. Each action that we recommend will come with a projected risk rating for your operations so that you can judge whether or not the functions impacted by making the change would be worth the money saved or not.
In other words, we provide the expert knowledge that lets you maximize the value you get from AWS (containers and otherwise). We’ll keep you informed of exactly what’s happening, what is projected to happen, and the effect certain actions will take every step of the way.
Don’t take our word for it, click here to find out how much you could save by using Aimably today!