☰ All modules Tier 4 · Route 53 GuideCheat sheet ‹ cloudfrontvpc ›
Contents
  1. How Route 53 appears on DVA-C02
  2. 1. Hosted zones and record types
  3. 2. Alias records CNAME records and TTL
  4. 3. Choosing a routing policy
  5. 4. Health checks and DNS failover
  6. 5. Weighted routing for blue green releases
  7. Quick decision rules
  8. Changed vs older material

Route 53 — DVA-C02 Mastery Guide

  • Sources: course chapter 04 (Amazon Route 53). The course serves as the syllabus only; all wording here is original.
  • Written 2026-10-12; values checked against AWS docs on 2026-10-12 (Route 53 Developer Guide, API Reference and document history, Route 53 pricing, SLA and FAQ pages, AWS What's New, the AWS CLI reference, plus the ELB, CloudFormation and AWS SDK for Java documentation). The marker ⚠️ Changed: <current>. Older material may say <old>. flags a value or behaviour that differs from the course or older practice tests: learn the current value. ⚠️ unverified marks something AWS documentation did not confirm: don't build an exam answer on it. Every change is listed in Changed vs older material.
  • Tier 4 (skim: developer-facing features only), bank target 12 questions. Domains: Deployment (primary), Troubleshooting and Optimization.
  • How to use it: /explain <topic> teaches from these sections (concept → exam facts → developer angle → traps → 3 check questions); /quiz route53 asks bank questions whose source_note links point at the ## N. headings below; /drill route53 fires short recall prompts from notes/route53-cheat-sheet.md. Suggested loop: read a section and answer its practice questions before opening the answers → /explain what is still unclear → /quiz route53 → /drill route53.
  • Owned by other modules (one-line pointers only here): ALB/NLB listeners, target groups and target health → notes/ec2-mastery-guide.md §8; CloudFront behaviors, caching and origins → notes/cloudfront-guide.md §1–§3; API Gateway custom domain names and their certificates → notes/api-gateway-guide.md §2; Elastic Beanstalk URLs, swap-URL blue/green and traffic splitting → notes/beanstalk-guide.md §2, §7–§8; VPC DNS attributes and VPC endpoints → notes/vpc-guide.md §3; Lambda alias weights → notes/lambda-guide.md §7; CodeDeploy blue/green → notes/cicd-guide.md §8; CloudWatch alarms → notes/monitoring-guide.md §5; S3 static website hosting → notes/s3-guide.md §9; ACM certificates and DNS validation → notes/ec2-mastery-guide.md §9 and notes/other-services-guide.md §14; SDK retries and backoff → notes/cli-sdk-policies-guide.md §9.

How Route 53 appears on DVA-C02

DVA-C02 doesn't ask you to run DNS servers or design networks. Route 53 shows up as the switch that points a name at what you deployed, as a release tool, and as the first suspect when a name answers with the wrong place:

Typical question shapes: "point example.com at an ALB"; "send 10 % of users to the new version"; "show a maintenance page from S3 when the site is down"; "route each user to the fastest Region"; "serve the German catalog to users in Germany"; "health-check an instance in a private subnet"; "which TWO steps make clients pick up a new IP within minutes?".

Deciding constraints: zone apex (alias only), lowest cost (alias queries to AWS resources are free), fastest cutover (a low TTL set in advance), least operational overhead (health-check-driven failover instead of scripts that edit records), least privilege (record-level IAM conditions on route53:ChangeResourceRecordSets).

Domain map: Deployment → §2, §5 and the change API in §1 · Troubleshooting and Optimization → §1 (errors, negative caching), §2 (TTL), §3 (testing answers), §4.

Out of scope: operating DNS servers, Resolver endpoints and hybrid DNS architecture, domain registration and transfer procedures, DNSSEC operations.

# Topic Why it is on the exam
1 Hosted zones and record types Public vs private zones, the record types, atomic change batches, IAM conditions and API errors
2 Alias records CNAME records and TTL Apex names, free alias queries, target IDs, TTL as the speed limit of every DNS change
3 Choosing a routing policy Weighted, latency, failover, geolocation, geoproximity, IP-based, multivalue: one requirement, one policy
4 Health checks and DNS failover What makes a check pass or fail, private resources, failover outcomes, EvaluateTargetHealth
5 Weighted routing for blue green releases Gradual shifts and rollback with weights, caching limits, and when another tool fits better

1. Hosted zones and record types

Concept

Exam facts

Developer angle

Create a zone, apply one atomic batch (change.json below: UPSERT creates or replaces; a DELETE must repeat every value of the record) and wait for INSYNC:

aws route53 create-hosted-zone --name example.com --caller-reference "zone-$(date +%s)"
CHANGE_ID=$(aws route53 change-resource-record-sets --hosted-zone-id Z0123456789ABCDEFGHIJ \
  --change-batch file://change.json --query 'ChangeInfo.Id' --output text)
aws route53 wait resource-record-sets-changed --id "$CHANGE_ID"   # polls GetChange every 30 s until INSYNC
{"Comment": "move api, add a verification token",
 "Changes": [
  {"Action": "UPSERT", "ResourceRecordSet": {"Name": "api.example.com", "Type": "A", "TTL": 60, "ResourceRecords": [{"Value": "192.0.2.10"}]}},
  {"Action": "CREATE", "ResourceRecordSet": {"Name": "_verify.example.com", "Type": "TXT", "TTL": 300, "ResourceRecords": [{"Value": "\"token-123\""}]}}]}

Traps

Practice questions

  1. A release pipeline runs five jobs in parallel, and each job calls aws route53 change-resource-record-sets to update one record in the same hosted zone. Some jobs fail with HTTP 400 and the error code PriorRequestNotComplete. Which change fixes the failures with the LEAST effort?

    • A. Ask AWS Support to raise the account's Route 53 API request-rate limit.
    • B. Lower the TTL of the five records to 60 seconds before the pipeline runs.
    • C. Send all five updates in one change batch and retry rejections after increasing waits.
    • D. Create a second hosted zone with the same name and send half of the updates to that zone.
  2. A company hosts example.com in Route 53. A CI role must be able to create or update only the A and AAAA records named app.example.com, and must not be able to delete any record. Which TWO elements belong in the role's policy? (Select TWO.)

    • A. A condition on aws:ResourceTag/team that requires the hosted zone's team tag to match the role's own team tag.
    • B. An Allow for route53:ChangeResourceRecordSets on the hosted zone ARN with ForAllValues:StringEquals on route53:ChangeResourceRecordSetsNormalizedRecordNames set to app.example.com.
    • C. An Allow for route53:* on *, relying on the pipeline code to send only changes for app.example.com.
    • D. A ForAllValues:StringEquals condition on route53:ChangeResourceRecordSetsActions set to CREATE and UPSERT, and on route53:ChangeResourceRecordSetsRecordTypes set to A and AAAA.
    • E. The record name written as App.Example.com., with capitals and a trailing dot, in the name condition.
Answers
  1. C. The zone rejects new requests while it is still processing an earlier one; one batch removes the race (and applies atomically), and backoff absorbs the rest. A raises a limit that isn't the cause (throttling returns Throttling, not this code); B changes resolver caching, not how the API accepts changes; D creates a zone that isn't delegated, so its records would never be served.
  2. B, D. The name key pins the record, and the action and type keys exclude DELETE and other types. A fails because Route 53 has no tag-based condition keys; C is far from least privilege; E fails because condition values must be lowercase without the trailing dot.

2. Alias records CNAME records and TTL

Concept

Exam facts

Developer angle

ApexAlias:
  Type: AWS::Route53::RecordSet
  Properties:
    HostedZoneName: example.com.
    Name: example.com
    Type: A
    AliasTarget:
      DNSName: !GetAtt WebAlb.DNSName
      HostedZoneId: !GetAtt WebAlb.CanonicalHostedZoneID
      EvaluateTargetHealth: true

Traps

Practice questions

  1. A startup serves its marketing site from an internet-facing ALB. Visitors must reach it at example.com and at www.example.com, and the team wants the lowest Route 53 query charges. Which records should the developer create?

    • A. CNAME records for both names that point to the ALB's DNS name.
    • B. Alias A records for both names that target the ALB.
    • C. A records for both names that list the ALB's current IP addresses.
    • D. A CNAME record for www.example.com, and an A record with the ALB's IP addresses for example.com.
  2. A developer must move api.example.com, an A record with a TTL of 86,400 seconds, to a new IP address during a maintenance window tomorrow evening. Clients must start using the new address within a few minutes of the change. Which TWO actions meet the requirement? (Select TWO.)

    • A. Today, lower the record's TTL to 60 seconds.
    • B. During the window, convert the record into an alias that targets the new IP address.
    • C. Today, raise the record's TTL to 172,800 seconds.
    • D. During the window, lower the minimum TTL in the zone's SOA record to 60 seconds.
    • E. During the window, UPSERT the record with the new IP address.
Answers
  1. B. Alias records work at the apex, follow the ALB's changing IPs and cost nothing per query. A fails at the apex and is billed; C breaks when the ALB's IPs change; D still puts a static IP list at the apex and pays for CNAME queries.
  2. A, E. The short TTL has to be in caches before the change, and the change itself is an UPSERT. B fails because an alias can't target an IP address; C makes resolvers hold the old address even longer; D only affects how long negative answers are cached.

3. Choosing a routing policy

Concept

Policy Route 53 answers with Health checks Private zone Key API fields
Simple all values of the single record, in random order (the client picks one) No Yes none
Weighted one record, chosen with probability weight ÷ sum of weights (0–255) Yes Yes SetIdentifier, Weight
Latency the record of the Region with the lowest measured latency for the user Yes Yes SetIdentifier, Region
Failover the primary while healthy, otherwise the secondary (§4) Yes Yes SetIdentifier, Failover = PRIMARY / SECONDARY
Geolocation the record of the user's US state, country or continent (the smallest matching area wins), else the default * Yes Yes SetIdentifier, GeoLocation
Geoproximity the nearest resource after a bias of −99 to 99 grows or shrinks its area Yes Yes SetIdentifier, GeoProximityLocation (AWSRegion, LocalZoneGroup or Coordinates, plus Bias)
IP-based the record mapped to the CIDR block the query comes from, else the * location Yes No SetIdentifier, CidrRoutingConfig (CollectionId, LocationName)
Multivalue answer up to 8 healthy values, a random set per resolver Yes Yes SetIdentifier, MultiValueAnswer

Exam facts

Developer angle

Check what Route 53 would answer for a given resolver and client subnet with test-dns-answer (public zones only). The batch below creates a country record plus the default record (for "fastest healthy Region", create one latency alias per Region with EvaluateTargetHealth: true instead):

aws route53 test-dns-answer --hosted-zone-id Z0123456789ABCDEFGHIJ --record-name www.example.com --record-type A \
  --resolver-ip 203.0.113.53 --edns0-client-subnet-ip 198.51.100.0 --edns0-client-subnet-mask 24
{"Changes": [{"Action": "CREATE", "ResourceRecordSet": {"Name": "www.example.com", "Type": "A", "SetIdentifier": "germany", "GeoLocation": {"CountryCode": "DE"}, "TTL": 60, "ResourceRecords": [{"Value": "198.51.100.20"}]}},
  {"Action": "CREATE", "ResourceRecordSet": {"Name": "www.example.com", "Type": "A", "SetIdentifier": "default", "GeoLocation": {"CountryCode": "*"}, "TTL": 60, "ResourceRecords": [{"Value": "192.0.2.20"}]}}]}

Traps

Practice questions

  1. A streaming company has a licensing deal for Canada. Viewers in Canada must reach the stack that serves the Canadian catalog, and every other viewer, including viewers whose location Route 53 can't determine, must reach the international stack. Which record configuration meets these requirements?

    • A. Latency records for the Canadian stack in ca-central-1 and for the international stack in eu-west-1.
    • B. A geolocation record for Canada that targets the Canadian stack, and a geolocation record for North America that targets the international stack.
    • C. Geoproximity records for both stacks, with a bias of +50 on the Canadian stack.
    • D. A geolocation record for Canada that targets the Canadian stack, and a default geolocation record that targets the international stack.
  2. An application runs behind ALBs in us-east-1 and ap-southeast-1. Each user must be sent to the Region that responds fastest for that user, and when one Region's ALB has no healthy targets, its users must move to the other Region without manual action. Which TWO steps should the developer take? (Select TWO.)

    • A. Create geolocation records for North America and for Asia.
    • B. Create one simple record that lists the DNS names of both ALBs.
    • C. Create a latency alias record for each ALB, with the Region of that ALB.
    • D. Create Route 53 HTTP health checks against the current IP addresses of each ALB's nodes.
    • E. Set EvaluateTargetHealth to true on both alias records.
Answers
  1. D. Geolocation routes by the viewer's country, and the default record catches everyone else, including unmapped addresses. A routes by latency, so some Canadians could land elsewhere; B leaves viewers outside North America, and unmapped ones, with no answer; C routes by distance, so viewers near the border would be split unpredictably.
  2. C, E. Latency records pick the fastest Region, and EvaluateTargetHealth drops an ALB whose target groups have no healthy targets. A routes by location, not speed; B is not valid (a CNAME holds one value, and simple values aren't health-checked); D fails because ALB node IPs change, and for alias targets AWS recommends EvaluateTargetHealth.

4. Health checks and DNS failover

Concept

Exam facts

Developer angle

aws route53 create-health-check --caller-reference "orders-hc-$(date +%s)" --health-check-config \
  '{"Type":"HTTPS","FullyQualifiedDomainName":"orders-use1.example.com","Port":443,"ResourcePath":"/health","RequestInterval":30,"FailureThreshold":3,"EnableSNI":true}'
aws route53 create-health-check --caller-reference "orders-db-$(date +%s)" --health-check-config \
  '{"Type":"CLOUDWATCH_METRIC","AlarmIdentifier":{"Region":"eu-west-1","Name":"orders-db-errors"},"InsufficientDataHealthStatus":"LastKnownStatus"}'
aws route53 get-health-check-status --health-check-id 01234567-89ab-cdef-0123-456789abcdef
aws route53 get-health-check-last-failure-reason --health-check-id 01234567-89ab-cdef-0123-456789abcdef

Traps

Practice questions

  1. An internal order API runs on EC2 instances that have only private IP addresses. A private hosted zone holds failover records for orders.internal.example.com that point to a primary and a standby fleet. The team wants Route 53 to fail over when the primary's 5xx error rate is high. What should the developer associate with the primary record?

    • A. A CLOUDWATCH_METRIC health check that monitors a CloudWatch alarm on the primary's error rate.
    • B. An HTTPS health check that targets the private IP address of one of the primary instances on port 443.
    • C. A calculated health check whose child checks are the EC2 instance status checks of the primary fleet.
    • D. EvaluateTargetHealth set to true on the non-alias primary failover record.
  2. A Route 53 HTTPS health check for shop.example.com, an EC2-hosted site with a public IP address, reports unhealthy, although the site responds normally to the team's own tests. Which TWO causes could explain the status? (Select TWO.)

    • A. The health check path returns 302 Found and redirects to the login page.
    • B. The instance's security group allows HTTPS only from the company's office IP range.
    • C. The web server hosts several sites and requires SNI, and the health check was created without EnableSNI.
    • D. The server's TLS certificate was issued by the company's own private certificate authority instead of a public CA.
    • E. The endpoint returns its status code 1.5 seconds after the TCP connection opens.
Answers
  1. A. Health checkers can't reach private IPs, but an alarm-based check follows the metric data from inside AWS. B can't connect; C fails because calculated checks combine Route 53 health checks, not EC2 status checks; D applies only to alias records.
  2. B, C. The checkers come from AWS IP ranges that the security group blocks, and an SNI-only server fails the TLS handshake without the host name. A passes because 3xx counts as healthy; D passes because certificates aren't validated; E passes because the status arrives within 2 s.

5. Weighted routing for blue green releases

Concept

Exam facts

Developer angle

shift.json sets both weights in one atomic batch (90/10); apply it with aws route53 change-resource-record-sets --hosted-zone-id Z0123456789ABCDEFGHIJ --change-batch file://shift.json.

{"Comment": "release 42: 10 percent to green",
 "Changes": [
  {"Action": "UPSERT", "ResourceRecordSet": {"Name": "app.example.com", "Type": "A", "SetIdentifier": "blue", "Weight": 90,
    "AliasTarget": {"HostedZoneId": "Z35SXDOTRQ7X7K", "DNSName": "blue-alb-1111111111.us-east-1.elb.amazonaws.com", "EvaluateTargetHealth": true}}},
  {"Action": "UPSERT", "ResourceRecordSet": {"Name": "app.example.com", "Type": "A", "SetIdentifier": "green", "Weight": 10,
    "AliasTarget": {"HostedZoneId": "Z35SXDOTRQ7X7K", "DNSName": "green-alb-2222222222.us-east-1.elb.amazonaws.com", "EvaluateTargetHealth": true}}}]}

Traps

Practice questions

  1. A team runs version 1 of an application behind the ALB blue and version 2 behind the ALB green, each in its own CloudFormation stack in us-east-1. Today app.example.com is a simple alias record that targets blue. The team wants about 5 % of users on version 2 first and the ability to undo the change quickly. Which approach meets these requirements with the LEAST operational overhead?

    • A. Replace the simple record with multivalue answer records that return the addresses of both ALBs.
    • B. Replace the simple record with latency alias records for both ALBs, each one set to the us-east-1 Region.
    • C. Replace the simple record with weighted alias records: blue at weight 95 and green at weight 5.
    • D. Add a second simple alias record for app.example.com that targets the green ALB.
  2. A company shifts traffic between two partner-hosted endpoints with weighted CNAME records for pay.example.com that use a TTL of 86,400 seconds. After the last rollback, the company's Java services kept calling the old endpoint for hours. Which TWO changes shorten the time that clients keep using the old endpoint after the next weight change? (Select TWO.)

    • A. Set the networkaddress.cache.ttl security property of the Java services to 5 seconds.
    • B. Raise the minimum TTL in the zone's SOA record to 86,400 seconds.
    • C. Give the new endpoint a weight of 255 and the old endpoint a weight of 0.
    • D. Lower the TTL of the weighted records to 60 seconds well before the next release.
    • E. Turn on latency measurement in the Route 53 health checks of both partner endpoints.
Answers
  1. C. Two weighted alias records (swapped in with one atomic batch) give a 95/5 split, and moving green back to 0 undoes it. A can't express proportions, and multivalue records can't be aliases; B fails because latency routing allows one record per Region and has no proportions; D fails because a name and type can hold only one simple record.
  2. A, D. The JVM must re-resolve often, and resolvers must hold the answer for a short time. B only lengthens negative caching; C changes the split, not caching; E adds latency graphs without changing DNS behaviour.

Quick decision rules

Records, alias and TTL (§1–§2)

Routing policies (§3)

Health checks, failover and releases (§4–§5)

Changed vs older material

Learn the Current column; older practice material may still show the Course / older material value. Rows marked ⚠️ unverified stay out of notes/current-facts.md and out of bank questions; the others move there once you confirm them during /ingest.

Topic Course / older material Current (verified 2026-10-12) Source
§1 · Supported record types A, AAAA, CNAME, NS, plus CAA, DS, MX, NAPTR, PTR, SOA, TXT, SPF, SRV 17 types: HTTPS, SSHFP, SVCB and TLSA added on 2024-10-30 (SSHFP and TLSA in public zones only); the SPF type is no longer recommended (use TXT) AWS docs
§1 · Route 53 API rate limit 5 requests per second per AWS account; at most 1,000 CreateHealthCheck requests per 24 h Token buckets: 50 requests burst, 10 per second sustained (account level and per action; CreateHealthCheck one every 2 s) plus 1,500 record changes burst, 100 per second (UPSERT = 2); error Throttling / Rate exceeded AWS docs
§1 · SLA "The only AWS service with a 100 % availability SLA" Credits for any month below 100 % uptime of a hosted zone's DNS answers (GovCloud: below 99.995 %); API and console not covered; the "only AWS service" claim is ⚠️ unverified AWS SLA
§2 · Alias targets ELB, CloudFront, API Gateway, Elastic Beanstalk, S3 websites, VPC interface endpoints, Global Accelerator, a record in the same zone Also App Runner services (2022-08-30), OpenSearch Service custom domains (2025-01-14), AppSync domain names, VPC Lattice service custom domains (2025-06-25) and CloudFront distribution tenants (2025-04-28) AWS docs
§3 · Geoproximity routing Requires Route 53 Traffic Flow Ordinary routing policy for records in public and private hosted zones since 2024-01-10; Traffic Flow only for the map view and traffic policies What's New
§3 · Routing policies in private hosted zones Simple, failover, multivalue answer and weighted only Also latency and geolocation (2022-03-16) and geoproximity (2024-01-10); IP-based is the only policy not supported AWS docs
§4 · Number of health checkers About 15 global health checkers ⚠️ unverified: no count published; 8 selectable checker Regions (at least 3 in a custom list); at a 30 s interval the endpoint sees about one request every 2 s AWS docs
§4 · Child checks per calculated health check Up to 256 ⚠️ unverified: AWS pages disagree; API (ChildHealthChecks) and console page: 256; quotas page and "how health is determined" page: 255 AWS docs
§5 · JVM DNS cache TTL No more than 60 seconds 5 seconds (networkaddress.cache.ttl security property) in the AWS SDK for Java guide; the RDS User Guide still gives no more than 60 s for Multi-AZ failover, which 5 s meets AWS docs