Recommended Free Tools
A shutdown script that fails at 300 instances is not evidence of a universal AWS 300-instance limit. The cause is more likely in how the script discovers targets, sends API requests, handles throttling, distributes work, or reports partial failures. Find the exact failure first; then decide whether to repair the automation or move to an AWS-managed scheduler.
Why 300 instances can expose a script problem
A fleet count alone does not identify the bottleneck. A script that handles a small group may break at a larger count because it makes too many calls at once, misses paginated results, runs out of execution time, or fails partway through without recording which resources succeeded. Cross-Region latency, Lambda concurrency, API throttling, permissions, and tag governance can also affect the outcome.
As an Amazon Associate I earn from qualifying purchases.
AWS’s reviewed Systems Manager and Instance Scheduler documentation does not establish a universal 300-instance ceiling. Systems Manager Quick Setup Resource Scheduler documents a maximum of 5,000 instances per Region per configuration. That limit applies to that scheduler configuration, not to every script or AWS scheduling method. AWS’s Instance Scheduler guidance describes thousands of EC2 instances and hundreds of RDS databases or clusters per scheduling target, while cautioning that latency and API throttling affect scaling. These are design guidelines, not a guaranteed quota for every account or deployment.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteThe exact cause in your environment remains deployment-specific until you inspect the script and its error output. AWS quotas and supported Regions can change; check Service Quotas in the account and Region where the automation runs.
#1 Best Overall
Find where the run breaks
Capture one complete run, including successes as well as failures. Use timestamps and resource IDs to determine whether the process stopped discovering targets, stopped making requests, or received errors from the service.
- Record the failure evidence. Collect affected resource IDs, timestamps, API error codes, Lambda duration and timeout status, throttle events, and whether the failure is partial. Do not treat the count of 300 as a quota error unless the service returned a quota-related error.
- Verify target discovery. Check that the code paginates every API response, searches the intended account and Region, and filters only the resources meant to be stopped. For tag-based targeting, compare the exact tag key, value, and schedule name against the resource.
- Inspect request pressure. Look for a burst of simultaneous calls, missing SDK retry and backoff behavior, exhausted Lambda concurrency, or a run approaching its timeout. Check the applicable service quotas in each deployed Region instead of relying on a quota remembered from another account or Region.
- Check permissions and resource state. Review IAM permissions, service control policies (SCPs), and applicable tag policies. Confirm that the requested operation matches the resource and its state: stopping an EC2 instance is not the same as terminating it. For RDS, verify the resource type and service state support the intended operation; the general scheduler support statement does not cover every RDS state transition or exception.
- Reconcile the result. Compare the intended target list with the resources that actually changed state. A successful invocation does not, by itself, prove that every target was processed.
For Instance Scheduler on AWS, AWS recommends keeping average Scheduling Request Lambda runtime below 90 seconds and peak runtime below four minutes; the handler timeout is five minutes. Treat those as operational guidance for that solution, not as a general Lambda limit or a guarantee that a particular fleet will fit. A run nearing the handler timeout needs investigation even if it has not yet failed.
Rank #2
Choose a scheduling approach for the fleet
The right option depends on whether you need EC2 only or both EC2 and RDS, how many accounts and Regions are involved, and whether your team wants managed scheduling or needs to own custom policy and recovery.
| Approach | Resource coverage | Scale and control model | Operational responsibility |
|---|---|---|---|
| Systems Manager Quick Setup Resource Scheduler | EC2 instances | Tag-based, event-driven start and stop at defined times. AWS documents up to 5,000 instances per Region per configuration; use multiple configurations above that documented maximum. | Configure tags and schedules, and account for its event-driven behavior: it does not continuously reconcile manually changed instance state. |
| Instance Scheduler on AWS | EC2 and RDS, along with other resource types listed by AWS | Uses tags, Lambda, EventBridge, and DynamoDB. It evaluates tagged resource state against schedule periods on its scheduling interval. AWS describes capacity in the thousands of EC2 instances and hundreds of RDS databases or clusters per scheduling target, subject to runtime, latency, and throttling. | Operate the solution’s account and Region topology, tags, IAM and encryption setup, CloudWatch monitoring, and failure recovery. |
| Custom Lambda and EventBridge automation | Set by your implementation | Can encode bespoke targeting and scheduling rules, but capacity depends on the code, invocation pattern, quotas, and downstream API behavior. | Your team owns discovery, pagination, batching, retries, idempotency, observability, and quota handling. |
When Quick Setup fits
Quick Setup is a documented option for tagged EC2 fleets where scheduled actions meet the requirement. Its limit is per Region and per configuration, so assess the fleet along both dimensions rather than treating 5,000 as a global total. Because the scheduler acts at defined times instead of continuously reconciling state, a manually started instance may remain running until a later scheduled action.
Rank #3
When Instance Scheduler fits
Consider Instance Scheduler when the schedule needs to cover both EC2 and RDS, or when centralized scheduling across accounts and Regions matches your operating model. Its larger-scale guidance is conditional: AWS warns that excessive throttling can reduce the solution’s upper scaling limits, despite built-in retry logic for temporary throttling. Measure actual runtime and API behavior in your own topology.
When custom automation fits
Keep a custom script or Lambda-based workflow when you need policy that managed configurations do not provide and your team can operate the whole failure path. Scaling it responsibly means limiting request bursts, handling pagination, retrying transient errors with backoff, making repeated runs safe, and emitting enough per-resource detail to recover from partial completion. AWS identifies Lambda plus EventBridge as an automation option; custom code is not inherently unreliable, but its operational responsibilities remain yours.
Rank #4
Check tags, monitoring, and partial failures
Tags are part of the scheduler’s control plane, not merely labels. Instance Scheduler may write up to six tags. AWS resources typically allow 50 tags, so resources already near that limit can run out of headroom; governance controls can also prevent informational tag writes. Inspect the resource’s existing tags and tag policies if scheduling or status updates fail.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Use CloudWatch logs and scheduler outcomes to identify which operation failed and on which resource. For Instance Scheduler, inspect error indicators such as StopFailed alongside the logs. A single summary line for a whole fleet is not enough to distinguish a permission problem on one resource from throttling or a timeout affecting many.
Best Value
Roll out changes with measured limits
- Start with a representative subset of resources in the intended account and Region, including the resource types and tags the production schedule will use.
- Measure run duration, per-resource outcomes, throttling, retries, and any tag-write or permission failures.
- Increase the target set in stages. If duration or throttling rises sharply, adjust the request pattern, concurrency, schedule topology, or target grouping before expanding further.
- Confirm the recovery path: identify failed resources, rerun safely, and verify the resulting resource states rather than assuming a retry completed the whole fleet.
- Before deployment, check the current Instance Scheduler release, supported Regions, and relevant quotas. AWS documentation cited here was accessed October 7, 2026; product guidance and quotas may change.
What scheduled shutdowns can save
AWS’s Instance Scheduler overview gives an illustrative example of “up to 70% cost savings” for instances needed only during regular business hours: reducing weekly running time from 168 hours to 50. That is a reduction in scheduled running hours in the example, not a promise of the same percentage reduction in a total AWS bill or a measured result for every deployment.
Decision
Do not replace or redesign a working schedule based on the number 300 alone. Find the first failed target and error, then address discovery, request pressure, runtime, permissions, tags, or resource state. For tagged EC2 fleets, Quick Setup offers a documented per-Region configuration limit; for schedules spanning EC2 and RDS, Instance Scheduler is the closer managed fit. Keep custom automation when its extra control justifies the team’s responsibility for retries, observability, and recovery.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




