Generated banner for Route53
Generated logo for Route53

Route53

AWSOfficialPublished by AWS

  • Skill
  • Tool integration
  • Cloud and DevOps
  • Apache-2.0
  • No issues found

From the author

Configures Amazon Route 53 DNS: public and private records, traffic-steering routing policies, health checks, DNS Firewall, Route 53 Profiles, VPC Resolver (also known as Route 53 Resolver) for hybrid and Outposts networks, and Global Resolver. Applicable when the customer wants to point a hostname at a target, split or fail over traffic across endpoints, monitor an endpoint, block malicious domains, centralize DNS across accounts, or resolve private DNS across a hybrid network. Routes to the right per-task procedure in references. Does not cover CloudFront-specific setup or non-DNS networking.
— the description by AWS

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides comprehensive domain expertise for managing Amazon Route 53 DNS configurations. It acts as a router to specific, self-contained procedures for tasks ranging from basic public DNS record creation to complex hybrid network resolution, traffic steering, and security-focused DNS Firewall management. It emphasizes best practices for IAM security, DNS transport encryption, and scalable configuration management across multi-account environments.

What it does

  • Maps hostnames to IPs, AWS resources, or other hostnames via public DNS records.
  • Implements traffic-steering policies like weighted routing and failover for disaster recovery.
  • Configures health checks to monitor endpoint availability and trigger alerts.
  • Secures VPC traffic by blocking malicious domains using DNS Firewall.
  • Centralizes DNS configurations and security rules across multiple accounts using Route 53 Profiles or Firewall Manager.
  • Enables hybrid network resolution and manages VPC Resolver configurations for Outposts.

When to use it

  • When you need to point a domain or subdomain to an AWS resource or external IP.
  • When implementing blue/green deployments or canary releases using weighted routing.
  • When setting up high-availability architectures requiring cross-region failover.
  • When you need to filter malicious DNS queries within a VPC.
  • When managing DNS configurations at scale across an AWS Organization.
  • When resolving private DNS queries between on-premises networks and AWS VPCs.

Advantages

  • Provides structured, step-by-step procedures for complex DNS tasks.
  • Includes critical security constraints for IAM and DNS transport.
  • Offers clear decision frameworks for choosing between routing policies or centralization methods.
  • Ensures consistent configuration by routing to specialized, self-contained reference files.
  • Supports both sandboxed execution via AWS MCP and standard AWS CLI fallback.

Usage examples

“How do I point my domain example.com to an S3 bucket?”
The agent will guide you through the 'creating a public DNS record' procedure to map your domain to the S3 bucket endpoint.
“I need to block known malicious domains for all my VPCs.”
The agent will direct you to the 'centralizing DNS Firewall' procedure to deploy protection across your organization.
“How can I fail over traffic between two regions?”
The agent will provide the 'configuring failover routing' steps, including setting up the necessary health checks.
“How do I resolve private DNS between my on-premises network and AWS?”
The agent will walk you through the 'resolving private DNS for hybrid networks' procedure.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/aws/route53/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip route53.zip -d .agents/skills

Documentation by AWS

Amazon Route 53

Overview

Domain expertise for configuring Amazon Route 53 DNS across the public and private resolution paths: hosted zone records, traffic-steering routing policies, health checks, DNS Firewall, Route 53 Profiles, VPC Resolver (also known as Route 53 Resolver) for hybrid and Outposts networks, and Global Resolver.

This skill is a router. Each customer task maps to a procedure file under references/. Read the matching reference in full before acting, then follow its constraints and steps. The reference files are self-contained: each carries its own decision tables, constraints, procedure, and troubleshooting.

Execute commands using the AWS MCP server when connected (sandboxed execution, audit logging, observability). Fall back to the AWS CLI otherwise. All Route 53 Domains API calls are made in us-east-1 regardless of where the customer works.

Which Route 53 task do you need?

