
Introduction
I am sure that by now you would have seen a whole bunch of articles and tools that promise to bring down your Cloud costs by upto 40%. The secret sauce to that is actually a very simple research done by AWS and other Cloud providers. AWS has put out research stating that if an ec2 instance that is running 24/7 is changed to run 24/5 (24 hrs a day, 5 days a week), monthly cost reduces by approximately 28.6%. If an instance that is running 24/7 is changed to run 12/5 (12 hrs a day, 5 days a week), monthly cost reduces by 64.3%. Still further, changing the running time of an instance from 24/7 to 10/5 (10 hrs a day, 5 days a week) would bring down the monthly cost by a whopping 70.2%. Well, this is an eye-opener in some ways. How about taking that extra savings and hiring a new engineer to work on your next critical project !
Now that we understand the need for instance scheduling, let us look at multiple ways in which this can be implemented. The easiest way to put this into practice is to perform the operations manually. However, from past experience, we know that this is easier said than done. We would need automated ways to perform these lifecycle operations based on a schedule.
Let us look at automated solutions provided by Cloud platforms as well as third party vendors that address this specific use case
1. AWS Instance Scheduler
This is a very good solution from AWS. AWS documentation states that running with default settings in US East (N. Virgina) region would cost $5 per month for Lambda charges and $0.9 per schedule or scheduled service. Some of these costs can be offset against AWS free-tier monthly usage credit. This solution also uses DynamoDB to store the scheduler related configuration. AWS provides command line options to create and edit schedules, which are very user friendly. There is no built-in UI and hence all changes need to be done either over command-line or by directly modifying the values in the DB.
2. Azure Scheduler / Azure Logic Apps
Azure Scheduler was the initial service that enabled creation of different instance schedulers to suit your needs. This is currently getting replaced by a new solution called Azure Logic Apps. Azure Logic Apps provide a larger set of functionality and is mainly targeted at workflows that are automated using Zapier or similar platforms. Azure Logic Apps support a large number of legacy and modern API’s using something called as “Microsoft managed connectors”. These connectors provide integration with various Azure services and other third-party services. For basic instance scheduling requirements, this solution is very much usable, but may be a bit of an overkill.
3. Google Cloud Scheduler
This is a very generic solution that has been designed to address multiple set of cronjob scenarios and is a bit more complicated than what one would like to see. For e.g. why would an end-user worry about “pub/sub logic” when all they care about is to apply a schedule on couple of instances. Also, this solution is targeted more towards administrators who would decide on a global shutdown/startup policy for the organisation.
4. ParkMyCloud
ParkMyCloud is a third-party cloud optimization platform that was recently acquired by Turbonomic. ParkMyCloud provides several capabilities, but the primary offering is focused on Cloud resource scheduling. Several end-users have complemented ParkMyCloud for the simplicity of the solution while some users have raised issues about the pricing model which is instance-based.
5. VMWare CloudHealth
VMWare CloudHealth is a Cloud Management Platform that is mainly targeted towards organisations that have significant Cloud platform investments. Cloud instance scheduling is only one of the many functionalities offered by the platform and is quite intuitive and easy to use. If you are fine with shelling quite a bit of of money for a solution that provides a lot of functionality, then CloudHealth is the right solution. If you want a cost effective solution, then look elsewhere.
6. Corz
Well, you guessed it right. We are also in the same space and provide a very cost effective alternative to solutions provided by cloud platform providers and third party SaaS platforms. Corz.io provides a 1-click solution for scheduling Cloud instances. Corz.io also provides a large number of pre-created schedulers which can be enabled or disabled at the click of a button. If you are a developer or a small organisation, our “Free tier” may be all that you need to implement scheduling without incurring any charges. If you have signed up for our “Ultimate” plan, then you can easily manage Cloud schedules directly from Slack itself without getting to the UI.
Criteria to choose a solution
As you have seen by now, there are quite a few choices that are available to end-users. The type of solution that you would choose would depend on your specific Cloud use-case . Some of the following questions would be helpful in narrowing down to a particular solution.
a. Do I use only one single Cloud platform or do I employ a hybrid cloud approach
If you are standardised on AWS and do not use any other provider, then it is not a bad idea to go ahead and use AWS instance scheduler. It is very cost effective and would cater to a large number of scenarios. If you are using a hybrid cloud model or if you are standardised on Azure or Google Cloud, then it may be better to standardise on a third-party management solution that provides scheduler functionality. Native scheduling functionality provided by Azure and Google Cloud is good, but would require additional configuration and work before they can be put to effective use.
b. Do I have dependencies between my Cloud instances
This is one big deal breaker which would probably take out a lot of options from your existing list. Most of the existing solutions would not support fine grained dependencies. This is one key differentiator between currently available solutions and new generation solutions like Corz.io.
c. Do I have other Cloud Management requirements
If you are a Cloud developer or a small organisation that uses only a few Cloud services, then resource scheduling may be the only feature that you may be interested in. Do-it-yourself (DIY) is the best solution in that case, using something like AWS Instance scheduler. However, if you want a ready-made solution that would help you to implement instance schedules, third party solutions like ParkMyCloud or Corz can help. These solutions would also bring in additional functionality like instance rightsizing, cost saving recommendations etc. without charging a premium.
d. How much is my budget allocation for Cloud cost management
Any solution that provides a little more than basic functionality will have a cost element attached to it. In these trying times, the lesser the cost is, the better. New-generation solutions like Corz.io are very cost efficient and will deliver much more functionality at a significantly lower price point. On the other side, if you are a large enterprise spending millions of dollars on the Cloud, then you are probably looking at some solution that would complement your existing ecosystem. For e.g. if you have large OnPrem and Cloud investments and are looking to manage all of them from one single interface, VMWare CloudHealth would be a good option.
To summarise, it is better not to jump straight onto one Cloud Cost Management platform. Try out multiple options for a while to understand if there are hidden costs. For e.g. pricing based on a usage metric (number of cloud resources or percentage of total Cloud spend) is a very open-ended pricing model, and can itself give you cost surprises. Settle down for an easy-to-use solution that would provide quick instance scheduling and additional cloud management functionality while keeping the total cost of ownership low.