EC2 Scheduler – There’s a tool for that.
An EC2 scheduler is an ideal tool for any organization aiming to control its Amazon Web Services (AWS) resources and optimize costs. Billions of dollars each year are wasted on AWS EC2 instances that are left running when they are not actually needed. An EC2 scheduler can solve this problem by providing the ability to turn off non-production instances when they are not required, so users only pay for what they consume.
More cost-effective than having developers write AWS automation scripts for scheduling, and more reliable than the manual process of switching off idle instances, an AWS EC2 scheduler can be easily configured with just a few clicks of a mouse to automatically start and stop instances on a custom schedule.
Why Do You Need an AWS Instance Scheduler?
The benefits of cloud computing include flexibility and elasticity – in other words, you should only have to pay for the computing power your organization actually needs. EC2 instances, as the core compute service offered by AWS,
EC2 pricing, when purchased on demand, is based on the amount of time the instance is used by the hour or by the second. While this should mean that users only pay for what they need, the reality for many cloud users is that this is not the case. Non-production resources, such as those used for development, testing, staging, and QA, are typically only needed during the workday, 5 days a week. Whether due to carelessness or lack of awareness, many of these instances are left running 24×7, resulting in billions of dollars in wasted spend every year.
It’s a simple premise: pay for what you use. Cloud services should be viewed just like any other utility (electricity, water, gas) – you should use them only when needed to avoid paying more than necessary. You wouldn’t leave your car running or leave the lights on all night, so why leave your instances running when you’re not using them? Don’t waste your instances, and your money, when a simple AWS EC2 scheduler can do the savings for you.
In addition to providing a means to automate EC2 schedules easily, an EC2 scheduler also assists organizations with governance for their AWS accounts via Role-Based Access Control (RBAC) without providing direct access to the AWS EC2 management console. The application to automate EC2 schedules provides a single-view dashboard of all an organization’s accounts. This view enables administrators to create role and team structures, set permission levels and monitor activity.
AWS management tools that offer an an AWS scheduler service may also provide complementary cost control functionality to reduce cloud waste, such as resource “rightsizing” to find resources that are overprovisioned and make it easy to resize them for cost savings. By downsizing an instance by one size, you can save 50% of the EC2 cost. By downsizing two sizes, you can save 75% of the original cost. Combining multiple cost-savings tactics such as scheduling and rightsizing results in the maximum savings amount.
How to Use an EC2 Scheduler to Optimize Costs
An AWS EC2 scheduler makes it easy to automatically start and stop ec2 instances to turn them off when they’re not needed. More than many AWS monitoring tools that simply provide cost visibility, a scheduler actually takes action to reduce costs.
How to Get Started with an Scheduler
An EC2 instance scheduler often takes the form of an app that users connect to with their IAM credentials or with an IAM role. The app identifies the instances assigned to the user´s AWS account and identifies those it finds suitable for scheduling. With information available about the Instance Purchasing Option, Type and Region, users can select those they wish to schedule (or “park” as we here would say), or search for specific non-production instances to schedule.
Click to Expand
How to Determine On/Off Schedules
The core idea lies in instance off times via schedules. Typically, these schedules can be determined in three ways:
- User-determined schedules based on typical operations for your organization. For example, if your development team typically works 9 AM to 6 PM Monday through Friday, you might set schedules to turn non-production instances on during those times, and off the rest of the week.
- Through AWS automation in a policy engine that uses instance names and tags to suggest schedules. For example, if you have a “QA team schedule”, you may wish for all instances tagged “QA” to be put on that schedule.
- Through machine learning. Using resource utilization history provided by AWS, AWS automation tools can automatically create customized on/off schedule recommendations for each EC2 instance.
When it comes to actually implementing this in their environment, users have a choice of parking their non-production instances using a pre-configured schedule (for example “On” from 8:00am to 5:00pm Monday through Friday, during standard production time) or creating a custom schedule of their own. New parking schedules are easy to create with the interactive UI. The days of the week and times of the day are displayed on a grid and can simply be selected with a click of a button. Users highlight the times they want non-production EC2 instances parked, and then apply the schedule to those instances for which it is appropriate.
Immediately the UI will display a figure representing the projected savings over the next thirty days, giving users valuable insight as to optimal use does for cost reduction. The value of the projected savings will increase as more non-production instances are added to the parking schedule.
However, it is not necessary to apply the same parking schedule to all non-production instances. Amazon recommends that users create multiple custom schedules to take different usage scenarios into account, pointing out that a “one-size-fits-all” schedule is not the most effective or realistic. The EC2 scheduler can cater to as many different schedules as are required – an important consideration if your organization has deployed non-production instances across different time zones. Many global organizations divide their users into location-based teams, and use tagging to associate EC2 instances with those teams – and then, via the policy engine. to apply the time-zone-appropriate schedule to those instances.
How Much Can an EC2 Scheduler Save?
There is no guesswork involved in how much EC2 scheduling can save with a flexible, customizable AWS scheduler tool. As soon as the schedule is running, actual savings are displayed below the projected savings figure on the UI. The actual savings continue to grow the longer the tool is used, and a suite of reporting tools is available to administrators so that savings can be viewed and downloaded by teams and/or by credentials.
Click to Expand
Taking a look at the preconfigured parking scheduled mentioned above (“running” from 8:00am to 5:00pm Monday through Friday), an organization would reduce its AWS costs on non-production instances by more than 73%. AWS costs can be further optimized by creating an “always off” schedule, and then “snoozing” the schedule when access to the parked non-production instances is required.
In many cases the savings can be significant. From our case studies, Workfront, a work management application platform company, is saving $200,000 per year using ParkMyCloud’s EC2 scheduler, while Sysco, the food distribution giant – saves hundreds of thousands of dollars per year by being able to automate EC2 instances with ParkMyCloud.
A few more anonymized examples:
- A global fast food chain is managing 3,500+ resources in and saving more than $200,000 per month on their AWS
- A global registry software company has saved more than $2.2 million on their AWS cloud spend since implementing scheduling – an ROI of 6173%
- A global consumer goods company with 200+ users saves more than $100,000 per month on their AWS spend
|How Much Could You Save With an EC2 Scheduler?|
|Days||On Time||Off Time||% Saved|
|Mon-Sat||6.00 a.m.||10.00 p.m.||43%|
|Mon-Sat||7.00 a.m.||9.00 p.m.||50%|
|Mon-Sat||8.00 a.m.||8.00 p.m.||57%|
|Mon-Fri||6.00 a.m.||10.00 p.m.||52%|
|Mon-Fri||7.00 a.m.||9.00 p.m.||58%|
|Mon-Fri||8.00 a.m.||8.00 p.m.||64%|
Amazon’s Solution: AWS EC2 Scheduler
Amazon also provides their own AWS EC2 scheduling solution for automatically starting and stopping instances. Previously, their fix was nothing more than some basic scripting suggestions for starting and stopping your EC2 instances. With this solution, Amazon takes it up a notch by providing simple instructions for how to configure your own custom start and stop scheduler for EC2 instances. Implementing the solution will require some work on your part, but will still do its part in reducing costs.
An AWS-provided solution for scheduling EC2 instances seems like a great idea, doesn’t it? And coming from Amazon, it should be the best and most reliable option, right? Not so fast. We took a look at the deployment guide for the EC2 scheduler and noticed a few things that fell short:
- The solution requires knowledge and operation of DynamoDB, Lambda, CloudWatch custom metrics, and Cloudformation templates, including Python scripting and Cloudformation coding.
- There’s no UI, so it’s not obvious which instances are on what schedules.
- No easy way to override schedules, for example, if an instance that is scheduled to be stopped over the weekend is needed by a developer during that time.
- Modifications require code changes and Cloudformation deployments.
- No SSO, reporting, or notifications
- No Role-Based Access Control (RBAC) to allow users to access, modify, or override their schedules. Difficult to use if needed by more than a single administrator.
- Doesn’t have automated parking recommendations based on usage data.
- Doesn’t work with Azure, Google, or Alibaba Cloud
- Doesn’t park databases (RDS) or auto scaling groups (ASG).
- No ChatOps integration for Slack, Teams, Hangouts, etc.
If you’re looking for an alternative to writing your own scripts (which is not the best answer), if you’re purely using AWS and EC2 instances, and if you are comfortable with all the PaaS offerings mentioned, then you might be okay with the Amazon EC2 scheduler. The solution works, although it comes with a lot of the same drawbacks that custom scripting has, and we have another option…
Automate EC2 Instances Easily with ParkMyCloud
ParkMyCloud is a lightweight SaaS application to automate EC2 and other cloud resources, helping organizations cut cloud costs by 65% or more on their monthly cloud bill with AWS, Azure, Google, and Alibaba Cloud. Benefits include:
- Automates the process of switching non-production instances on and off with a simple, easy-to-use platform – more reliable than the manual process of switching EC2 instances off via the AWS console.
- Schedule a variety of resources beyond EC2, including Auto Scaling Groups and RDS instances including Aurora clusters, as well as resources across Microsoft Azure, Google Cloud, and Alibaba Cloud
- Provides additional AWS cost management functionality with rightsizing, by recommending resources that are overprovisioned and can be sized down for cost savings.
- No need for a developer background and no coding or custom scripting required. It is also more flexible and cost-effective than having developers write scheduling scripts.
- Can be used with a mobile phone or tablet.
- A simple UI with an icon driven operational dashboard and reporting so you can easily see and manage not only your AWS resources in a single-pane, but your Azure and Google resources too.
- User governance with RBAC. Users can temporarily override schedules if they need to use an instance on short notice, but will only have access to the resources you grant. Overrides can take place in the ParkMyCloud UI, or through your favorite ChatOps tools such as Slack, Teams, and Hangouts. And you can use our API and Policy Engine to automate scheduling as part of your DevOps process.
- SSO, reporting, and notifications. Also, you can now see resource utilization data for EC2 instances and other resources, viewable through animated heatmaps.
- Automated parking recommendations based on usage data. We call it SmartParking.
- Proven success: our EC2 scheduler has already helped hundreds of businesses across the globe save millions of dollars in costs.
Getting started with ParkMyCloud is easy. Simply register for a free trial with your email address, conduct a discovery of your AWS cloud computing resources, and you will get immediate access to our EC2 scheduler to start parking your non-production instances, collect AWS CloudWatch metrics, and get SmartParking recommendations.
There are no set up fees or upfront costs, no credit cards required or contracts to sign. Our free trial offer gives your organization the opportunity to evaluate the benefits of ParkMyCloud while you only pay for the cloud computing power you use. At the end of the trial, there is no obligation on you to continue with our service, and all the money your organization has saved is yours to keep.
ParkMyCloud has been scheduling instances and saving users 65% or more on their monthly cloud bills from Amazon, Azure, Google, and Alibaba Cloud since 2015. If you would like to know more about our app to automate EC2 instances, or you have any questions about optimizing your AWS costs, do not hesitate to get in touch. Our friendly and knowledgeable Customer Services Team will be happy to answer your questions and guide you through how ParkMyCloud´s EC2 scheduler can be a cost-effective solution to optimizing AWS costs with just a few clicks of a mouse.
If you’re using more than just EC2 instances or even working with multiple providers, if you’re looking for a solution where you don’t need to be scripting, and if you’d prefer an automated tool that will cut your cloud costs with ease of use, reporting, and parking recommendations, then the solution is simple. Give ParkMyCloud a try.