Single EC2 Server
One t3.micro Amazon Linux 2023 instance in a public subnet, with SSM shell access, the CloudWatch agent, and daily AWS Backup snapshots. No load balancer, no database.
What you can build with this
A single always-on Linux box for a hobby project, bot, cron job, or learning EC2 hands-on. The AMI resolves to the latest Amazon Linux 2023 at deploy time via an SSM public parameter (never a stale hardcoded AMI ID), and the instance gets a public IP from its subnet. You get a shell through SSM Session Manager — the attached instance role includes AmazonSSMManagedInstanceCore, so no key pair, bastion, or working SSH is needed (or created). Also baked in: an encrypted 20 GB gp3 root volume, IMDSv2 enforced, the CloudWatch agent installed at first boot (OS logs + memory/disk metrics), and an AWS Backup plan that snapshots the instance daily.
Deployment timing
After you run the deploy command, resources come online at different times. Check the validation steps in order.
| Resource | Ready in |
|---|---|
| VPC, subnet, security group | 1–2 min |
| EC2 instance launched | 2–4 min |
| Registered with SSM (shell access works) | 3–5 min |
| CloudWatch agent logs/metrics flowing | 5–10 min after boot |
| First backup snapshot | Next 02:00 UTC daily window |
CloudFormation parameters
These are the values you will fill in when deploying the exported template. Changing these does not break the template — that is the point.
| Parameter | What to provide | Example |
|---|---|---|
| Environment | Environment tag applied to resources (does not rename them) | dev |