LevelUpWith

Explore / AWS Certified Security - Specialty (SCS-C03) Exam Prep / Lesson 2

Lesson 2: Monitoring Requirements and Health Checks

[Content Domain 1: Detection – Task 1.1, Skills 1.1.1–1.1.2] Covers how to analyze a workload to decide what to monitor, then build a monitoring strategy from CloudWatch metrics, alarms and resource health checks such as Route 53 health checks.

Free to read, no account needed. Part of AWS Certified Security - Specialty (SCS-C03) Exam Prep.

By the end of this level you'll be able to

  • List a workload's monitoring requirements from its architecture, data sensitivity and threat model
  • Create a CloudWatch alarm and a Route 53 health check with the CLI, and wire them to an Amazon SNS topic
  • Choose between a metric alarm, a composite alarm and a health check for a given availability or security signal

Before we start

This course follows AWS's own SCS-C03 exam guide. The guide isn't reproduced here, and you can download it free from the AWS Certification site. Check the official exam page for the current length, price and languages. This course is independent of AWS and not endorsed by it, and no course can promise you a pass.

This level covers Domain 1: Detection (16%), Task 1.1, Skills 1.1.1 and 1.1.2: analyze workloads to determine monitoring requirements, then design and implement workload monitoring strategies (for example, by configuring resource health checks).

Decide what to monitor first

A common mistake is to turn on every metric and then drown in alerts. A better approach is to work like a building surveyor: look at the plans, find what's valuable, and work out how someone would break in. For any workload, go through three things:

  1. Architecture. List the public entry points, such as Route 53 names, load balancers, API Gateway stages and CloudFront distributions. List the dependencies too, such as databases and third-party APIs. Each entry point needs an outside-in health signal. Each component needs inside-out metrics.
  2. Data sensitivity. Where does regulated or confidential data live? The more sensitive the data, the tighter your thresholds and the faster your alerts need to reach people.
  3. Threat model. What does an attack look like in numbers? Credential stuffing shows up as a spike in 4xx responses on the login path. A DDoS shows up as a jump in request counts and latency. If the attack disables something, the signal is often missing data.

Here's a worked example: a customer portal behind an ALB, served at portal.example.com, holding PII.

Requirement Signal Mechanism
Is the portal reachable from the internet? Endpoint health Route 53 health check
Login abuse HTTPCode_Target_4XX_Count spike CloudWatch metric alarm
Real incident vs. noise 4xx spike and high latency together Composite alarm

Walkthrough 1: an SNS topic for alerts

Every alarm needs somewhere to send its alert.

# Route 53 health check metrics exist only in US East (N. Virginia),
# so build the alerting for them in us-east-1
aws sns create-topic --name sec-alerts --region us-east-1
# -> "TopicArn": "arn:aws:sns:us-east-1:111122223333:sec-alerts"

aws sns subscribe --region us-east-1 \
  --topic-arn arn:aws:sns:us-east-1:111122223333:sec-alerts \
  --protocol email --notification-endpoint secops@example.com
# Email subscriptions stay "PendingConfirmation" until someone clicks the link.

Walkthrough 2: a Route 53 health check

aws route53 create-health-check \
  --caller-reference portal-hc-2026-10-21 \
  --health-check-config '{
    "Type": "HTTPS_STR_MATCH",
    "FullyQualifiedDomainName": "portal.example.com",
    "Port": 443,
    "ResourcePath": "/health",
    "SearchString": "status:ok",
    "RequestInterval": 30,
    "FailureThreshold": 3
  }'
# caller-reference: a unique value that makes retries safe
# HTTPS_STR_MATCH: the body must contain the string, not just return 2xx/3xx
# RequestInterval: 10 or 30 seconds
# FailureThreshold: consecutive failures before a checker calls it unhealthy

How Route 53 decides:

  • Health checkers in locations around the world each probe the endpoint. For HTTP(S) checks, each checker needs a TCP connection within 4 seconds and a 2xx/3xx status code within 2 seconds after connecting.
  • With string matching, the string must appear in the first 5,120 bytes of the response body.
  • If more than 18% of checkers report the endpoint healthy, Route 53 considers it healthy. This stops one isolated network path from flapping the status.

There are three types of health check:

  • Endpoint: probes an IP address or domain name.
  • Calculated: a parent check that combines up to 255 child checks.
  • CloudWatch alarm: follows the alarm's data stream. It doesn't support cross-account alarms.

Gotcha: certificates. HTTPS health checks don't validate SSL/TLS certificates. An expired certificate won't fail the check, so monitor certificates some other way.

Gotcha: firewalls. If security groups or NACLs filter by source IP, allow the ROUTE53_HEALTHCHECKS ranges published in ip-ranges.json. Otherwise your own firewall makes a healthy endpoint look dead.

Walkthrough 3: alarm on the health check

A health check on its own doesn't notify anyone. You alarm on its metric, which lives in the AWS/Route53 namespace in us-east-1 only.

aws cloudwatch put-metric-alarm --region us-east-1 \
  --alarm-name portal-endpoint-unhealthy \
  --namespace AWS/Route53 --metric-name HealthCheckStatus \
  --dimensions Name=HealthCheckId,Value=abcd1234-ef56-7890-abcd-1234567890ab \
  --statistic Minimum --period 60 --evaluation-periods 1 \
  --threshold 1 --comparison-operator LessThanThreshold \
  --treat-missing-data breaching \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:sec-alerts
