Are you concerned with your monthly bill going way over your AWS pricing estimate? Do you feel your cloud infrastructure costs are spiralling out of control? Here are a few common issues that can lead to an inflated bill.
With Amazon Web Services (AWS) we can now utilize applications in a manner traditional IT processes and infrastructure cannot. Cloud has enabled companies to rapidly deploy applications, at extremely low costs and with very high flexibility. This ease of access to vast infrastructure, if not appropriately used, can quickly turn from a benefit to a disadvantage, by burning a hole in your pocket with unexpected costs. The AWS pricing estimate as per the calculator may far differ from your actual monthly bill.
To avoid such a situation, you need to understand the common mistakes that are likely to occur in your AWS pricing. Relax and read on as in this article; I will discuss the significant AWS management and cost control mistakes that can strain your bank account. Most of these observations are based on mistakes we have seen happening, as we analyze usage of customers who have opted for self-management of AWS:
Using Many And Oversized Instances
You need to decide on the following about the instances you require:
- Size: Are you using old-school techniques of capacity over-allocation for future needs? Abandon that approach. Cloud is meant to be used in a scalable form
- How many? : Are you running too many instances, for test/dev environments, and leaving them running even after their intended goals are achieved?
- Scheduling: Are purpose specific instances running 24/7 even though they may have no use outside of business hours? If so, you are spending on an idle capacity for > 60% of the time.
- Keeping track: Use Cost explorer to find where your spends are. You may need to start with the billing dashboard found on your AWS account.
- What type? Instance types optimized for storage, computing or memory are expensive than the general purpose versions. Are you using the right instance type?
Instances will cost you money if:
- Not used
- Too many get used
- Oversized instances get used.
Choosing a Wrong Instance Billing Model
You can control the AWS costs by purchasing in three ways as follows:
- On-demand instances: You get to buy at a fixed price per hour with no conditions
- Reserved Instances: Commitment to long-term purchases attracts hourly discounts.
- Spot Instances: You get to bid a price for the instance model you want.
If it’s your first time, On-Demand Instances get preferred more. On the contrary, deploying them on a sustained period can result in unexpected monthly AWS costs. A reserved instance is preferable if you plan to run your site every day for the whole year as you already know the exact cost up front. If you decide to add complex infrastructure which requires Auto Scaling and Elastic Load Balancers, then you will need to combine Spot and On-Demand Instances. Spot instances can save you up to 75% over On-Demand instances if your infrastructure is architected and managed optimally.
Storing a Lot Of Snapshots
Point-in-time snapshots are taken to assist you back up volumes of data from your Amazon EBS to Amazon S3. If not saved in moderation, you get to suffer from snapshot sprawl which is very expensive. Have a retention strategy of your EBS Snapshots in place.
Unreleased Allocated Elastic IPs
Elastic IPs are limited resources. Extra charges are accrued from each extra EIP address you connect to an instance. This is normally on a per hour basis. An additional hourly charge is also billed when these IP addresses are not associated with a running instance. Simply stopping your running instance doesn’t mean that your Elastic IP will be released. You will continue to be billed for that unreleased IP address. You should always ensure that there aren’t any unused EIPs that you are being billed for.
Leakage of AWS keys
To conserve costs, one may be tempted to use public GIT repositories for source code control. Developers often expose their AWS keys by uploading code containing them. This is immediately picked up by scanners which parse through the code, looking for keys and almost instantly start deploying their AWS workloads to your account. If you are not alert, you may realize this only after a huge bill is received after the end of the month.
Use private Git accounts. Ideally, your code must not contain AWS keys. Use Roles instead, wherever possible.
Other Hidden Issues
Aside from these, there are other possibilities of excessive expenditure which are not immediately obvious. Some of the reasons could be:
- Using an incorrect class of Elastic Block Storage (EBS), which may not be suitable for your workload.
- Application architecture which may cause excessive polls on Simple Queue Service (SQS). Consider using long polling.
- Applications that generate excessive notifications using Simple Notification Service (SNS)
- Lambda functions that are inefficient, and consume more RAM or longer duration to complete
- Not using CloudFront, and thus requiring higher compute capacity for EC2 instances
- Not using ElastiCache, and thus requiring higher I/O for your RDS instances
- Inefficient use of different storage classes of S3 suited to your applications
- Failure to setup storage lifecycle policies for long-term archiving to Glacier
- Resources added and forgotten in different AWS regions may escape attention
- Inability to decipher AWS invoice, which may make analysis even more difficult
Why do such AWS pricing mismatches occur?
Above are just some of the many innovative ways of losing money on AWS cloud infrastructure. It may not be always possible for internal teams to identify these AWS pricing issues and act on them, primarily for 3 reasons:
- Difficulty for developers to keep pace with AWS platform updates, which may deprive your application of new improvements
- Internal developers and system administrators focus on fulfilling the immediate needs of their project. This keeping them away from looking at optimization
- AWS platform is currently at 90+ services. Insufficient knowledge on the depth and breadth of this may result in a less efficient manner of consumption of the services
In a nutshell, careful planning and consideration of the costs that you may incur plays a major part in ensuring that your AWS pricing stays under control, and the monthly costs down. In addition, a close monitoring and understanding of your workload characteristics are essential for cost optimization.
AWS is best managed by trained and certified experts. Outsourced experts will be able to effectively and reliably maintain your AWS, as well as ensure that the above common mistakes are avoided.
It is not unusual that the monthly cost savings itself that Managed AWS from Interpole brings in, may far outrun the cost of engagement for managing the cloud infrastructure. Thus, the other benefits which come along could potentially become a free bonus to the customer!
InterPole was established in 1996 and has been engaged in web hosting, email, and management of IT infrastructure. InterPole pioneered with Virtual Private Servers in 2004 and Cloud Hosting in 2008. Over the years, InterPole has worked with over 6200 mid-sized businesses and startups, and have assisted them in their journey towards the adoption of modern technologies through the Internet. InterPole is a Standard Consulting Partner of Amazon AWS and Microsoft Azure. With this partnership, provides Managed AWS service and maintains a team of engineers who are trained and certified for the specific cloud platforms. These benefits companies in defining their cloud strategy and making a well-planned journey, reliably and cost-effectively.