Picking the right pricing plan for AWS storage and compute resources
Amazon Web Services (AWS) can be a great solution for businesses that want to host their data and applications in a flexible, on-demand environment.
However, realizing these savings requires you to do a little homework. AWS offers a variety of pricing plans for storage and compute services, ranging from pure pay-as-you go to “savings plans” with built-in discounts in exchange for guaranteed minimum resource use.
In this post, I’ll look at the considerations for selecting the right AWS plans for your storage and compute needs. In future posts, I’ll look at management tactics that can further optimize your costs in an AWS on-demand environment.
Cost optimization doesn’t mean being cheap
Just to be clear – cost optimization is the discipline of understanding and identifying things you can do to be more efficient and use your resources smartly. It doesn’t mean cutting costs to the extent that you run undue risk of downtime on critical resources. For example, having two instances occasionally running at 50 percent is typically better than having one instance running at 90 percent.
The first job is to meet the needs of the project – once that’s secured, you can focus on saving money.
Now, on to picking AWS plans and pricing models.
AWS S3 storage
The AWS S3 cloud storage platform offers several plans that support all data functions, from daily operations to archival backup. Prices vary based on storage, PUT numbers, GET requests, and data volume.
- AWS S3 Standard is for general use and data transfer. It is part of the AWS Free Tier and the starting option for S3 services. It’s usually the right choice when using S3 buckets for the first time. Price is based only on data and traffic used, with a tiered structure starting at about $0.023 per GB for the first 50 TB a month. (These rates change periodically, so always check with AWS for exact pricing.)
- AWS S3 Standard - Infrequent Access (IA) is recommended when you don’t access data very often. The speed for the available data is the same as S3 Standard. It is cheaper than S3 Standard data usage, but there is a fee of $0.0125 per GB to get the data, plus the regular charge regarding traffic.
- AWS S3 One Zone IA is even cheaper than S3 Standard IA, the difference being that the files are stored in just a single zone. It is a good option for backups.
- Amazon Glacier focuses on long-term data, such as backups and cold data. Be aware, though, that data becomes available up to five hours after your request. The base rate here is $0.00099 per GB. If you want to have the data earlier, you can do so with a not-so-cheap bucket and get the data in up to 5 minutes.
To fully cost optimize your S3 services, you should consider implementing data lifecycle management, which moves files between storage types based on rules. For example, you can set rules to move data that has not been accessed in X weeks from S3 Standard to S3 Glacier. If all your storage is handled under a single account, you can move data around without paying transfer fees, given that intra-instance data traffic is free to AWS customers.
AWS EC2 Reserved Instances
You can elect to pay for AWS’s EC2 compute power resources in a few ways, including Reserved Instances (RIs), by which you agree to pay for “reserved” resources for at least one year. Amazon claims that RIs can save more than 70 percent when compared to its pure usage model, if you plan your RIs effectively. But this requires a significant amount of homework.
It’s important to note that there are a limited number of RIs available from Amazon, so they may not be readily available on short notice. You can also buy or sell unused RIs in a marketplace.
Here are some options that you need to consider before committing to Reserved Instances.
- Are you 100 percent sure about the type of instance you need? You have to credibly predict if the website will demand more resources under the terms of your reservation, say within six months.
- How long will those instances be used? Make sure that the instances will have the same type/family through time.
- Do you want to or can you pay upfront? The more you pay upfront, the less you’ll pay for the resource. Also, there is a considerable drop in price if you decide to take the three-year term.
Choosing a scope for your EC2 reservation
Picking the scope of your reservation is about choosing between saving a bit of money versus access priority.
- Availability Zone: This option will give you reserved capacity, meaning that you get priority over other customers in case of any hardware shortage.
- Region: You get discounts on any instance in any zone. However, you don't get reserved capacity.
Example: Let’s say you bought a c3.xlarge reservation with the Availability Zone scope in ca-east-1a. You won't be able to get the discount to any other type of instance, only the instance with the same type you bought, c3.xlarge. However, you'll always be able to run your c3.xlarge instance if that zone is undergoing low compute capacity because you get priority over other users.
Choosing the class
- Standard: You can change the size of your instance, but not the family. Example: you change from c2.large to c2.xlarge, but not to c3.xlarge. The flexibility is applied only to Linux instances on regional reservations.
- Convertible: More flexible than Standard, in that you can change the family but, of course, it’s also a bit more expensive.
Downsides of Reserved Instances
As with any commitment to a service, things can go wrong if you don’t plan effectively.
- Inaccurate projection: Do not buy a Reserved Instance before you completely understand the specs of your project. Be sure you need the resources you buy because you have to keep them for at least a year.
- New instances are usually (historically, always) cheaper: Here’s a real-world example: The c5.large instance is about 15 percent cheaper than the same type on the previous generation c4.large.
AWS Saving Plans
As you can see, one of the biggest issues with EC2 Reserved Instances is the capacity limitation. Once you decide on the resource you’ll use, it cannot be changed, making it difficult for you to explore other services.
Let’s say we have one strong machine running to host the website, fetching information from a local database. After a few months, traffic to the site doubles and we have to change our approach. The IT team decides to use AWS's Relational Database Service (RDS) and two smaller EC2 instances.
In our example, the Reserved Instance we purchased initially to save money is insufficient, but we are stuck with our commitment. From here we have to decide between continuing to pay for an unused machine or postpone changing our approach. Both options are problematic.
With AWS Savings Plans, you agree to spend a minimum amount over a fixed period of time and, in return, you get a very good discount against on-demand rates for compute power. (Savings Plans are available for machine learning services as well, but I’ll focus just on compute services here.) If you use more resources than you previously committed to use, you'll pay the regular on-demand rates only for those additional resources.
AWS Compute Savings Plans come in two varieties:
- Compute Savings Plans automatically apply to EC2 instance usage regardless of instance family, size, AZ, region, OS, or tenancy, and also apply to Fargate or Lambda usage.
- EC2 Instance Savings Plans cost less than Compute Savings Plans, but you must agree to use individual instance families in a region. You can move from c5.xlarge running Windows to c5.2xlarge running Linux.
As always, picking between these two plans requires you to fully understand your project requirements. If you have instances going up and down all the time in different zones and different instance types and families, a Compute Saving Plan is your best choice. If you have your instances in a known region and the family/type don’t vary, then an EC2 Instance Saving Plan can be better.
Savings Plans or Reserved Instances: Which Is Best?
Below is a comparison of what you need to configure for Savings Plans vs. EC2 Reserved Instances.
|Saving plan||Reserved Instance|
|Type of the saving plan between EC2 Instance or Compute||Standard or Convertible Reserved Instance|
|Option for upfront payment for discount||Option for upfront payment for discount|
|The duration, between one or three years||The duration, between one or three years|
|If you choose EC2 Instance, you have to choose the region||The region|
|If you choose EC2 Instance, you have to choose the Instance family||Instance family|
Here’s a quick look at the pros and cons of each pricing model for AWS compute resources. Again, the right answer for you depends on both the current and future requirements of your project.
|Advantages of AWS Savings Plans||Advantages of AWS Reserved Instances|
|You are not locked into just the same instance.||If you are looking for some sort of instance for staging servers, you can get shorter term RIs on the marketplace.|
|When AWS releases a new Instance type, prices usually go down, and you'll start to pay the new price.||Reserved Instances are also available for RDS. AWS Saving Plans are available only for EC2 instances and the Fargate serverless compute service.|
|Eliminate the complexity of managing Reserved Instances.||The discount can be slightly better than using AWS Saving Plans.|
|Easier to plan because there is no need to be locked into the same resource for a long time; you are simply committed to using a certain total price per month.||You can resell your unused instances and get back some of the money.|
|You can use capacity reservation, getting more priority for your Reserved Instance.|
Despite their limitations, Reserved Instances can represent the most cost-effective solution in some scenarios.
Being cost-efficient means that you have control over all your resources, and that you need all the resources that you have. This results in true cost-efficiency. The cloud puts unlimited resources at your disposal. You just have to know how to manage the price to use them.