If you’re part of an organization that’s looking to make improvements in cost optimization and governance by using automation then an EC2 scheduler is a natural choice. An EC2 scheduler allows you to maximize utilization efficiencies without the overhead of writing and maintain custom scripts or doing it manually. For example, you can turn off and on idle EC2s via schedule saving as much as 65% on non-production instances.
You don’t need to look too far for stories of organizations that have built scripts to do this themselves and have run into (oftentimes very large) issues with maintaining those scripts. Sometimes the original coder leaves or something turns off that wasn’t meant to. Often technology gets updated or instances get added to the stack. Also, tagging structures can change. All in all, it can get very unwieldy.
By using a managed EC2 scheduler, you can create schedules in minutes using either the GUI or the APIs, with a single view of what’s happening inside your environment. Organizations can use roles and permissions to empower their end users with oversight of how their environment is being managed. Developers can even intercede in any planned changes on an ad-hoc basis if they don’t want certain EC2 instances to turn on/off. There are rich logs which can tell an admin (or anyone) what processes have taken place and the outcomes.
The savings can actually be quite significant. We mostly see schedulers used for non-production instances – ones that can be turned off outside of work hours – but occasionally organizations like to turn off non business-critical EC2 instances when they’re not required too.
Typically we see schedules keeping infrastructure turned on from 9am-5pm or 8am-6pm depending on uses and requirements. Oftentimes however these off times get postponed using our unique snooze function – Keith Jarrett, Global Head of Cost Optimization for AWS, explained it best at re:Invent 2016.
You can expect the following kind of results:
|How much can I save with an EC2 Scheduler?|
GorillaStack’s EC2 scheduler is simple to use. With one click, you can give GorillaStack highly restrictive cross-account access using an IAM role. Once you use GorillaStack to access your environment, you can group instances together using tag groups based on your existing tags.
When the right EC2 instances have been identified, you can set up 2 rules – one to stop a group of instances and one to start those instances again. You can be as granular or as broad as you like in identifying the EC2 instances – by account(s) and by region(s). You can also set the time by timezone for simplicity. Once that’s set up you can empower individuals or whole groups in your organization to be notified by Slack, HipChat or email when a cycle is about to take place and to cancel that cycle if they so wish or snooze it for any custom amount of time.
You can set up as many rules as you like meaning you can schedule EC2 instances from any number of regions, accounts and tag groups, in any number of ways.
Once these cycles get going, users can leverage the Engine Room to track savings, predict future savings and report back to the finance team. Further, there are rich logs of all events that have taken place so users can inspect those logs and the associated metadata to determine if everything ran on the instance scheduler according to plan or if any machines were excluded from a cycle (for example some instances are unavailable in certain regions when they come to be turned back on).
Amazon provides a highly technical solution which requires a great deal of work to roll out inside your own infrastructure and to maintain. It requires knowledge and integration of DynamoDB, Lambda, CloudWatch, CloudFormation and some Python. It’s so complicated in fact that AWS provide a 40 page manual just to schedule instances.
While the Amazon EC2 scheduler is a possibility, particularly for those who like to get deep into code there is a better solution for managing scheduling processes, one which allows the DevOps to concentrate on the more important task of innovation and remove the distraction of undifferentiated heavy lifting.
If you’d like more information about how to use GorillaStack to schedule your EC2 instances and save money, there are a few next steps you can take. You can set up a quick demo, have a chat with us via our Slack channel or better still get started with a free trial. We look forward to working with you!