fbpx
INTRODUCING

How to Schedule AWS EC2 Instances in 5 Minutes (and Save 70% on Your Bill)

Table of Contents

Amazon EC2’s pricing means you’re billed for every second an instance is running – even if it’s sitting idle. Most development, testing environments don’t need 24/7 compute even though companies often leave these instances running constantly. This idle time translates to extra cloud spend. If your instances are only used ~10 hours a day on weekdays (50 hours/week), you could save around 70% by shutting them down after hours. Usually dev teams isn’t working 24/7, but dev environments never stops. I want to share options how to schedule AWS EC2, RDS, ECS, EKS.

Why AWS Resource Scheduling Matters More Than Ever

As I mentioned above – most companies use their AWS instances run 24/7. The math is simple but painful: if your team works 40 hours per week, you’re paying for 128 hours of unused compute time.

Here’s what I typically see when auditing AWS accounts:

  • Development environments running 24/7 with no need
  • Test instances that haven’t been accessed in weeks but still running
  • Many test instances was used for a couple days and abandoned after that for weeks

The solution isn’t complex – it’s about aligning resource availability with actual need through scheduling.

Real Cost Impact: AWS Scheduling Examples

Lets look on sample dev environment with numbers:

Scheduling Strategy Instance Type Usage Pattern Monthly Cost Savings vs 24/7
Always On (Baseline) 10 × m6i.xlarge 720 hrs/month $1,382.40
Weekend Shutdown 10 × m6i.xlarge Weekdays 24/7 $921.60 33% ($460.80)
Business Hours 10 × m6i.xlarge 10hrs × 5 days $384.00 72% ($998.40)

*Based on $0.192/hour per m6i.xlarge instance in us-east-1

Traditional Ways to Schedule EC2 (and Their Drawbacks)

Before introducing CloudAvocado solution, it’s worth noting how teams often handle EC2 scheduling using native AWS or DIY methods:

AWS Instance Scheduler: AWS provides a solution (now via Systems Manager Resource Scheduler) to start/stop instances on a schedule You define cron-like schedules and tag instances to follow them.

  • Pros:

    • Effective;  works across multiple account in organization
    • works across multiple account in organization
  • Cons:

    • require non-trivial setup
    • someone need to maintain it
    • limited list of supported services

Custom Scripts or Lambda Functions: Some teams write their own AWS Lambda functions triggered by CloudWatch Events (cron expressions) to stop and start instances.

  • Pros:

    • Effective
    • Gives more flexibility (and can even implement logic like “stop if CPU < 5% for 1 hour”)
  • Cons:

    • someone need to write code and maintain it, ensure that script runs in all target accounts/region

Manual Effort: The simplest (but least scalable) method is manually stopping instances via the AWS Console or CLI. I used this method long time ago.

  • Pros:

    • Effective
    • Free to use
  • Cons:

    • it’s easy to forget about it

Why look for an alternative? These methods either require engineering time to set up and maintain (infrastructure-as-code, scripting) or they rely on humans to click buttons. This is where CloudAvocado comes in – offering a user-friendly UI to automate instance scheduling without any custom scripts<span”>, in a matter of minutes.

Scheduling EC2 Instances in 5 Minutes with CloudAvocado

CloudAvocado is a cloud cost optimization tool focused on AWS. One of its core features is automated scheduling of resources like EC2 (and RDS, etc.) to eliminate paying for idle time. We’ll see how to get started quickly and implement a smart schedule. No deep AWS expertise or coding required – perfect for DevOps engineers who want results fast.

1. Onboard Your AWS Account (No Scripts Needed)

To use CloudAvocado, you first connect it to your AWS environment. The good news: this setup is extremely simple and doesn’t involve running any scripts or agents on your side. CloudAvocado uses a secure cross-account role approach:

  • Sign Up & Connect: Sign up for a CloudAvocado account (a free trial is available). In the onboarding, you’ll be guided to create an AWS IAM Role with a predefined policy that grants CloudAvocado the minimal permissions it needs (like reading EC2 info and toggling start/stop). There’s no manual scripting – just follow the step-by-step instructions either with CloudFormation script or manual.

CloudAvocado immediately discovers your instances (and other resources, like ECS, EKS, RDS, etc.) in that account.

CloudAvocado’s platform is built for multi-account aggregation – you can easily view and schedule instances across dev, staging, and prod accounts all in one place. No more juggling AWS logins or switching regions manually.

2. Visualize Utilization with the Dashboard & Heatmaps

Once connected, CloudAvocado gives you a unified dashboard of your cloud usage and costs. Instead of combing through AWS Cost Explorer or CloudWatch metrics, you get a clear visual overview:

CloudAvocado’s dashboard provides a visual summary of your AWS costs and usage. Imagine merging CostExplorer and CloudWatch The intuitive UI includes charts (even heatmaps) highlighting usage patterns and potential waste. This makes it easy to identify idle periods at a glance.

  • Utilization Heatmaps: CloudAvocado includes visualizations that correlate when your instances are running (and how much they’re utilized). For example, you might see a weekly heatmap showing hours of high vs. low CPU utilization across your instances. These visuals quickly highlight that, say, CPU usage drops to near-zero every day after 7 PM – a strong indicator that the instance could be shut off at that time. By spotting dark “cold” areas on the heatmap (periods of low utilization), you identify scheduling opportunities immediately.
  • Metrics & Recommendations: The platform also presents charts of CPU and memory usage down to an hourly granularity, along with cost analytics. It can even highlight underutilized resources and suggest where you could save This approach helps build confidence that turning off an instance won’t disrupt anyone – you can literally see that it’s idle out-of-hours before you schedule it off.

Overall, with overwhelming amount of data from CloudWatch and CostExplorer – the UI is designed to remove as much noice as possible.

3. Define a Schedule (Idle-Aware Stop Times)

Now comes the core task: creating a schedule that will automatically stop and start your EC2 instances according to your desired timings. In CloudAvocado, this is done through a simple Schedules UI (no cron syntax needed):

  • Choose Off-Hours: Define the days and time ranges when instances should run, and when they should be shut down. For example, you might create a schedule named “Weekdays-9to5” that starts instances at 9:00 AM and stops them at 7:00 PM, Monday through Friday. You can specify time zone as needed. This covers turning them off on weeknights and all weekend.
  • Metric based schedule: A schedule Instead of a blunt stop at exactly 7:00 PM, you can configure an idle timeout after working hours– e.g. “stop if the instance has been idle for 60 minutes after 7:00 PM.”  People tent to work a bit shifted time, especially with remote work. This means if someone is using the instance past 7, the instance won’t be terminated mid-task. It will wait until the CPU drops below a threshold (set per instance, “Idle” is different for different resources) for set duration before shutting down.

This smart scheduling ensures you capture maximum savings without hurting productivity. You avoid the scenario of forgetting to turn off instances (wasting money), and avoid the risk of turning something off while it’s still needed. Everything is configurable in a few clicks.

4. Apply Schedules to Instances (or Automate with Tags)

After defining a schedule, you need to assign it to the target instances:

  • Direct Assignment: In the CloudAvocado Resources view, you can bulk-select the EC2 instances you want to schedule and simply apply your new schedule to them. For example, you might select all instances in the “Dev” environment group and apply the “Weekdays-9to7” schedule in one go. The UI clearly shows which resources have which schedule active.
  • Tag-Based Scheduling: For more convenient automation, CloudAvocado has custom AWS resource. Just assign CloudAvocado schedule tag to resources, with schedule id. This way, whenever a new instance with that tag appears, it will automatically inherit the appropriate schedule.
  • Multi-Account, Multi-Region: All of this works across multiple AWS accounts and regions seamlessly. If you’re a cloud engineer managing workloads for several teams or clients, you can view all their instances in CloudAvocado and apply schedules without having to log into each account separately. This aggregated view and control is a huge time-saver and prevents oversight.

Once a schedule is applied, CloudAvocado’s automation takes over. There’s no need to visit the AWS Console to start or stop instances manually – or to check if the schedule ran. You can always see the current state (running or stopped). And if you ever need to override (e.g. keep an instance running late just one night), you can disable schedule for “X amount of hours”

*  Create Teams and add Users (Optional)

CloudAvocado has role based access control, you can define different roles, assign resources to teams, etc.

Conclusion: Save Costs in Minutes – Give It a Try

Scheduling AWS resources is one of those quick wins in cloud cost optimization: it’s relatively easy to implement and brings significant savings (often on the order of 60–70% for non-prod environments). By using CloudAvocado, you can setup this process in couple minutes – without writing code or managing schedules by hand. As well – consider that it’s not just about EC2, CloudAvocado also supports ECS, EKS, RDS, DocumentDB, SageMaker.  

Need a simple AWS cost optimization solution?

Schedule a free demo with a cloud cost optimization expert

How to get the best out of your AWS

Experience of our experts converted into overview of actionable and beneficial strategies

Discover Latest Updates

Sign up for our newsletter

Want cloud optimization and management news and updates?

Scroll to Top

Contact Us

Sign up so we can tailor your support experience. If that’s not possible, we’d still like to hear from you.