Optimizing cost in AWS
Life is not about silver bullets but rather about constant and consistent small step improvements. For most companies, cloud is better than having server rooms and on premises hardware. And in most cases it is more cost efficient to use big cloud vendors than other alternatives.
To create cost savings you must:
Understand your business drivers and requirements thoroughly
Define and implement a suitable cloud architecture
Have a process to measure and get better every day
Business understanding
There are multiple ways to do things inside AWS. The right choices depend on the actual requirements which are driven by real business needs. It is a common mishap to build the perfect solution for everything with no regard to actual feature and performance prioritization.
Being able to instantly move to a backup infrastructure in an emergency situation requires effort and incurs costs in various ways. It would be nice to always have that capability but in reality there are only so many services that truly a) require and b) create the amount of value to justify the cost. Gathering all the data is nice but requires storage. Enabling real time data analytic is nice but requires supporting architecture. Trade-offs are real and the better you understand their business impact the easier it is to optimize for cost.
You can achieve the biggest savings by understanding what are the exact requirements for your application and infrastructure so that things are not over designed “just-in-case”.
Architecture
When designing a service architecture it is also important to understand the actual business requirements which will drive the design decisions. AWS offers tools and advice for making the optimal decisions regarding e.g. storage, load balancing and computing.
Some of the tools and resources you can use are:
Well Architected Framework - The Cost Optimization pilar
Process
We have seen that entropy will take over any system over time if necessary effort is not spent to monitor and improve the situation. Technologies decay and get replaced by new ones. Lower cost alternatives appear. Old services are shut down.
In practice there are almost always old things running that should not be running and decisions that can be made to improve the situation. Having practices like resource tagging is not magic, but very relevant for everyday cost management. You should strive to identify and implement the simplest approaches that work for your environment and put the necessary effort into sticking with them over time.