Subchapter 91.8
references/running-route53-resolver-on-outposts.mdMarkdown11 KBView on GitHub
Domain expertise for running a VPC Resolver (also known as Route 53 Resolver) locally on an AWS Outposts rack so DNS queries from on-Outpost workloads resolve without round-tripping to the parent Region, including when the Outpost loses its connection back to the Region. Covers the compute capacity the local Resolver reserves, the security group rules outbound endpoints need, and the feature parity gaps versus the Region.
Does not cover in-Region resolver endpoints for hybrid networks, or hosted zone and record management, which stay in the Region. Those are separate skills.
Execute commands using the AWS MCP server when connected (sandboxed execution, audit logging, observability). Fall back to the AWS CLI otherwise.
To run the Resolver locally on an Outpost, follow the procedure exactly. See the Procedure section below.
The procedure covers:
The local Resolver reserves compute on the rack before any workload runs.
Constraints:
Constraints:
Constraints:
| Choice | Use when |
|---|---|
| At order time | The customer knows they want local DNS, so the instance reservation is planned into the rack from the start |
| Later | The rack has free capacity; otherwise instances must be freed before the Resolver can be enabled |
The local Resolver reserved 4+ instances, plus 2 per endpoint. Account for the reservation in capacity planning; reserve at order time.
The security group is missing TCP or UDP outbound for DNS. Allow both.
Health checks, DNS Firewall, and Traffic Flow do not run locally. Keep those in the Region.
When the Outpost loses connectivity to the parent Region, the local Resolver continues serving cached responses for up to 7 days. After 7 days without a refresh from the Region, cached entries expire and queries return SERVFAIL. Control plane changes and health-check-based failover are unavailable until connectivity is restored.
This procedure runs a VPC Resolver locally on an AWS Outposts rack so on-Outpost workloads resolve DNS without round-tripping to the parent Region. It reserves capacity and enables the local Resolver, connects it to on-premises DNS through endpoints, designs around the Region-only feature gaps, and surfaces the console link to verify.
arn:aws:outposts:us-east-1:123456789012:outpost/op-0abc123def456789a).us-east-1).corp.example.com). A conditional forwarding rule is created per domain.Constraints for parameter acquisition:
Constraints:
aws sts get-caller-identityaws sts assume-role) rather than long-lived IAM user access keys.Constraints:
You MUST enable the Resolver on the Outpost so on-Outpost workloads resolve locally:
aws route53resolver create-outpost-resolver \
--creator-request-id {unique_id} \
--name {name} --outpost-arn {outpost_arn} \
--preferred-instance-type {instance_type} --region {region}Constraints:
If connect_on_prem is true, create an outbound endpoint on the Outpost. You MUST allow both
TCP and UDP outbound for DNS on the endpoint’s security group, or it comes up healthy but
forwards nothing. You MUST scope those port-53 outbound rules to the on-premises DNS server IPs
supplied in on_prem_dns_ips, never 0.0.0.0/0:
aws route53resolver create-resolver-endpoint \
--creator-request-id {unique_id} \
--name {name} --direction OUTBOUND \
--security-group-ids {sg_id_with_tcp_and_udp} \
--ip-addresses SubnetId={outpost_subnet_1} SubnetId={outpost_subnet_2} \
--outpost-arn {outpost_arn} \
--preferred-instance-type {instance_type} \
--region {region}You MUST also create a conditional forwarding rule and associate it with the VPC. The outbound
endpoint alone forwards nothing; the rule names which domains forward to which on-premises DNS
IPs. Create one rule per entry in on_prem_domains:
aws route53resolver create-resolver-rule \
--creator-request-id {unique_id} \
--name {name} --rule-type FORWARD \
--domain-name {on_prem_domain} \
--resolver-endpoint-id {outbound_endpoint_id} \
--target-ips Ip={on_prem_dns_ip},Port=53 \
--region {region}
aws route53resolver associate-resolver-rule \
--resolver-rule-id {rule_id} \
--vpc-id {vpc_id} \
--region {region}Constraints:
Constraints:
You MUST present the Outpost Resolvers console view for the Outpost’s home Region, filling
{region}:
https://console.aws.amazon.com/route53resolver/home?region={region}#/resolveroutposts{
"outpost_arn": "arn:aws:outposts:us-east-1:123456789012:outpost/op-0abc123def456789a",
"region": "us-east-1",
"connect_on_prem": true,
"on_prem_domains": ["corp.example.com"],
"on_prem_dns_ips": ["10.0.0.2"]
}Enabled local Resolver on op-0abc123 (reserved 4 instances). Created outbound endpoint
(TCP+UDP) plus a forwarding rule for corp.example.com -> 10.0.0.2:53, associated with the VPC.
Verify in the console:
https://console.aws.amazon.com/route53resolver/home?region=us-east-1#/resolveroutpostsThe local Resolver reserved 4+ instances, plus 2 per endpoint. Account for it; reserve at order time (Step 1).
Security group missing TCP or UDP outbound for DNS. Allow both (Step 3).
Health checks, DNS Firewall, and Traffic Flow do not run locally. Keep those in the Region (Step 4).
aws sts assume-role) rather than
long-lived IAM user access keys, and prefer read-only credentials for inspection steps.0.0.0.0/0, because an open rule exposes the resolver to unauthorized queries.