Menu
Amazon Route 53
API Reference

CreateHealthCheck

Creates a new health check.

For information about adding health checks to resource record sets, see ResourceRecordSet:HealthCheckId in ChangeResourceRecordSets.

ELB Load Balancers

If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to an Amazon Route 53 health check.

Private Hosted Zones

You can associate health checks with failover resource record sets in a private hosted zone. Note the following:

  • Amazon Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC.

  • You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server.

  • You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the Amazon CloudWatch User Guide.

Request Syntax

POST /2013-04-01/healthcheck HTTP/1.1
<?xml version="1.0" encoding="UTF-8"?>
<CreateHealthCheckRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
   <CallerReference>string</CallerReference>
   <HealthCheckConfig>
      <AlarmIdentifier>
         <Name>string</Name>
         <Region>string</Region>
      </AlarmIdentifier>
      <ChildHealthChecks>
         <ChildHealthCheck>string</ChildHealthCheck>
      </ChildHealthChecks>
      <EnableSNI>boolean</EnableSNI>
      <FailureThreshold>integer</FailureThreshold>
      <FullyQualifiedDomainName>string</FullyQualifiedDomainName>
      <HealthThreshold>integer</HealthThreshold>
      <InsufficientDataHealthStatus>string</InsufficientDataHealthStatus>
      <Inverted>boolean</Inverted>
      <IPAddress>string</IPAddress>
      <MeasureLatency>boolean</MeasureLatency>
      <Port>integer</Port>
      <Regions>
         <Region>string</Region>
      </Regions>
      <RequestInterval>integer</RequestInterval>
      <ResourcePath>string</ResourcePath>
      <SearchString>string</SearchString>
      <Type>string</Type>
   </HealthCheckConfig>
</CreateHealthCheckRequest>

URI Request Parameters

The request does not use any URI parameters.

Request Body

The request accepts the following data in XML format.

CreateHealthCheckRequest

Root level tag for the CreateHealthCheckRequest parameters.

Required: Yes

CallerReference

A unique string that identifies the request and that allows you to retry a failed CreateHealthCheck request without the risk of creating two identical health checks:

  • If you send a CreateHealthCheck request with the same CallerReference and settings as a previous request, and if the health check doesn't exist, Amazon Route 53 creates the health check. If the health check does exist, Amazon Route 53 returns the settings for the existing health check.

  • If you send a CreateHealthCheck request with the same CallerReference as a deleted health check, regardless of the settings, Amazon Route 53 returns a HealthCheckAlreadyExists error.

  • If you send a CreateHealthCheck request with the same CallerReference as an existing health check but with different settings, Amazon Route 53 returns a HealthCheckAlreadyExists error.

  • If you send a CreateHealthCheck request with a unique CallerReference but settings identical to an existing health check, Amazon Route 53 creates the health check.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Required: Yes

HealthCheckConfig

A complex type that contains the response to a CreateHealthCheck request.

Type: HealthCheckConfig object

Required: Yes

Response Syntax

HTTP/1.1 201
Location: Location
<?xml version="1.0" encoding="UTF-8"?>
<CreateHealthCheckResponse>
   <HealthCheck>
      <CallerReference>string</CallerReference>
      <CloudWatchAlarmConfiguration>
         <ComparisonOperator>string</ComparisonOperator>
         <Dimensions>
            <Dimension>
               <Name>string</Name>
               <Value>string</Value>
            </Dimension>
         </Dimensions>
         <EvaluationPeriods>integer</EvaluationPeriods>
         <MetricName>string</MetricName>
         <Namespace>string</Namespace>
         <Period>integer</Period>
         <Statistic>string</Statistic>
         <Threshold>double</Threshold>
      </CloudWatchAlarmConfiguration>
      <HealthCheckConfig>
         <AlarmIdentifier>
            <Name>string</Name>
            <Region>string</Region>
         </AlarmIdentifier>
         <ChildHealthChecks>
            <ChildHealthCheck>string</ChildHealthCheck>
         </ChildHealthChecks>
         <EnableSNI>boolean</EnableSNI>
         <FailureThreshold>integer</FailureThreshold>
         <FullyQualifiedDomainName>string</FullyQualifiedDomainName>
         <HealthThreshold>integer</HealthThreshold>
         <InsufficientDataHealthStatus>string</InsufficientDataHealthStatus>
         <Inverted>boolean</Inverted>
         <IPAddress>string</IPAddress>
         <MeasureLatency>boolean</MeasureLatency>
         <Port>integer</Port>
         <Regions>
            <Region>string</Region>
         </Regions>
         <RequestInterval>integer</RequestInterval>
         <ResourcePath>string</ResourcePath>
         <SearchString>string</SearchString>
         <Type>string</Type>
      </HealthCheckConfig>
      <HealthCheckVersion>long</HealthCheckVersion>
      <Id>string</Id>
      <LinkedService>
         <Description>string</Description>
         <ServicePrincipal>string</ServicePrincipal>
      </LinkedService>
   </HealthCheck>
