Bird
Raised Fist0
AWScloud~5 mins

Health checks configuration in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
Health checks help make sure your app or server is working well. They check if your service is alive and ready to handle requests. If a service is not healthy, AWS can stop sending traffic to it until it recovers.
When you want to automatically remove a broken server from your load balancer so users don't get errors.
When you run a website and want to make sure only healthy servers get user traffic.
When you deploy a new version of your app and want to check if it starts correctly before sending traffic.
When you want to monitor the health of your backend services in AWS Elastic Load Balancer.
When you want to reduce downtime by quickly detecting and replacing unhealthy instances.
Config File - health-check.json
health-check.json
{
  "HealthCheck": {
    "Target": "HTTP:80/health",
    "Interval": 30,
    "Timeout": 5,
    "UnhealthyThreshold": 2,
    "HealthyThreshold": 3
  }
}

This JSON configures a health check for an AWS Elastic Load Balancer.

  • Target: The protocol, port, and path to check (HTTP on port 80, path /health).
  • Interval: How often (in seconds) AWS checks the health.
  • Timeout: How long to wait for a response before marking it failed.
  • UnhealthyThreshold: Number of failed checks before marking instance unhealthy.
  • HealthyThreshold: Number of successful checks before marking instance healthy again.
Commands
This command applies the health check configuration to the load balancer named 'my-load-balancer'. It tells AWS how to check if instances are healthy.
Terminal
aws elb configure-health-check --load-balancer-name my-load-balancer --health-check file://health-check.json
Expected OutputExpected
{ "HealthCheck": { "Target": "HTTP:80/health", "Interval": 30, "Timeout": 5, "UnhealthyThreshold": 2, "HealthyThreshold": 3 } }
→
--load-balancer-name - Specifies the name of the load balancer to configure.
→
--health-check - Points to the JSON file with health check settings.
This command checks the current configuration of the load balancer to verify the health check settings were applied.
Terminal
aws elb describe-load-balancers --load-balancer-names my-load-balancer
Expected OutputExpected
{ "LoadBalancerDescriptions": [ { "LoadBalancerName": "my-load-balancer", "HealthCheck": { "Target": "HTTP:80/health", "Interval": 30, "Timeout": 5, "UnhealthyThreshold": 2, "HealthyThreshold": 3 } } ] }
→
--load-balancer-names - Specifies which load balancer to describe.
Key Concept

If you remember nothing else from this pattern, remember: health checks tell AWS when to send or stop sending traffic to your servers based on their real-time health.

Common Mistakes
Setting the health check path to a URL that does not return a simple success response.
The load balancer will mark instances unhealthy because it expects a quick, clear success response like HTTP 200.
Use a dedicated lightweight endpoint like /health that returns HTTP 200 when the app is healthy.
Setting the timeout longer than the interval between checks.
This causes overlapping checks and can confuse the health status results.
Set the timeout shorter than the interval, for example timeout 5 seconds and interval 30 seconds.
Not applying the health check configuration to the correct load balancer name.
The changes won't affect the intended load balancer, so unhealthy instances won't be detected properly.
Double-check the load balancer name matches exactly when running the configure-health-check command.
Summary
Create a JSON file defining the health check settings like target URL, interval, and thresholds.
Use the AWS CLI command to apply this health check configuration to your load balancer.
Verify the health check settings by describing the load balancer configuration.

Practice

(1/5)
1. What is the main purpose of a health check in AWS services like Elastic Load Balancer?
easy
A. To verify if a server or service is responding correctly
B. To increase the server's CPU capacity automatically
C. To backup data from the server regularly
D. To encrypt data sent between servers

Solution

  1. Step 1: Understand the role of health checks

    Health checks monitor if a server or service is working properly by sending requests and checking responses.
  2. Step 2: Identify the main goal

    The main goal is to detect unhealthy servers so they can be removed from traffic, ensuring reliability.
  3. Final Answer:

    To verify if a server or service is responding correctly -> Option A
  4. Quick Check:

    Health check purpose = verify server response [OK]
Hint: Health checks confirm server responsiveness, not capacity or backups [OK]
Common Mistakes:
  • Confusing health checks with scaling or backup tasks
  • Thinking health checks encrypt data
  • Assuming health checks improve server hardware
2. Which of the following is the correct way to configure a health check path for an HTTP service in AWS Elastic Load Balancer?
easy
A. HealthCheckInterval: 60
B. HealthCheckPath: "/status"
C. HealthCheckProtocol: TCP
D. HealthCheckPort: 8080