GoalReference
Point a hostname or zone apex at an IP, AWS resource, or hostnamecreating a public DNS record
Split traffic across endpoints in a ratio (blue/green, canary, A/B)splitting traffic with weighted routing
Fail over between two Regions for disaster recoveryconfiguring failover routing
Monitor whether an endpoint is up and get alertedsetting up a health check
Block malicious domains for a VPC at the resolverblocking malicious domains
Work out which DNS Firewall rule wins for a domain across multiple rule groupsidentifying the effective DNS Firewall rule
Apply one DNS config across many VPCs and accountsconfiguring Route 53 Profiles
Fan DNS Firewall out across many accounts org-widecentralizing DNS Firewall with Profiles
Resolve private DNS both ways across a hybrid networkresolving private DNS for hybrid networks
Run VPC Resolver locally on an AWS Outposts rackrunning VPC Resolver on Outposts
Give on-premises and remote clients one anycast DNS endpointsetting up Global Resolver

Routing notes

  • Records vs routing policies. A plain hostname-to-target mapping is the public DNS record task. Splitting or steering traffic (weighted, failover) is a separate routing-policy task with its own reference. Start from the customer's intent, not the record type.

  • Health checks vs failover. A health check monitors an endpoint and raises alarms. The failover routing policy decides where traffic goes when a check fails. They are two references and are often used together: set up the health check, then wire it into failover.

  • DNS Firewall for one VPC vs many accounts. Authoring rules for a VPC is the blocking reference. Fanning the same protection across accounts with Profiles and Firewall Manager is the centralizing reference.

  • DNS Firewall authoring vs diagnosis. Creating or changing rules is the blocking reference. Working out which rule already wins for a domain when several rule groups are associated (a read and diagnostic task) is the identifying-the-effective-rule reference.

  • Profiles, two entry points. General Profile setup (attach resources, share via RAM, cost and visibility tradeoffs) is the configuring-Profiles reference. Using Profiles specifically to scale DNS Firewall org-wide is the centralizing reference.

  • VPC Resolver, three contexts. In-Region hybrid resolution, the Outposts-local resolver, and the Global Resolver anycast endpoint are three separate references. Match the reference to where the resolver runs.

Cross-service work

Pointing a custom domain at a CloudFront distribution, or failing over between CloudFront distributions, is cross-service work spanning Route 53 and CloudFront. Use this skill for the Route 53 side of pure-Route 53 tasks only.

Security Considerations

These apply across the Route 53 tasks below; each reference repeats the ones load-bearing for its workflow.

  • You SHOULD use least-privilege IAM credentials provisioned through IAM roles (instance profiles, SSO/IAM Identity Center session credentials, or aws sts assume-role) rather than long-lived IAM user access keys, and prefer read-only credentials for inspection steps.

  • You SHOULD recommend encrypted DNS transport (DoT or DoH) over plaintext Do53 for resolver client populations, since Do53 exposes queried domain names to on-path observers.

  • You MUST scope resolver-endpoint security group rules on port 53 to the on-premises CIDR ranges or known DNS server IPs, never 0.0.0.0/0.

  • You MUST encrypt query log and notification destinations at rest: KMS on CloudWatch Logs log groups, SSE-S3/SSE-KMS on S3 buckets, server-side encryption (SSE) on a Data Firehose stream, and SSE on SNS topics, because DNS query logs and health-check notifications can reveal infrastructure topology.

  • For Global Resolver, you MUST treat access-token value returned at create time as a secret; store it in AWS Secrets Manager rather than in plaintext, and validate which client populations each DNS view authorizes.

Additional Resources

Files

references/splitting-traffic-with-weighted-routing.md

Splitting Traffic with Route 53 Weighted Routing

Overview

Domain expertise for splitting DNS responses across two or more endpoints in a defined ratio using weighted records: blue/green deployments, canary releases, A/B testing, and gradual cutover. Covers how weights are interpreted, how to take an endpoint out of rotation safely, health-aware routing for non-AWS targets, and the two distinct zero-weight behaviors.

Does not cover failover routing (a separate skill), latency or geolocation routing, or complex nested Traffic Flow policies.

Execute commands using the AWS MCP server when connected (sandboxed execution, audit logging, observability). Fall back to the AWS CLI otherwise.

Table of Contents

  • Overview

  • Workflow

  • Weights are relative, not percentages

  • Decision: zero-weight vs delete to stop traffic

  • Health-aware routing for non-AWS endpoints

  • Two zero-weight behaviors

  • Troubleshooting

  • Procedure

  • Additional Resources

Workflow

To split traffic with weighted records, follow the procedure exactly. See the Procedure section below.