</CreateHealthCheckResponse>

Response Elements

If the action is successful, the service sends back an HTTP 201 response.

The response returns the following HTTP headers.

Location

The unique URL representing the new health check.

Length Constraints: Maximum length of 1024.

The following data is returned in XML format by the service.

CreateHealthCheckResponse

Root level tag for the CreateHealthCheckResponse parameters.

Required: Yes

HealthCheck

A complex type that contains identifying information about the health check.

Type: HealthCheck object

Errors

For information about the errors that are common to all actions, see Common Errors.

HealthCheckAlreadyExists

The health check you're attempting to create already exists. Amazon Route 53 returns this error when you submit a request that has the following values:

  • The same value for CallerReference as an existing health check, and one or more values that differ from the existing health check that has the same caller reference.

  • The same value for CallerReference as a health check that you created and later deleted, regardless of the other settings in the request.

HTTP Status Code: 409

InvalidInput

The input is not valid.

HTTP Status Code: 400

TooManyHealthChecks

This health check can't be created because the current account has reached the limit on the number of active health checks.

For information about default limits, see Limits in the Amazon Route 53 Developer Guide.

For information about how to get the current limit for an account, see GetAccountLimit. To request a higher limit, create a case with the AWS Support Center.

You have reached the maximum number of active health checks for an AWS account. To request a higher limit, create a case with the AWS Support Center.

HTTP Status Code: 400

Examples

Request Syntax for HTTP[S], HTTP[S]_STR_MATCH, and TCP Health Checks

Copy
POST /2013-04-01/healthcheck HTTP/1.1 <?xml version="1.0" encoding="UTF-8"?> <CreateHealthCheckRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <IPAddress>IP address of the endpoint to check</IPAddress> <Port>port on the endpoint to check</Port> <Type>HTTP | HTTPS | HTTP_STR_MATCH | HTTPS_STR_MATCH | TCP</Type> <ResourcePath>path of the file that you want Amazon Route 53 to request</ResourcePath> <FullyQualifiedDomainName>domain name of the endpoint to check</FullyQualifiedDomainName> <SearchString>if Type is HTTP_STR_MATCH or HTTPS_STR_MATCH, the string to search for in the response body from the specified resource</SearchString> <RequestInterval>10 | 30</RequestInterval> <FailureThreshold>number of health checks that must pass or fail to change the status of the health check</FailureThreshold> <MeasureLatency>true | false</MeasureLatency> <EnableSNI>true | false</EnableSNI> <Regions> <Region>us-west-1 | us-west-2 | us-east-1 | eu-west-1 | ap-southeast-1 | ap-southeast-2 | ap-northeast-1 | sa-east-1</Region> ... </Regions> <Inverted>true | false</Inverted> </HealthCheckConfig> </CreateHealthCheckRequest>

Response Syntax for HTTP[S], HTTP[S]_STR_MATCH, and TCP Health Checks

Copy
HTTP/1.1 201 Created <?xml version="1.0" encoding="UTF-8"?> <CreateHealthCheckResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <HealthCheck> <Id>ID that Amazon Route 53 assigned to the new health check</Id> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <IPAddress>IP address of the endpoint to check</IPAddress> <Port>port on the endpoint to check</Port> <Type>HTTP | HTTPS | HTTP_STR_MATCH | HTTPS_STR_MATCH | TCP</Type> <ResourcePath>path of the file that you want Amazon Route 53 to request</ResourcePath> <FullyQualifiedDomainName>domain name of the endpoint to check</FullyQualifiedDomainName> <SearchString>if Type is HTTP_STR_MATCH or HTTPS_STR_MATCH, the string to search for in the response body from the specified resource</SearchString> <RequestInterval>10 | 30</RequestInterval> <FailureThreshold>number of health checks that must pass or fail to change the status of the health check</FailureThreshold> <MeasureLatency>true | false</MeasureLatency> <EnableSNI>true | false</EnableSNI> <Regions> <Region>us-west-1 | us-west-2 | us-east-1 | eu-west-1 | ap-southeast-1 | ap-southeast-2 | ap-northeast-1 | sa-east-1</Region> ... </Regions> <Inverted>true | false</Inverted> </HealthCheckConfig> <HealthCheckVersion>sequential counter</HealthCheckVersion> </HealthCheck> </CreateHealthCheckResponse>

