Back to posts

EC2 Instance Scheduler — Automating Start/Stop to Reduce Costs

Read the full guide on docs.beyondyou.my.id
awsec2cost-optimizationfinopsautomationlambda

One of the fastest ways to reduce AWS costs is simply turning off resources when they’re not needed. Development, staging, and QA environments don’t need to run 24/7. The AWS Instance Scheduler provides a fully automated, tag-driven solution that can save 50–70% on non-production compute costs.

Key Takeaways

  • The AWS Instance Scheduler uses Lambda and CloudWatch Events to start/stop EC2 and RDS instances on a defined schedule
  • Resources are tagged with schedule names — no complex configuration per instance
  • Supports custom schedules (e.g., 9am–6pm weekdays) with timezone awareness
  • Can hibernate instances to preserve in-memory state during off-hours
  • Works across multiple accounts and regions from a central deployment

Quick Overview

The Instance Scheduler deploys as a CloudFormation stack containing a Lambda function, DynamoDB table for configuration storage, and CloudWatch Events rules for periodic triggering. You define schedules as JSON configuration — specifying time periods, days of the week, and timezone. Instances are tagged with a schedule name key, and the scheduler automatically applies the start/stop actions.

For enterprise deployments, the scheduler can be deployed once in a shared services account and manage resources across the entire AWS Organization.


Read the full guide: EC2 Instance Scheduler → — includes deployment steps, schedule configuration examples, and multi-account setup.