Essential Amazon EC2 Cost Savings Tips
What are AWS EC2 Instances?
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change.
As appealing as it may sound to provision a server within a few clicks of a button it is a double-edged sword because $0.0116 per hour does not sound like much right? But in reality, all the overprovisioning and underutilization adds up and gives rise to a huge bill at the end of the month.
Idle EC2 Instances
Idle EC2 instances are instances that are never really used and are made to run away. You can get to know if an instance is idle by looking at the AWS Cloudwatch metrics for the instance. Apart from being idle, instances can also be underutilized, or can have low network activity, in either of the cases it’s always good to access and ask yourself if you really that instance running.
What can you do about it?
You can either choose to stop the instance or terminate it. If you stop the instance you will not be changed for the instance but you will be charged for the volumes associated with the instance, and depending on the size of the volumes and the type that can also come with a hefty price.
Rightsize your instances
Most often than not people overestimate their usage patterns and choose the wrong instance size for their use. Instead, what one should do is observe the actual usage over a period of a month or so and figure out a suitable instance size. By looking at the CloudWatch data for vCPU utilization, memory utilization, network utilization you will get a fair idea of whether you actually need an instance of this particular type or if it can be downgraded or in some other cases upgraded.
Choosing the right instance family
EC2 instances have instance families which are targeted for a specific use case. It is essential to use the correct family that is required by your business.
The instance families fall into the following categories :
a. General purpose
b. Compute optimized
c. Memory optimized
e. GPU optimized
Schedule your instances
Do your instances really need to be up all the time? Apart from production servers, most instances that are used for development purposes can be stopped and started when required. Even if the instances are spot instances that can only be terminated, they can always be terminated and brought back up when required. You can figure out when instances are actually being used and when they are not and then schedule them accordingly. Scheduling your instances is one of the biggest methods to cut costs significantly.
Know which Pricing model to use
AWS has three pricing models: On Demand, Reserved, Spot.
👉On Demand is the most expensive of the three but also the most used by people. You are charged on an hourly basis and do not have to worry about termination or any commitments. This is most suitable for unpredictable workloads.
👉Reserved Instances is a reservation of resources and capacity, for either one or three years, for a particular Availability Zone or a Region. Reserved Instances provide a significant discount of upto 75% compared to On-Demand pricing. Hence, if you are sure about your workload reserved instances can be used to save costs significantly. But if you overestimate and buy RIs they can end up being a huge sunk cost.
👉Spot instances are the cheapest out of the three models, you can get it at a discount of 90% of the on-demand price. But this comes with a caveat that AWS has the right to terminate the instance at any given time with only a two minute notification window.
You bid for instance price and as the bidding price keeps varying your instance can be terminated at any given time. AWS does provide you with the spot instance advisor which tells you which instance type has a higher frequency of termination and which do not.
If you are still anxious to try out spot instances because of potential downtime do not fret, we at Insisiv take care of exactly that. Our data driven algorithm helps you with a guaranteed uptime of your application by leveraging spot instances strategically.
Using Cost Allocation Tags
A tag is a key-value pair that can be added to your AWS resources. Once you have added your tags to instances you can activate the tags in the Billing and Cost Management console, AWS generates a cost allocation report with your usage and costs grouped by your active tags. This will give you insight into which instances are playing significant roles in your monthly bills. Depending on this, you can choose to either rightsize the instance or choose a more appropriate pricing model for the instance whichever is more suitable and reduce your costs for the same.
As nice as all the above tips sound, it’s hard to implement all of them to your AWS ecosystem.So let us at Insisiv take care of it. We report Idle resources, schedule and rightsize your EC2 and RDS instances, and leverage on spot instances to give your application zero downtime.