I want to use Amazon Route 53 traffic flow to route DNS traffic to multiple resources by creating traffic policies. How can I create traffic policy records in Route 53 using the AWS Command Line Interface (AWS CLI)?

Note: You can also create traffic policies through the Route 53 console.

Create a traffic policy with the AWS CLI

Create a JSON file that defines your traffic policy configuration. Refer to Traffic Policy Document Format for basic syntax, endpoints, and rules.

Use the command create-traffic-policy with your own parameters to create your traffic policy in the AWS CLI:

$ aws route53 create-traffic-policy --name <Value> --document file://<Full Path for JSON file>

The following parameters are required:

  • --name
  • --document

The following parameters are optional:

  • --comment
  • --cli-input-json
  • --generate-cli-skeleton

In the output, note the traffic policy ID and version number.

Example output format:

{
  "TrafficPolicy": {
    "Document": <JSON_Document>,
    "Version": <Version_Number>,
    "Type": "<Policy_Type>",
    "Id": "<Traffic_Policy_ID>",
    "Name": "<Policy_Name>"
  }
}

Create a traffic policy record using the create-traffic-policy-instance API call:

$ aws route53 create-traffic-policy-instance --hosted-zone-id <value> --name <value> --ttl <value> --traffic-policy-id <value> --traffic-policy-version <value>

Example traffic policy

The following example traffic policy creates a weighted record that points to two endpoints.

Note that the policy specifies:

  • The current policy format version (AWSPolicyFormatVersion)
  • The record type (RecordType). Configure this value based on your endpoint type. In this example, the record type is A.
  • Two endpoints (EndPointReference) that point to IP addresses (Type)
  • Weighted rules (RuleType) and a different weight for each endpoint (Weight)
  • The traffic policy's starting point. In this example, StartRule specifies the policy starts with a rule instead of an endpoint (StartEndpoint).
  • The health check setting (EvaluateTargetHealth), which you can configure further with HealthCheck. In this example, no health check is performed.
{
  "AWSPolicyFormatVersion": "2015-10-01",
  "RecordType": "A",
  "Endpoints": {
    "endpoint-1": {
      "Type": "value",
      "Value": "192.0.1.1"
      },
    "endpoint-2": {
      "Type": "value",
      "Value": "192.0.1.2"
      }
    },
  "Rules": {
    "weighted-rule-name": {
      "RuleType": "weighted",
      "Items": [
        {"Weight": "30",
        "EvaluateTargetHealth": true,
        "EndpointReference": "endpoint-1"
        },
        {"Weight": "20",
        "EvaluateTargetHealth": false,
        "EndpointReference": "endpoint-2"
        }
      ]
    }
  },
  "StartRule": "weighted-rule-name"
}

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2018-08-24