API Monitoring Guide
Get alerted when AWS services have issues before your users notice downtime. Learn which services to monitor and how to set up proactive alerting for your infrastructure.
AWS runs a significant portion of the internet. When services like S3, Lambda, or API Gateway have issues, the blast radius is enormous. Your application may depend on dozens of AWS services, and an outage in any one of them can cascade through your entire stack. This guide covers how to monitor AWS from outside its own ecosystem.
AWS maintains a health dashboard at health.aws.amazon.com. So why set up external monitoring?
External monitoring from outside AWS catches issues that internal tools miss. If your monitoring runs on AWS and AWS is down, you won't know about it.
AWS APIs require Signature V4 authentication, so instead of monitoring APIs directly, create lightweight health check endpoints:
GET https://s3.{region}.amazonaws.com/{bucket}/health.txt
Upload a public health.txt file to S3. If it's unreachable, S3 in your region is down.
GET https://{api-id}.execute-api.{region}.amazonaws.com/health
API Gateway health endpoint. Create an unauthenticated /health route that returns 200.
GET https://{function-url}.lambda-url.{region}.on.aws/
Lambda function URL. Direct monitoring of your serverless functions without API Gateway.
GET https://your-app.{region}.elb.amazonaws.com/health
Your application's health endpoint behind an ALB/ELB. Tests the full stack.
GET https://{distribution}.cloudfront.net/health
CloudFront distribution health. Tests CDN availability for your static assets.
Strategy tip: Monitor your endpoints, not AWS's APIs directly. Create simple canary endpoints that exercise your AWS dependencies. A Lambda function that reads from S3 and writes to DynamoDB is a better health check than monitoring each service individually.
Upload a simple health.txt to a public S3 bucket. Add an unauthenticated /health route to your API Gateway. Create a Lambda function URL that tests your critical dependencies.
Create HTTP monitors for each health endpoint:
Set up alerts that work even when AWS is down:
If you run multi-region, add monitors for each region's health endpoints. AWS outages are almost always region-specific.
Configure your monitors to alert on these conditions:
For your health endpoints, check that the response body contains expected content (like "status":"healthy"). This catches cases where a CDN or load balancer returns a 200 with an error page instead of your actual application response.
When your monitoring alerts you to an AWS issue, here's how to respond:
Determine which region and services are affected. Check health.aws.amazon.com (if accessible) and Twitter for @AWSSupport. Your monitoring data will often be more current.
If you have multi-region infrastructure, failover to your backup region. Update DNS records (Route 53 in another region, or an external DNS provider) to route traffic away from the affected region.
Update your status page and notify affected customers. "We're experiencing issues due to an AWS service disruption" is better than silence.
If failover isn't available, enable a degraded mode: serve cached content, disable non-essential features, and queue operations for later processing. Even limited functionality is better than a full outage.
/health route, Lambda function URLs for serverless, and your application's health endpoint. Monitor the services you depend on, not all of AWS.
Add your AWS endpoints to your monitors and get alerted on issues instantly. Free tier includes 25 monitors.
Start monitoring free →No credit card required. Commercial use allowed.