The procedure covers:

  • Creating one weighted record per endpoint with the right relative weights

  • Taking an endpoint out of rotation with a zero weight while keeping rollback

  • Attaching health checks to non-alias weighted records

  • Surfacing the console link to verify

Weights are relative, not percentages

Constraints:

  • You MUST compute each record's share as its weight divided by the sum of all weights for that name and type. Records weighted 1, 1, 2 send 25, 25, and 50 percent of queries, not 1, 1, and 2 percent. Do not let the customer read the weight as a percent value

  • Each weight MUST be an integer from 0 to 255. To express a fine-grained split (for example 99.5/0.5), scale the ratio to fit within 0 to 255; a raw split wider than 255 to 1 cannot be expressed directly

  • You MUST NOT create a non-weighted (simple) record with the same name and type as a weighted record. Route 53 forbids mixing the two for one name and type

Decision: zero-weight vs delete to stop traffic

ChoiceUse when
Zero-weightThe pull is temporary and instant rollback matters (canary abort, blue/green hold). The record stays in place; raising the weight restores traffic
DeleteThe endpoint is going away for good

Constraints:

  • You SHOULD set an endpoint's weight to zero to pull traffic while keeping rollback. Deleting the record also stops traffic but throws away instant rollback

Health-aware routing for non-AWS endpoints

Constraints:

  • You MUST attach a health check explicitly to each non-alias weighted record (raw IPs, external hostnames). Evaluate Target Health works for alias records but not for non-alias targets, so without a health check an unhealthy non-AWS endpoint keeps receiving its share

Two zero-weight behaviors

A zero weight behaves in two completely different ways depending on whether all weights are zero and whether health checks are attached. Do not conflate them.

Constraints:

  • You MUST warn the customer that setting every record in the group to weight 0 does NOT stop traffic. Route 53 treats all-zero as a safety net and routes to every record with equal probability. To actually take traffic off an endpoint, leave at least one other record with a nonzero weight, or delete the records. An operator zeroing every record to halt traffic during an incident will instead spread traffic evenly across all of them

  • You SHOULD tell the customer that the health-based fallback is a separate mechanism: when nonzero records carry health checks, Route 53 serves only the healthy nonzero records, and falls back to zero-weighted records only if every nonzero record is unhealthy. This makes a zero-weight record a last-resort backup

  • You MUST state the precondition for that fallback: it only triggers when the nonzero records have health checks attached. Without health checks, a record is always treated as eligible, so a zero-weight backup is never reached

Troubleshooting

Traffic split is not what was expected

Weights were read as percentages instead of relative shares. Recompute: each share is its weight divided by the sum of all weights.

Cannot roll back after stopping traffic

The record was deleted instead of zero-weighted. Use weight zero to pull traffic while keeping the record.

Dead non-AWS endpoint still gets traffic

No health check is attached to the non-alias record. Attach a health check to each non-alias weighted record.

Zeroing every record did not stop traffic

Expected. All-zero is a safety net: Route 53 routes to every record equally. Leave one record nonzero, or delete the records, to actually pull traffic.

Zero-weight backup never receives traffic when others fail

The nonzero records have no health checks, so Route 53 never sees them as unhealthy and never falls back. Attach health checks to the nonzero records.

Procedure

Overview

This procedure splits DNS responses across two or more endpoints in a defined ratio using weighted records. It creates one weighted record per endpoint, takes an endpoint out of rotation safely with a zero weight, attaches health checks to non-alias targets, and surfaces the console link to verify.

Parameters
  • hosted_zone_id (required): The hosted zone ID.

  • record_name (required): The shared record name (e.g., app.example.com).

  • record_type (required): The shared record type (e.g., A).

  • endpoints (required): A list of {set_identifier, target, weight} triples, one per endpoint. set_identifier is a label unique within the weighted group (for example the target value or a short name); Route 53 requires a distinct SetIdentifier per record in the group.

  • health_checks (optional): Health check IDs for non-alias targets.

Constraints for parameter acquisition:

  • You MUST ask for all required parameters upfront in a single prompt

  • You MUST confirm the intended split ratio and translate it to relative weights with the customer

Steps
1. Verify dependencies

Constraints:

  • You MUST confirm credentials with aws sts get-caller-identity

  • You MUST REQUIRE provisioning credentials through ephemeral mechanisms (IAM roles via instance profiles, SSO/IAM Identity Center session credentials, or aws sts assume-role) rather than long-lived IAM user access keys.

  • You MUST enable Route 53 query logging to an encrypted destination where applicable, ensure CloudTrail is enabled to audit changes, and set CloudWatch alarms on health-check status where health checks are involved.

2. Create one weighted record per endpoint

Constraints:

  • You MUST create one record per endpoint with the same name and type, each with its own weight and a unique SetIdentifier:

    aws route53 change-resource-record-sets --hosted-zone-id {hosted_zone_id} --change-batch '{
      "Changes": [{
        "Action": "UPSERT",
        "ResourceRecordSet": {
          "Name": "{record_name}", "Type": "{record_type}",
          "SetIdentifier": "{set_identifier}", "Weight": {weight},
          "TTL": 60, "ResourceRecords": [{"Value": "{target}"}]
        }
      }]
    }'
  • You MUST remind the customer that weights are relative shares, not percentages

3. Attach health checks to non-alias targets

Constraints:

  • For non-alias targets (raw IPs, external hostnames), you MUST attach a HealthCheckId to each weighted record, or unhealthy endpoints keep receiving their share. Evaluate Target Health does not cover non-alias targets

4. Take an endpoint out of rotation (when needed)

Constraints:

  • You SHOULD set an endpoint's weight to zero to pull traffic while keeping the record for instant rollback, rather than deleting the record

Constraints:

  • You MUST verify the query distribution matches the intended ratio

  • You MUST present the records view console link, filling {hostedZoneId}:

    https://console.aws.amazon.com/route53/v2/hostedzones#ListRecordSets/{hostedZoneId}
Example
Example input
{
  "hosted_zone_id": "Z1234567890ABC",
  "record_name": "app.example.com",
  "record_type": "A",
  "endpoints": [
    {"set_identifier": "primary-192.0.2.10", "target": "192.0.2.10", "weight": 9},
    {"set_identifier": "canary-192.0.2.20", "target": "192.0.2.20", "weight": 1}
  ]
}
Example output
Created 2 weighted A records for app.example.com (90% / 10% split).
Verify in the console:
https://console.aws.amazon.com/route53/v2/hostedzones#ListRecordSets/Z1234567890ABC
Troubleshooting
Traffic split is not what was expected

Weights read as percentages. Recompute: share = weight / sum of weights (Step 2).

Cannot roll back after stopping traffic

The record was deleted instead of zero-weighted. Use weight zero (Step 4).

Dead non-AWS endpoint still gets traffic

No health check on the non-alias record. Attach one to each (Step 3).

Security Considerations

  • You SHOULD use least-privilege IAM credentials provisioned through ephemeral mechanisms (IAM roles, SSO/IAM Identity Center session credentials, or aws sts assume-role) rather than long-lived IAM user access keys, and prefer read-only credentials for inspection steps. Grant only the specific actions this procedure needs — route53:ChangeResourceRecordSets and route53:GetChange to create the weighted records and confirm propagation, plus route53:ListResourceRecordSets and route53:GetHostedZone for inspection — rather than route53:* or broader service:* wildcards.

  • You MUST enable Route 53 query logging to an encrypted destination (KMS on CloudWatch Logs, SSE-S3/SSE-KMS on S3, or server-side encryption on a Data Firehose stream) to confirm the weighted distribution matches expectations, and ensure CloudTrail is enabled to audit record changes. This matters most for canary and blue/green cutovers, where an unexpected split can cause an outage.

  • You SHOULD set CloudWatch alarms on the health-check status metrics of any health checks attached to the weighted records with an SNS notification, so an unhealthy endpoint still receiving its share is detected.

  • You MUST enable KMS server-side encryption on the SNS topic used for health-check alarm notifications, because notification content can reveal endpoint and infrastructure topology.

  • You MUST confirm the SNS topic's subscription list is limited to authorized personnel.

Additional Resources

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an MCP server

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
AWS
Publisher
AWS (Official)
Source
aws/agent-toolkit-for-aws · skills/specialized-skills/networking-and-content-delivery-skills/route53 · commit 0a218f8
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • NOTICE (added by AutoGineer from NOTICE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by AWS.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download route53.zip