AWS automation
Best AWS instance scheduling tools: 4 options to compare
A scheduler has one job: turn selected resources off when no one needs them, and bring them back when work resumes. The hard part is deciding what to schedule and who will own the automation after it is running.
Shortlist at a glance
- SnoozeDB suits teams that want a focused RDS and EC2 scheduling workflow with protection rules and activity logs.
- Instance Scheduler on AWS is the native option for teams that want to deploy and operate the AWS solution themselves.
- Cloud Custodian works well when scheduling is part of a broader policy-as-code program.
- A Lambda and EventBridge scheduler is appropriate when the policy is small and a team is ready to maintain it.
Scheduling is an operating decision
The easiest cost saving is often a development database or EC2 instance that runs through the weekend. That does not mean every resource should be stopped. A scheduler needs a clear resource inventory, tags or selection rules, a way to protect production, and a record of what happened when it acted.
This comparison focuses on the day-to-day scheduling layer. It does not compare Savings Plans, Reserved Instances, or broad cost analytics products. Those are useful for different decisions.
| Option | Resource scope | Code to maintain | Best fit |
|---|---|---|---|
| SnoozeDB | RDS and EC2 | No | A managed workflow for selected non-production resources |
| Instance Scheduler on AWS | RDS, EC2, and Auto Scaling groups | No application code | An AWS deployment that your team configures and operates |
| Cloud Custodian | RDS, EC2, and many other AWS resources | Yes | Policy as code and custom automation |
| Lambda + EventBridge | Whatever the implementation supports | Yes | A small, owned scheduler for a defined use case |
1. SnoozeDB
SnoozeDB schedules RDS and EC2 resources that a team has reviewed and activated. It uses a cross-account AWS role, tracks actions in an activity log, and keeps protected resources out of the normal automation path. Teams can use business-hours and custom schedules rather than maintaining their own scheduler code.
It is a good fit when the priority is non-production cost control: development databases, staging EC2 workloads, and resources that should not run every night. It is not for automatic production shutdowns, or for an organization looking for broad multi-cloud governance.
Read the schedule documentation, the guide to RDS costs that remain after stopping compute, and the comparison with Instance Scheduler on AWS.
2. Instance Scheduler on AWS
Instance Scheduler on AWS is AWS's published scheduling solution. It supports RDS, EC2, and EC2 Auto Scaling groups. Teams tag resources, define periods and schedules, then deploy the supporting AWS services through the solution.
AWS documents an architecture built around Lambda, EventBridge, and DynamoDB. That makes it a sensible option for a team that wants the scheduler to live inside its AWS environment. The same team owns the deployment, IAM configuration, schedule definitions, updates, and troubleshooting.
3. Cloud Custodian
Cloud Custodian manages Amazon RDS resources through policies that use filters and actions. Its RDS documentation includes start and stop actions, plus on-hour and off-hour filters, alongside controls for snapshots, maintenance, and tagging.
This is useful when a platform team already runs policy files through review and deployment workflows. It gives that team a lot of control, but it also means the policy, its permissions, and its safety checks are theirs to maintain. Treat destructive actions with particular care.
4. Lambda and EventBridge
A custom Lambda triggered by EventBridge is the smallest AWS-native way to build a scheduler. The function can find explicitly tagged RDS or EC2 resources, check their state, and call the relevant start or stop API. It is a valid choice for a narrow use case with a team that owns the repository and the on-call response.
The code is usually the easy part. The real work is handling failed calls, time zones, public holidays, manual overrides, a stopped RDS instance restarting after seven days, and tag mistakes. Keep the policy small, deny by default, and make production exclusion a database-side or IAM-enforced rule where possible.
For a closer look at this approach, read EventBridge and Lambda versus a dedicated tool.
Which option should you choose?
Start with the operating model, not the feature list. A platform team with established policy review may prefer Cloud Custodian. An AWS-focused team that wants a supported reference architecture may choose Instance Scheduler. A small team with a simple, stable use case may keep a Lambda in its own repository.
Choose a dedicated tool when the work is not the code itself, but the ongoing review of resources, protection rules, schedule changes, and audit history. The best scheduler is one that your team can still explain and safely operate six months later.
Review your scheduleable AWS resources
Connect an AWS account, review the inventory, and choose which RDS and EC2 resources are safe to manage. SnoozeDB uses a cross-account role and does not require AWS access keys.
Connect AWSFurther reading
Frequently asked questions
What is an AWS instance scheduling tool?
An AWS instance scheduling tool starts and stops selected resources at defined times or in response to a policy. It is most useful for non-production resources that have predictable idle periods.
Can AWS schedule RDS and EC2 instances?
Yes. Instance Scheduler on AWS supports Amazon RDS and Amazon EC2 resources. AWS users can also build their own scheduling flow with services such as EventBridge and Lambda.
Does stopping an RDS instance remove all costs?
No. Stopping an RDS DB instance stops its compute usage, but storage, backup, and other applicable charges can remain. Review the RDS pricing model before estimating savings.
Should a production resource be added to a schedule?
Usually no. Production availability is an operational decision that should follow service requirements. Scheduling is normally for development, testing, demos, and staging resources with known idle periods.