Amazon Route 53
API Reference


A complex type that contains information about an optional custom health check. A custom health check, which requires that you use a third-party health checker to evaluate the health of your resources, is useful in the following circumstances:

  • You can't use a health check that is defined by HealthCheckConfig because the resource isn't available over the internet. For example, you can use a custom health check when the instance is in an Amazon VPC. (To check the health of resources in a VPC, the health checker must also be in the VPC.)

  • You want to use a third-party health checker regardless of where your resources are.


If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

To change the status of a custom health check, submit an UpdateInstanceCustomHealthStatus request. Service discovery doesn't monitor the status of the resource, it just keeps a record of the status specified in the most recent UpdateInstanceCustomHealthStatus request.

Here's how custom health checks work:

  1. You create a service and specify a value for FailureThreshold.

    The failure threshold indicates the number of 30-second intervals you want Route 53 to wait between the time that your application sends an UpdateInstanceCustomHealthStatus request and the time that Route 53 stops routing internet traffic to the corresponding resource.

  2. You register an instance.

  3. You configure a third-party health checker to monitor the resource that is associated with the new instance.


    Route 53 doesn't check the health of the resource directly.

  4. The third-party health-checker determines that the resource is unhealthy and notifies your application.

  5. Your application submits an UpdateInstanceCustomHealthStatus request.

  6. Route 53 waits for (FailureThreshold x 30) seconds.

  7. If another UpdateInstanceCustomHealthStatus request doesn't arrive during that time to change the status back to healthy, Route 53 stops routing traffic to the resource.

Note the following about configuring custom health checks.

Request interval

A Route 53 health checker in each health-checking region sends a request every 30 seconds to see whether the custom health check has exceeded the failure threshold. Route 53 aggregates the results to determine whether the health check is healthy.

Health-checking regions

Health checkers perform checks from all Route 53 health-checking regions. For a list of the current regions, see Regions.

Alias records

When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, Route 53 creates an alias record. Note the following:

  • Route 53 automatically sets EvaluateTargetHealth to true for alias records. When EvaluateTargetHealth is true, the alias record inherits the health of the referenced AWS resource. such as an ELB load balancer. For more information, see EvaluateTargetHealth.

  • If you include HealthCheckCustomConfig and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check.

Charges for custom health checks

Custom health checks are basic Route 53 health checks that monitor an AWS endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing.



The number of 30-second intervals that you want service discovery to wait after receiving an UpdateInstanceCustomHealthStatus request before it changes the health status of a service instance. For example, suppose you specify a value of 2 for FailureTheshold, and then your application sends an UpdateInstanceCustomHealthStatus request. Service discovery waits for approximately 60 seconds (2 x 30) before changing the status of the service instance based on that request.

Sending a second or subsequent UpdateInstanceCustomHealthStatus request with the same value before FailureThreshold x 30 seconds has passed doesn't accelerate the change. Service discovery still waits FailureThreshold x 30 seconds after the first request to make the change.

Type: Integer

Valid Range: Minimum value of 1. Maximum value of 10.

Required: No

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following:

On this page: