How To

Cost savings

How to save big, by turning off workloads when not in use.

Bob Tordella
5 min. read - Jan 20, 2021
How to save big, by turning off workloads when not in use.

Ensure instances are stopped before they overrun your cloud budget. For workloads that don’t need to be running 24/7 (think development, testing, qa environments) scheduling resources to stop off hours can save over 70% of your cloud usage.

This post looks at some scheduling best practices and see how Turbot Guardrails can help enforce them.

Traditional Workflow

We have all been guilty of spinning up a few VMs for testing in a sandbox account, getting side-tracked with another urgent priority and forgetting about it until they show up in your cloud bill weeks later. The problem can be easily solved with some scripting, but when will you prioritize a project like that over more pressing issues?

Get it done with Turbot Guardrails

In Turbot Guardrails, scheduling guardrails are readily available to control your cloud resource usage. Therefore we can simply set existing schedule policies in a few clicks. Turbot Guardrails currently supports the following cloud services to be automatically scheduled for start/stop:

  • AWS

    • EC2 Instances

    • RDS Clusters

    • RDS Instances

    • Redshift Clusters

    • WorkSpaces

  • Azure

    • Virtual Machines
  • GCP

    • Compute Instances

How to do it

Create a new policy:

Multi-cloud resource scheduling:

Turbot Guardrails will use the resource’s region to determine the time zone; e.g. us-east-1 would be 8am EST, while an instance in eu-west-1 is 8am GMT.

‘Business Hours’ settings will start the instances at the beginning of the timeframe, then stop at the end. Useful for when you only need your workloads running during working hours.

Stopping each night or weekend ensures your resource is stopped until you are ready to start it again. Very convenient for sandbox environments to ensure no resource hogs up your budget while you’re away.

Custom schedules are possible through the Schedule Tag policy as well. e.g. “AWS > EC2 > Instance > Schedule Tag” can be set to “Enforce: Schedule per turbot_custom_schedule tag”.

Your cloud instance can be tagged with the turbot_custom_schedule key, and a CRON (e.g. {"start": " 8 * MON-FRI"}) or Text (e.g.{"start": "at 8:00am every weekday"}) expression to define the custom schedule.

Make it happen!

See for yourself how automating resource scheduling is simply a few clicks to setup; the policy examples above are available as a Terraform template in the Turbot Development Kit (TDK). If you need any assistance, let us know in our Slack community #guardrails channel. If you are new to Turbot, connect with us to learn more!