It’s a known fact that moving to Amazon Web Services (AWS) can provide huge benefits in terms of agility, responsiveness, simplified operations, and improved innovation. However, many pre-assume that migrating to the public cloud will lead to cost savings. In reality, AWS cost optimization is harder than you think, as organizations need to implement management, governance, and automation. Otherwise, you won’t even have the slightest idea until the bill actually hits you.
Here are some commonly practiced strategies that can help you combat your ever-increasing cloud costs and achieve AWS Cost Optimization:
1. Keep track of reserved capacity usage
If you’re not keeping track of your usage and are not entirely aware of the capacity in use, then you’re asking for big trouble. In-depth research implies that people are not really aware of the proper benefits of RI utilization. RIs offer great deals & discounts, reducing costs by 30-60% and sometimes up to 75% in some cases. You have to know about the details of your usage so that you can take the full benefit of RI.
One common misconception is that RIs are only for 24×7 workloads. However, in numerous cases, RIs tend to be cheaper even if the instance is running for just 75% of the time. This gives you the ability to use the remaining 25% for development and testing without having to pay on-demand pricing for the same.
2. Underutilized RIs – Use them or sell them
Since Reserved Instances are all about estimation & planning to make your investment worthwhile, despite their sufficient utilization, your organization may still end up with some idle reservations. You can repurpose them and put to good use elsewhere.
You can reallocate them to totally new projects and applications where they fit in. Else, you could repurpose them to deal with existing workloads that are using expensive on-demand instances in your cloud. Or, if repurposing doesn’t work out for you, unused or underutilized RIs can be sold on AWS Marketplace.
A quick tip for aged, unpopular instance types though; they might be hard to sell as the volume on this market varies.
3. Identify and delete orphaned snapshots
When we terminate an EC2 instance, by default, all attached EBS volumes are deleted as well. But it’s very easy to forget that your snapshots still remain on S3 and continue racking up monthly charges.
Those charges may also be more than you imagine. Although backups are mostly incremental, the initial snapshot is of the entire volume. Moreover, regular subsequent snapshots over a longer retention period may require as much capacity as the initial snapshot taken.
So, even though S3 is cheaper than general-purpose SSD, you should consider deleting the original EBS volume snapshot that was associated with the volume. This way, the monthly savings can be as much as those made by deleting all the orphan snapshots.
In other words, unless you are actually thinking of using orphaned snapshots for creating future EBS volumes, you should delete them as part of your cloud housekeeping. This process is far easier and helps in reducing your AWS cloud cost.
4. Try different payment methods for RIs
AWS basically gives you three different methods for pricing:
- All Upfront
- No Upfront which is basically giving a fixed amount of money monthly for RIs, or
- Partial Upfront which is giving some money upfront while you can pay the rest in monthly installments
It also allows you to reserve resources so that you can start them whenever required. But, if a reserved resource isn’t in use for a while or it’s not created, then you are wasting a significant amount of money. This is because AWS will still charge you for the reserved capacity. Moreover, if you have no cash flow constraints, you should use the All Upfront option for your purchases to get compound discounts.
However, if we calculate the discounted rates between the All Upfront and Partial Upfront payment options, it comes out to be very small. Depending on your financial state, you can switch between All Upfront and Partial Upfront payments without letting it affect the discounted rate too much. On the other hand, the discounted rate is very low in the case of no upfront option.
5. Practice instance right-sizing
Amazon Elastic Compute Cloud (Amazon EC2) provides a wide selection of instance types and sizes. It gives customers the flexibility to right-size compute resources and meet their needs at the lowest possible cost. Amazon EC2 also creates detailed usage data to help determine how to right-size instances more effectively. This, in turn, helps to meet the suitable technical requirements of a given workload.
AWS cost optimization is also possible through CloudWatch. One can analyze the CPU and memory utilization on running instances and downgrade or upgrade the system specifications as per the needs.
6. Select the right cloud storage option
AWS offers 5 tiers of Amazon S3 object storage available, and it is important to understand why and when to use each class to optimize your costs. The cost for each tier is split into the actual storage amount, the number of HTTP PUT requests, the number of the HTTP GET requests, and the volume of data transferred.
Amazon S3 Standard is commonly used for frequently accessed data. As a part of AWS free usage, users receive 5 GB of Amazon S3 storage, 20,000 GET requests, 2,000 PUT requests, and 15 GB of data transfer each month.
Amazon S3 Standard-Infrequent Access (IA) – As the name suggests, you can use this storage option for data that is accessed infrequently. It requires the same resilience as the standard storage class, but it allows you to retrieve data rapidly when needed. However, S3-IA pricing is lower in comparison to the standard S3 tier; it charges you a retrieval fee of $0.01per GB.
Amazon S3 One Zone-Infrequent Access is very similar to S3-IA, but it is less expensive as the data is only stored in a single availability zone with less resiliency. As a result, One-Zone IA is a good option for storing the secondary backup.
Amazon Glacier stores data for more than 90 days, such as backups or cold data. It is durable just as Standard S3, but it took 3-5 hours for the standard retrievals to restore data. AWS recently introduced two new options for the retrieval of data from Glacier including:
- slower and cheaper bulk retrievals (5-12 hours) or
- faster and more expansive retrievals (1-5 minutes)
To optimize the cloud cost bills, you need to store your data over the cloud as per its usage. This reduces the cost of usage and makes your cloud easier to manage.
7. Shutdown the unused AWS Instances
For the optimization of cloud cost, it is important to shut down unused instances, especially in the development environment. Services like AWS OpWorks and Elastic Beanstalk enable developers to quickly deploy and re-deploy applications with consistency. Also, you don’t have to worry about the configuration of the underlying infrastructure.
You can also use AWS CloudFormation to define your infrastructure as code, and this makes it easier for your developers to create a resource template of your AWS resources to quickly build or rebuild your environment. This approach makes it possible to shut down and delete unused AWS resources without concern.
For Azure: 6 Best Practices for Azure Cost Management