Request Syntax for CLOUDWATCH_METRIC Health Checks

Copy
POST /2013-04-01/healthcheck HTTP/1.1 <?xml version="1.0" encoding="UTF-8"?> <CreateHealthCheckRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <Type>CLOUDWATCH_METRIC</Type> <AlarmIdentifier> <Name>name of CloudWatch alarm</Name> <Region>region that CloudWatch alarm was created in</Region> </AlarmIdentifier> <InsufficientDataHealthStatus>Healthy | Unhealthy | LastKnownStatus</InsufficientDataHealthStatus> <Inverted>true | false</Inverted> </HealthCheckConfig> </CreateHealthCheckRequest>

Response Syntax for CLOUDWATCH_METRIC Health Checks

Copy
POST /2013-04-01/healthcheck HTTP/1.1 <?xml version="1.0" encoding="UTF-8"?> <CreateHealthCheckResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <HealthCheck> <Id>ID that Amazon Route 53 assigned to the new health check</Id> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <Type>CLOUDWATCH_METRIC</Type> <AlarmIdentifier> <Name>name of CloudWatch alarm</Name> <Region>region of CloudWatch alarm</Region> </AlarmIdentifier> <InsufficientDataHealthStatus>Healthy | Unhealthy | LastKnownStatus</InsufficientDataHealthStatus> <Inverted>true | false</Inverted> </HealthCheckConfig> <CloudWatchAlarmConfiguration> <EvaluationPeriods>number of periods that metric is compared to threshold</EvaluationPeriods> <Threshold>value the metric is compared with</Threshold> <ComparisonOperator>GreaterThanOrEqualToThreshold | GreaterThanThreshold | LessThanThreshold | LessThanOrEqualToThreshold</ComparisonOperator> <Period>duration of a period in seconds</Period> <MetricName>name of the metric that's associated with the alarm</MetricName> <Namespace>namespace of the metric that the alarm is associated with</Namespace> <Statistic>statistic applied to the CloudWatch metric</Statistic> <Dimensions> <Dimension> <Name>name of a dimension for the metric</Name> <Value>value of a dimension for the metric</Value> </Dimension> ... </Dimensions> </CloudWatchAlarmConfiguration> <HealthCheckVersion>sequential counter</HealthCheckVersion> </HealthCheck> </CreateHealthCheckResponse>

Request Syntax for CALCULATED Health Checks

Copy
POST /2013-04-01/healthcheck HTTP/1.1 <?xml version="1.0" encoding="UTF-8"?> <CreateHealthCheckRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <Type>CALCULATED</Type> <HealthThreshold>number of the health checks that are associated with a CALCULATED health check that must be healthy</HealthThreshold> <ChildHealthChecks> <ChildHealthCheck>health check ID</ChildHealthCheck> ... </ChildHealthChecks> <Inverted>true | false</Inverted> </HealthCheckConfig> </CreateHealthCheckRequest>

Response Syntax for CALCULATED Health Checks

Copy
HTTP/1.1 201 Created <?xml version="1.0" encoding="UT2F-8"?> <CreateHealthCheckResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/"> <HealthCheck> <Id>ID that Amazon Route 53 assigned to the new health check</Id> <CallerReference>unique description</CallerReference> <HealthCheckConfig> <Type>CALCULATED</Type> <HealthThreshold>number of health checks that are associated with a CALCULATED health check that must be healthy</HealthThreshold> <ChildHealthChecks> <ChildHealthCheck>health check ID</ChildHealthCheck> ... </ChildHealthChecks> <Inverted>true | false</Inverted> </HealthCheckConfig> <HealthCheckVersion>sequential counter</HealthCheckVersion> </HealthCheck> </CreateHealthCheckResponse>

See Also

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