You have just migrated an entire data center to the cloud and received your first bill - 3 times the monthly cost of running the data center. But cloud is supposed to be the cheaper option?
Well, sorry to break it to you. While cloud is indeed a cheaper option than running a full-scale data center, just lifting and shifting doesn’t do the trick. Often you will end up burning more than reducing cost.
So, what do we do now?
Is there a way to bring down the cost from X to X-Delta?
Is there a way to ensure we spend what we budgeted for with a +/- 10% on either side?
Is there a way to ensure we spend what we budgeted for with a +/- 10% on either side?
Move all your production instances to Reserved Instances; that will ensure your overall spend reduces - that is the advice you would often hear. Reserved instances do reduce overall spends, no doubt. But not without asking for an initial commitment. For new cloud adopters, an upfront commitment of this sort is not feasible. Moreover, you still don’t know if you are rightly sized to move everything to Reserved Instances.
What are our other options? To be honest, there are many. They are just the roads less traveled. Here we list down a couple of ways to optimize cloud spending.
Before moving to the cloud
1. Understand your options Most cloud providers provide multiple operating models ranging from Pay-as-You-Go to agreement-based usage to partner-led models. It is worthwhile to spend time understanding all the operating models offered by your target cloud provider. Weigh your options and then choose the one that provides you both flexibility, cost optimization, and eventually 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). This helps you save on exorbitant licensing costs. For example, Microsoft allows you to bring your SQL and Windows licenses from on-premise to the cloud.
3. Perform a TCO analysis — Before you zero in on a provider, as your service providers to provide a complete TCO. Compare the options provided by various cloud providers and then choose wisely. Most public cloud providers have ready-made tools to help you do this, or you can engage an independent expert to do this for you.
4. Perform a complete workload assessment — Spend a good amount of time assessing your current workloads and answering critical questions such as: How many are coming to the end of life? How many licenses can be moved to the cloud? What resources are underused and hence can be downsized? Is your sizing right? Are you using the best possible instance type for a requirement? An in-depth assessment forms the basis of good cloud migration and adaptation strategy.
5. Plan your architecture — Devil lies in the details, and the same applies to your cloud landscape. 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 on a need-only basis, MPLS bandwidths are accounted for, underused resources are downsized in the bill of materials for the cloud, and tagging structure and tag tree is defined.
After moving to the cloud
1. Enable auto-shutdown for dev/test environment — The beauty of cloud is that it allows you to pay only for what you use. Ensure that all your dev/test environment and, in some cases, production applications are available only when someone is using them. Shut down anything and everything that is not being used. For example, if you are a bank that operates 9–5 only, instances hosting your attendance management system need not run after 5 PM.
2. Delete all unused resources — Typically, a lot of test resources/snapshots and back-ups are created during the initial days of migration. Once you reach a steady state, ensure you spend time analyzing what you need. Keep only what you need. Unallocated disks, unused VMs, and snapshots of VMs taken from on-premise as a part of the migration activity, all these resources should be deleted.
3. Think Refactoring and Re-platforming — In the modern era, not everything is infrastructure intensive. Start looking at what can move to PaaS or SaaS, or can your application use an RDS or Cosmos DB instead of having the database on a box? Where you pay for the number of calls instead of paying for keeping a machine running 24/7 - can you replace your middleware machines with API gateways? 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 great discussions to have with your application and infrastructure teams.
4. Provision only when needed — Dev-Ops offers a unique ability to provision infrastructure as a code. A good DevOps practice is a must for optimization in the cloud. Only provision stuff that you need and ensure it gets auto destroyed upon job completion. It allows you to keep a tab on your cost, and you are not paying for something you are not using.
5. Catalog your landscape — you don’t need eight core 32 GB servers for everything. Ensure that you 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 policies 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 organizational level.
6. Continuous Optimization as a part of operations — In the cloud era there is no such thing as 'what’s done is done'. Ensure you have a good optimization strategy as a part of your operation in the cloud. Downsize anything that is below 60% usage, push logs to cold and archival tiers as per compliance policy, and only keep the logs that are required immediately in the hot tier. If you have an incremental backup policy, ensure older copies are regularly deleted and you are keeping only the latest copies.
7. Ensure budgets and billing alerts are in place — If your organization branches out as BU and BUs as projects, ensure you have the budget 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.
Reserved instances are a good way to save costs on the cloud, but 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.