AWS EC2/RDS Instance Scheduler
Use the EC2/RDS Instance Scheduler to start and stop AWS EC2 and RDS instances according to the cloudaware:scheduler tag on each resource. The tag value defines the schedule as space-separated key=value fields.
This feature is most useful for development, test, lab, demo, and batch resources that have predictable idle periods. Avoid scheduling customer-facing or mission-critical resources unless the workload owner has approved the operating window and recovery expectations.
Before You Begin
Make sure that:
- The AWS account is connected to Cloudaware. See AWS Setup Guide.
- The Cloudaware AWS identity has the optional Instance Scheduler permissions. See Instance Scheduler.
- Target EC2 and RDS instances can be safely stopped and started.
- Resource owners have approved the schedule and time zone.
- The
cloudaware:schedulertag can be applied to the target resources.
IAM Permissions
The scheduler needs permission to describe, start, and stop EC2 and RDS instances. Add the optional Instance Scheduler policy to the Cloudaware AWS role or IAM user used for the account.
For the policy document, see Cloudaware AWS IAM Policies - Instance Scheduler.
If you use access keys, Cloudaware also provides the policy in the AWS account setup flow:
- In Cloudaware, go to Admin.
- Select Amazon Web Services.
- Open the AWS Accounts tab.
- Click ADD AMAZON ACCOUNT.
- Select Using Access & Secret Keys.
- In CLOUDAWARE IAM POLICIES, select Instance Scheduler.
Scheduler Tag Format
Add the cloudaware:scheduler tag to each EC2 or RDS instance that Cloudaware should schedule.
The tag value must use this format:
tz=<Area/Location> default=<schedule> [mon=<schedule>] [tue=<schedule>] [wed=<schedule>] [thu=<schedule>] [fri=<schedule>] [sat=<schedule>] [sun=<schedule>] [policy=<mode>]
The tz field must be first in the tag value.
Schedule Fields
| Field | Required | Description |
|---|---|---|
tz | Yes | Time zone used by the scheduler. Use the IANA Area/Location format, for example tz=America/New_York. |
default | Yes | Default work hours for days without a day-specific override. Use a 24-hour number, a hyphenated range, multiple values separated by /, on, or off. |
mon, tue, wed, thu, fri, sat, sun | No | Day-specific work hours. These values override default for the selected day. |
policy | No | Scheduler mode. Supported values are start_at_time and stop_at_time. With either mode, the scheduler changes instance state only at the times defined by default and day-specific fields. |
Schedule Values
Use 24-hour time when defining work hours.
| Value | Meaning |
|---|---|
9-17 | Run from 09:00 through 17:59. |
9/14-17 | Run from 09:00 through 09:59 and from 14:00 through 17:59. |
off | Keep the instance stopped for the day unless another field overrides it. |
on | Keep the instance running for the day unless another field overrides it. |
Examples
Weekdays with Weekend Shutdown
tz=America/New_York default=9-17 sat=off sun=off
Result:
- Monday through Friday: running from 09:00 through 17:59.
- Saturday and Sunday: stopped.
- Time zone: New York.
Exception Window Only
Use default=off when the instance should stay stopped except for specific approved windows.
tz=America/New_York default=off wed=0-5
Result:
- Wednesday: running from 00:00 through 05:59.
- All other days: stopped.
- Time zone: New York.
Business Hours on Weekdays
tz=America/New_York mon=8-18 tue=8-18 wed=8-18 thu=8-18 fri=8-18 sat=off sun=off default=off
Result:
- Monday through Friday: running from 08:00 through 18:59.
- Saturday and Sunday: stopped.
- Time zone: New York.
Split Overnight Operating Window
For instances that need to run around midnight, define separate ranges before and after midnight.
tz=America/New_York mon=0-2/22-24 tue=0-2/22-24 wed=0-2/22-24 thu=0-2/22-24 fri=0-2/22-24 sat=off sun=off default=off
Result:
- Monday through Friday: running from midnight to 2 AM and again from 10 PM to midnight.
- Saturday and Sunday: stopped.
- Time zone: New York.
Scheduler Tag Generator
The Cloudaware Scheduler Tag Generator is also available as a template in S3.
Validation
After applying the scheduler tag:
- Confirm the EC2 or RDS instance has the
cloudaware:schedulertag. - Confirm the tag value starts with
tz=. - Confirm the AWS role or IAM user includes the Instance Scheduler permissions.
- Confirm the time zone and operating hours with the resource owner.
- Wait for a test schedule window and verify that the instance state changes as expected.
- If the instance does not change state, review AWS permissions, tag spelling, and the configured schedule values.