What monitoring does a small SaaS need in production on AWS?
By the Keel team · Last checked · 4 min read
Short answer
A small SaaS on AWS needs four things in production: an outside check that the site works, alarms on load balancer errors and unhealthy targets, basic database alarms, and a shared channel where alerts land. Alert only on what customers feel, test that the alerts really arrive, and add dashboards later. More monitoring is not better if nobody acts on it.
60 seconds
Interval at which ALB metrics are sent while requests are flowing
Source: AWS docs, Oct 2026
4
Things a small SaaS needs at minimum: outside check, load balancer alarms, database alarms, and a shared alert channel
Source: This guide
Why does a small SaaS need monitoring before it needs dashboards?
A small SaaS needs alerts before dashboards because the first goal is to hear about a problem before your customers tell you.
A dashboard shows what happened if someone looks; an alarm tells someone when to look.
Start with a small set of alerts that all mean the same thing: customers are affected now. Every extra alert that fires for something harmless makes the real ones easier to ignore.
What is the minimum monitoring for production on AWS?
The minimum is an outside uptime check, alarms on your load balancer, alarms on your database and a place where alerts are read.
An outside check matters because it tests the whole path a customer takes, including DNS and certificates, which AWS metrics inside your account do not.
| What | Signal | Why it matters |
|---|---|---|
| Outside uptime check | Homepage or health endpoint, every minute or so | Proves a customer can reach you |
| Load balancer errors | HTTPCode_Target_5XX_Count | Your app is returning server errors |
| Unhealthy targets | UnHealthyHostCount | Containers are failing health checks |
| Slow responses | TargetResponseTime, using a percentile | Customers feel it before it fails |
| Database basics | CPU, free storage and connections | The usual causes of a database outage |
| Failed deploys | ECS deployment alarms | A release that did not take |
Which load balancer metrics should you alarm on?
Alarm on server errors, unhealthy targets and response time.
In the AWS Application Load Balancer metrics, HTTPCode_Target_5XX_Count counts error responses generated by your targets, and AWS says the most useful statistic is Sum. UnHealthyHostCount counts targets considered unhealthy, and TargetResponseTime is best read as an average or a percentile.
One catch from the AWS documentation: load balancer metrics are sent in 60-second intervals only while requests are flowing, and a metric with no data is not reported. For a low-traffic product, decide how each alarm should treat missing data, or a quiet night can hide a problem or raise a false alarm.
How do you get an alert to actually reach someone?
Send the alarm to an Amazon SNS topic, subscribe a channel people read, and test it.
AWS says a metric alarm can send a notification to an SNS topic, and also warns that CloudWatch does not test or validate the actions you specify, so a typo in the topic can leave you with an alarm that fires into nothing.
- Subscribe a shared Slack channel or group address, not one person's inbox.
- Trigger each alarm once on purpose and confirm the message arrives.
- Remember alarms act only when their state changes, so a long-running problem does not repeat the alert.
- Name an owner for each alert and write down the first thing to check.
What should never wake someone up?
Anything customers cannot feel should wait until working hours: a disk at 70%, one slow request or a single failed background job.
Reserve night-time alerts for the product being down, logins or payments failing, or data at risk.
How a small startup handles on-call gives a table of what to page, ticket or ignore. Pair it with automatic rollback, as in rolling back an ECS deployment automatically, so a bad release fixes itself before anyone is paged.
How do health checks fit into monitoring?
Health checks are the monitoring the platform acts on by itself: they decide whether a container receives traffic and whether a deployment succeeds.
A health check that only returns OK without testing anything gives false comfort, so make it check something real such as database connectivity.
What a deployment health check should test covers the design. Alarms then cover the cases the health check cannot, such as a service that is up but returning errors. Add dashboards, such as Grafana, only once these alerts are quiet and trusted.
Can a very small team get monitoring set up without hiring?
A very small team can get monitoring set up without hiring through Keel's Startup programme, which includes monitoring as part of its foundation-level service for teams of fewer than 5 who are live on AWS with at least one paying customer, together with a deploy pipeline with rollback, tested backups and monthly patching, in your own AWS account.
It connects with Slack and Grafana.
It is listed at £699 a month, month to month, with places limited and awarded on merit. If that fits, apply for a place in the pricing section; if not, the set above is a sound do-it-yourself start.
Would you hear about an outage before your customers?
Tick each item that is true today.
- An outside check tests your site every minute or so.
- Alarms exist for server errors and unhealthy targets.
- Database CPU, storage and connections have alarms.
- Alerts go to a shared channel that more than one person reads.
- You have triggered each alarm on purpose to prove it arrives.
- Each alert has an owner and a first thing to check.
Decision point: Five or six ticks: you will usually hear first. Three or fewer: a customer will probably tell you before your alarms do.
Sources
- AWS docs, CloudWatch metrics for your Application Load Balancer (checked October 2026)
- AWS docs, Using Amazon CloudWatch alarms (checked October 2026)
- AWS docs, Health checks for Application Load Balancer target groups (checked October 2026)
- AWS docs, How CloudWatch alarms detect Amazon ECS deployment failures (checked October 2026)
Keep reading
Keel is an AWS release and recovery operations service for SaaS teams of 3 to 15 developers, provided by Bargainn Services Ltd, a UK company registered at Companies House (16497746). Registered office: 3rd Floor, 86-90 Paul Street, London, EC2A 4NE, United Kingdom.