How Amazon Route 53 determines whether a health check is healthy (original) (raw)

The method that Amazon Route 53 uses to determine whether a health check is healthy depends on the type of health check.

Topics

How Route 53 determines the status of health checks that monitor an endpoint

Route 53 has health checkers in locations around the world. When you create a health check that monitors an endpoint, health checkers start to send requests to the endpoint that you specify to determine whether the endpoint is healthy. You can choose which locations you want Route 53 to use, and you can specify the interval between checks: every 10 seconds or every 30 seconds. Note that Route 53 health checkers in different data centers don't coordinate with one another, so you'll sometimes see several requests per second regardless of the interval you chose, followed by a few seconds with no health checks at all.

Each health checker evaluates the health of the endpoint based on two values:

Route 53 aggregates the data from the health checkers and determines whether the endpoint is healthy:

The 18% value was chosen to ensure that health checkers in multiple regions consider the endpoint healthy. This prevents an endpoint from being considered unhealthy only because network conditions have isolated the endpoint from some health-checking locations. This value might change in a future release.

The response time that an individual health checker uses to determine whether an endpoint is healthy depends on the type of health check:

Note

HTTPS health checks don't validate SSL/TLS certificates, so checks don't fail if a certificate is invalid or expired.

For health checks that monitor an endpoint (except TCP health checks), if the response from the endpoint includes any headers, the headers must be in the format that is defined in RFC7230, Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing, section 3.2, "Header Fields."

Route 53 considers a new health check to be healthy until there's enough data to determine the actual status, healthy or unhealthy. If you chose the option to invert the health check status, Route 53 considers a new health check to be_unhealthy_ until there's enough data.

How Route 53 determines the status of health checks that monitor other health checks

A health check can monitor the status of other health checks; this type of health check is known as a calculated health check. The health check that does the monitoring is the parent health check, and the health checks that are monitored are child health checks. One parent health check can monitor the health of up to 255 child health checks. Here's how the monitoring works:

For more information, see Monitoring other health checks (calculated health checks) in Values that you specify when you create or update health checks.

Route 53 considers a new health check to be healthy until there's enough data to determine the actual status, healthy or unhealthy. If you chose the option to invert the health check status, Route 53 considers a new health check to be_unhealthy_ until there's enough data. If you invert the health check, Route 53 treats a healthy endpoint as unhealthy and vice versa.

How Route 53 determines the status of health checks that monitor CloudWatch alarms

When you create a health check that is based on a CloudWatch alarm, Route 53 monitors the data stream for the corresponding alarm instead of monitoring the alarm state. If the data stream indicates that the state of the alarm is OK, the health check is considered healthy. If the data stream indicates that the state is Alarm, the health check is considered unhealthy. If the data stream doesn't provide enough information to determine the state of the alarm, the health check status depends on the setting for Health check status: healthy, unhealthy, or last known status. (In the Route 53 API, this setting is InsufficientDataHealthStatus.)

Route 53 doesn't support cross-account CloudWatch alarms.

Note

Because Route 53 health checks monitor CloudWatch data streams instead of the state of CloudWatch alarms, you can't force the status of a health check to change by using the CloudWatch SetAlarmState API operation.

Route 53 considers a new health check to be healthy until there's enough data to determine the actual status, healthy or unhealthy. If you chose the option to invert the health check status, Route 53 considers a new health check to be_unhealthy_ until there's enough data. If you invert the health check, Route 53 treats a healthy endpoint as unhealthy and vice versa.