# HealthCheckStatus is 1 when healthy and 0 when unhealthy, so Minimum < 1 means it failed
# treat-missing-data breaching: for security, silence is suspicious, not fine

Expect a delay of several minutes between a failed check and the SNS email. Design your response time around that.

Walkthrough 4: a metric alarm and a composite alarm

The next alarm covers login abuse. It goes in the workload's own Region, which is eu-west-2 in this example.

aws cloudwatch put-metric-alarm --region eu-west-2 \
  --alarm-name portal-4xx-spike \
  --namespace AWS/ApplicationELB --metric-name HTTPCode_Target_4XX_Count \
  --dimensions Name=LoadBalancer,Value=app/portal-alb/50dc6c495c0c9188 \
  --statistic Sum --period 300 --evaluation-periods 2 \
  --threshold 500 --comparison-operator GreaterThanThreshold
# No --alarm-actions: this alarm is an input to the composite below

The composite alarm sends a page only when the abuse signal and a latency signal fire together:

aws cloudwatch put-composite-alarm --region eu-west-2 \
  --alarm-name portal-likely-attack \
  --alarm-rule 'ALARM("portal-4xx-spike") AND ALARM("portal-high-latency")' \
  --alarm-actions arn:aws:sns:eu-west-2:111122223333:sec-alerts-euw2
# Rule functions: ALARM(), OK(), INSUFFICIENT_DATA(); operators: AND, OR, NOT

The rule above refers to a second metric alarm, portal-high-latency, built the same way on the ALB's TargetResponseTime. It sends its alert to an SNS topic in eu-west-2, because each alarm sends to a topic in its own Region.

Composite alarms can also take an actions suppressor. While the suppressor alarm is in ALARM, for example during a maintenance window, the composite alarm takes no actions. Two cautions: don't create composite alarms that depend on each other, because the cycle stops their evaluation. And keep the child alarms' own notifications off, or you get the noise back.

Choosing the right tool

  • Metric alarm: one metric crosses one threshold. Examples are a 4xx spike, CPU usage, or a health check failing.
  • Composite alarm: several alarms combined with Boolean logic. Use it to cut noise, to ask for corroborating signals, or to suppress alerts during maintenance.
  • Route 53 health check: outside-in reachability and correctness from many locations. It can also drive DNS failover.

What the exam asks about this

Expect scenarios such as: "alerts are too noisy" (use a composite alarm), "we need to know if the public endpoint is reachable from the internet" (use a Route 53 health check plus a CloudWatch alarm and SNS), and "the alarm for the health check never appears" (it was created outside us-east-1). Firewall-blocked checkers and the gap in certificate validation also make good distractors.

Key takeaways

  • Work out monitoring requirements from the architecture, data sensitivity and threat model, then map each requirement to a signal.
  • A Route 53 health check calls an endpoint healthy when more than 18% of checkers report it healthy. Its metrics live only in us-east-1.
  • HTTPS health checks don't validate certificates. Allow the ROUTE53_HEALTHCHECKS IP ranges through your firewalls.
  • Use a metric alarm for one signal, a composite alarm to combine signals or cut noise, and a health check for outside-in availability.
  • For security alarms, consider treating missing data as breaching.

A 6-question knowledge check follows this lesson in the app, free and without an account.

Keep going: levels 3 and 4 are free

Create a free account to open the next two levels, save your progress and pick up where you left off. No card needed.

Next: Level 3, Amazon GuardDuty Across an Organization.

Create a free account →See the whole course

More like this

  • Cloud Pro: AWS Compute: Choose, Compare and Launch

    Profile any workload, score it against every AWS compute service from EC2, Spot and Capacity Blocks to Batch, PCS, ECS, EKS Auto Mode, Fargate, Lambda, Lightsa…

    Course · AWS · Cloud Pro: Choose and Use · Expert · 35 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Generative AI Developer - Professional (AIP-C01) Exam Prep

    Prepare for the AWS Certified Generative AI Developer - Professional (AIP-C01) exam by building on Amazon Bedrock with boto3 and the console. The course covers…

    Exam prep · AIP-C01 · AI & Agents · Expert · 59 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Cloud Practitioner (CLF-C02) Exam Prep

    Recognise every in-scope AWS service, reason through shared responsibility, Well-Architected, pricing and support scenarios, and answer multiple-choice and mul…

    Exam prep · CLF-C02 · Cloud & Compute · Expert · 42 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified AI Practitioner (AIF-C01) Exam Prep

    Work through all five AIF-C01 domains and every task statement so you can pick the right AI, ML or generative AI approach and the right AWS service for a busin…

    Exam prep · AIF-C01 · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Ultimate AWS SAA-C03 Mastery Path

    Master AWS Solutions Architecture across security, resilience, performance, and cost domains to confidently pass the SAA-C03 exam.

    Exam prep · SAA-C03 · Cloud & Compute · Expert · 45 levels · 4 free · Professionally curated by levelupwith.com

  • AWS Certified Developer - Associate (DVA-C02) Exam Prep

    Work through every domain, task and in-scope service of the AWS Certified Developer - Associate (DVA-C02) exam guide v2.1 at developer depth, with SDK and CLI…

    Exam prep · DVA-C02 · Cloud & Compute · Expert · 61 levels · 4 free · Professionally curated by levelupwith.com