How it works
Architecture overview
Uptime Scheduler is a SaaS platform with a lightweight agent that runs inside your AWS account. Your infrastructure data never leaves your account — only state change events are forwarded to the platform.
Your AWS Account┌─────────────────────────────────────────────────────────┐│ ││ uptime:schedule tag ││ │ ││ ▼ ││ CloudTrail ──► EventBridge ──► TagEventProcessor ││ │ ││ ▼ ││ DynamoDB ││ │ ││ ▼ ││ ScheduleManager ││ │ ││ ┌─────────────┴──────────┐ ││ ▼ ▼ ││ EventBridge SNS Topic ││ Scheduler │ ││ │ │ ││ ▼ │ ││ ActionProcessor │ ││ (EC2 / RDS / NAT / ECS) │ ││ │ │└───────────────────────────────────────────────┼────────┘ │ ▼ Uptime Scheduler Platform (Dashboard, Billing)Event flow
- You add
uptime:scheduleto an AWS resource tag - CloudTrail captures the tag change event
- EventBridge routes it to the TagEventProcessor Lambda
- TagEventProcessor writes the schedule to DynamoDB and creates EventBridge Scheduler rules via ScheduleManager
- At the scheduled time, an ActionProcessor Lambda starts or stops the resource
- State changes are forwarded to the Uptime Scheduler platform via SNS so the dashboard stays in sync
What runs in your account
A single CloudFormation stack deploys:
- Lambda functions — TagEventProcessor, ScheduleManager, action processors per resource type, EventStateProcessor, HeartbeatProcessor
- DynamoDB table — stores schedule records and resource metadata
- EventBridge rules — route CloudTrail events to the right Lambda
- SQS queue — buffers action requests
- SNS topic — forwards events to the platform
- IAM roles — least-privilege roles for each Lambda
The stack has no EC2 instances, no persistent compute, and no VPC resources. Running costs are minimal (typically under $1/month in Lambda and DynamoDB charges).