Solution

  1. Step 1: Identify the correct parameter for HTTP path

    For HTTP health checks, the path to check is set using HealthCheckPath with a URL path string.
  2. Step 2: Differentiate from other parameters

    HealthCheckPort sets the port, HealthCheckProtocol sets the protocol, and HealthCheckInterval sets the time between checks, not the path.
  3. Final Answer:

    HealthCheckPath: "/status" -> Option B
  4. Quick Check:

    HTTP health check path = HealthCheckPath [OK]
Hint: Path is set with HealthCheckPath, not port or interval [OK]
Common Mistakes:
  • Using HealthCheckPort to set the path
  • Confusing protocol with path
  • Setting interval instead of path
3. Given this health check configuration for a load balancer:
IntervalSeconds: 30
TimeoutSeconds: 5
HealthyThresholdCount: 3
UnhealthyThresholdCount: 2

How many consecutive failed health checks will cause the instance to be marked unhealthy?
medium
A. 30
B. 3
C. 5
D. 2

Solution

  1. Step 1: Understand UnhealthyThresholdCount meaning

    This value defines how many failed health checks in a row mark the instance unhealthy.
  2. Step 2: Identify the value from configuration

    UnhealthyThresholdCount is set to 2, so after 2 failed checks, the instance is unhealthy.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Failed checks to unhealthy = UnhealthyThresholdCount = 2 [OK]
Hint: UnhealthyThresholdCount = failed checks before unhealthy [OK]
Common Mistakes:
  • Confusing HealthyThresholdCount with unhealthy count
  • Using IntervalSeconds as count
  • Assuming timeout affects count
4. You configured a health check with TimeoutSeconds set to 10 seconds, but your service responds in 3 seconds. The health check still fails. What is the most likely cause?
medium
A. HealthyThresholdCount is set too low
B. TimeoutSeconds is too high causing failure
C. The health check path is incorrect or unreachable
D. IntervalSeconds is set to 1 second

Solution

  1. Step 1: Analyze TimeoutSeconds vs response time

    TimeoutSeconds is 10, service responds in 3 seconds, so timeout is not the issue.
  2. Step 2: Consider other causes for failure

    If health check fails despite quick response, likely the path is wrong or the service is unreachable.
  3. Final Answer:

    The health check path is incorrect or unreachable -> Option C
  4. Quick Check:

    Fast response but failure = wrong path/unreachable [OK]
Hint: Fast response but failure? Check health check path [OK]
Common Mistakes:
  • Assuming timeout too high causes failure
  • Confusing threshold counts with timeout
  • Ignoring path correctness
5. You want to configure a health check for a web service behind an AWS Application Load Balancer. The service sometimes takes up to 8 seconds to respond under load. Which configuration best ensures accurate health status without false failures?
hard
A. Set TimeoutSeconds to 10, IntervalSeconds to 30, HealthyThresholdCount to 3, UnhealthyThresholdCount to 2
B. Set TimeoutSeconds to 5, IntervalSeconds to 10, HealthyThresholdCount to 2, UnhealthyThresholdCount to 2
C. Set TimeoutSeconds to 3, IntervalSeconds to 5, HealthyThresholdCount to 5, UnhealthyThresholdCount to 5
D. Set TimeoutSeconds to 1, IntervalSeconds to 15, HealthyThresholdCount to 1, UnhealthyThresholdCount to 1

Solution

  1. Step 1: Match TimeoutSeconds to max response time

    The service can take up to 8 seconds, so TimeoutSeconds should be at least 8 to avoid false failures. Set TimeoutSeconds to 10, IntervalSeconds to 30, HealthyThresholdCount to 3, UnhealthyThresholdCount to 2 sets 10 seconds, which is suitable.
  2. Step 2: Choose thresholds and intervals for stability

    Longer IntervalSeconds (30) and thresholds (3 healthy, 2 unhealthy) help avoid flapping due to temporary slow responses.
  3. Step 3: Evaluate other options

    Options A, C, and D have TimeoutSeconds too low or thresholds too sensitive, risking false unhealthy marks.
  4. Final Answer:

    Set TimeoutSeconds to 10, IntervalSeconds to 30, HealthyThresholdCount to 3, UnhealthyThresholdCount to 2 -> Option A
  5. Quick Check:

    Timeout ≥ max response + stable thresholds = Set TimeoutSeconds to 10, IntervalSeconds to 30, HealthyThresholdCount to 3, UnhealthyThresholdCount to 2 [OK]
Hint: Timeout must exceed max response time to avoid false failures [OK]
Common Mistakes:
  • Setting TimeoutSeconds less than max response time
  • Using too low thresholds causing flapping
  • Ignoring service response variability
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard