So you have just migrated an entire data center to the cloud and received your first bill, but wait.
What!!! The bill is three times your cost of running the data center?
But, wasn’t cloud supposed to be the cheaper option.
What is there to know about the cloud spends?
Well, sorry to break it to you; while cloud is certainly a cheaper option than running full-scale data center, just lifting and shifting doesn’t do the trick. More often than not you will end up burning more than actually reducing cost.
So what do we do now??? Is there a way to bring down the cost from X to X-Delta???
Move all your production instances to Reserved Instances, that will ensure your ‘overall’ spend reduces; hang on, it will ensure a reduction in the overall spend no doubt but no doubt in that but not without asking for an initial commitment.
Being new to cloud the organization is not comfortable in making an upfront commitment of that sort. Moreover, you still don’t know if you are rightly sized to move everything to Reserved Instances. So what are our other options?
What are your cost-saving options on this cloud journey?
Well, to be honest, there are many; it’s just the roads less taken. Now I am no expert in it, just someone qualified enough to discuss these things.
Below are some of the ways of optimizing the spend on the cloud, things that I have done in the past and things that have worked. Please remember this is not the one-stop bible for cost optimization in the cloud and there could a million ways that I haven’t tried yet; all I intend is to share my experience.
Before moving to the cloud
1. Understand your options – Most cloud providers offer multiple operating models ranging from Pay-as-You-Go to agreement based usage. It is worthwhile to spend time understanding all the operating models provided by your target cloud provider and then choose the one that offers you both flexibility and cost optimization eventually ending up with a good return on investment.
2. Know your license landscape – Most public cloud providers have licensing agreements with OEMs that allow you to bring your existing licenses to the cloud (BYOL) and thus save a good amount of cost in licensing.
3. Perform a TCO analysis – Before you zero in on a particular provider, ask your service providers to offer a complete TCO. Compare the options provided by various cloud providers and then choose wisely.
4. Perform a complete workload assessment – Spend a good amount of time on assessing your current workloads, how many are coming to end of life, how many licenses can be moved to the cloud, what resources are underused and hence can be down-sized, is you sizing right, are you using the best possible instance for a particular requirement. A strong assessment forms the basis of good cloud migration and adaptation strategy.
5. Plan your architecture – Devil lies in the details and it is true for your landscape on the cloud. Ensure that you have a well-planned architecture, all dependent resources are put in the same region to avoided cross-region data transfer charges, GRS is only enabled for drives and storage accounts with mission-critical data, V-net peering is needed only, MPLS bandwidths are accounted for, Underused resources are downsized in the bill of materials for the cloud, Tagging structure, and tag tree is defined. I can’t stress more on this ‘devil lies in the details’.
After moving to the cloud
6. Enable auto-shutdown for dev/test environment – The beauty of the cloud is that it allows you to pay only for what you use. So ensure that all your dev/test environments and in some cases even some production applications are available only during the time when someone is actually using it. Shut down anything and everything that is not being used.
For example, if you are a bank that operates only from 9-5, instances hosting your
attendance management system need not run after 5 PM.
7. Delete all unused resources – Typically a lot of test resources will be created during the initial days of migration. Once you reach a steady-state, ensure you spend a good amount of time analyzing what you really need. Unallocated disks, unused VMs, Snapshots of VMs taken from on-premise as a part of the migration activity all of these resources should be deleted.
8. Think Refactoring and Re-platforming – In the modern era, not everything is infrastructure intensive. Start looking at what can you move to PaaS or SaaS, can your application use an RDS or Cosmos DB instead of having a database on a box. Can you replace your middleware machines with API gateways, where you pay for the number of calls instead of paying for keeping a machine running 24*7. Can you move your non-mission critical data to cool tire and older unused data to archival? These are some of the crucial questions and good discussion to have with your application and infrastructure teams.
9. Provision only when needed – Dev-Ops offers a unique ability to provision infrastructure as a code, a good dev-ops practice is a must for optimization in the cloud. The only provision stuffs that you really need and ensure it gets auto destroyed once the job is done.
10. Catalog your landscape – you really don’t need 8 core 32 GB servers for everything, ensure that have the right policies in place to check what your application teams are provisioning. You can restrict them to use only a certain type or series of VMs for their dev/test operations, enforce a tagging structure to hold people accountable, enforce auto-shutdown using native polices provided by most public cloud providers. It is also worthwhile to think of investing in a cloud management tool that will allow you to automate and enforce these options at an organization level.
11. Continuous Optimization as a part of Operations – In the era of cloud there no such thing called ‘what’s done is done’ ensure you have a good optimization strategy as a part of your operation in the cloud. Ensure that anything that is used below 60% is downsized, logs are being pushed to cold and archival tiers as per the compliance policy; only what is really needed immediately is being kept in the hot tire. If you have an incremental back-up, ensure older copies are being deleted.
12. Ensure budgets and billing alerts are in place – If your organization branches out as BU and BUs as projects, ensure you have budgets defined for every project. Most CMP tools and even native cloud features allow you to budget and set-up alerts for Projects. It is a good idea to have an expert engaged in looking at it and ensuring what’s needed is in place.
13. Reserved instances are certainly a way to save cost on the cloud, they are certainly not ‘the only way’. Talk to your partners and experts to formulate the right cloud management strategy, have the right policies and practices in place to ensure you reap the maximum benefit from your cloud migration.
Keep following this space for more blogs on cloud cost optimization.