
General
- Does not actually route or forward traffic (like an ALB) but only responds to queries of a particular domain.
- Allows for Public Hosted Zones or Private Hosted Zones.
- Contains records with the following attributes:
- Name (Domain Name)
- Type
- Value
- TTL
- Routing Policy
DNS Record Types
- SOA (Start of Authority))
- Contains administrative information
- NS (Name Server)
- Identify the name server and its domain
- A record
- The IPv4 address of a given host
- AAAA
- The IPv6 address of a given host
- CNAME
- Maps one domain name to another
- Can’t be used for naked domain
- Alias
- An AWS extension that points to an AWS resource e.g. CloudFront.
- Can be used with naked domain
- Does not require TTL
Routing Policies
- Simple
- It can have multiple values, which will be returned to the client.
- The client will choose only one if it receives multiple values
- Can only specify one value if it is an alias
- No health check.
- Weighted
- Calculates the portion(percentage) of the traffic by dividing the weight of the record with the combined weight of the same domain.
- Can have a health check.
- Latency
- Choose the lowest latency relative to the client’s location to AWS, so the resource must be in AWS resource.
- Must specify the region of the resource. This and the user’s location are used to calculate latency. AWS uses its database to determine the latency of the IP address (https://www.youtube.com/watch?v=PVBC1gb78r8&t=1963s @33:09)
- Can have a health check
- Failover
- Must specify a Primary and Secondary resource.
- Traffic is always routed to Primary unless it is not considered healthy. In this case, the Secondary will handle all traffic.
- Must always perform health checks.
- Geolocation
- Route traffic based on where the DNS query originated. Latency is not considered. Can use continent or country or states if in US.
- Should have a default record else Route 53 will reply with No Answer.
- Can have health check.
- Geoproximity
- Based on the user and resource location.
- By default, returns the endpoint which is of minimal distance from the client.
- This can be skewed by changing the bias for a particular location.
- Configured from ‘Traffic Policy’.
- Multi-value
- Similar to Simple where multiple values can be specified.
- But unlike Simple routing, a health check is performed on every endpoint.
- Unhealthy endpoint will not be returned.
- IP-based routing
- Create a list of CIDR blocks associated with a particular location.
- The client will be directed to the location based on which CIDR blocks it falls into.
- You cannot use an IP-based routing policy for records in a privately hosted zone.
Health Checks
- Only for public resources
- Types of Health Checks:
- Health checks that monitor an endpoint
- Monitors an endpoint that you specify either by IP address or by domain name
- The endpoint must respond with an HTTP status code of 2xx or 3xx within two seconds after connecting
- You can configure the health check to make requests similar to those of your users, such as requesting a web page from a specific URL.
- You can search the response body for a string that you specify. The string must appear entirely in the first 5,120 bytes of the response body.
- Health checks that monitor other health checks (calculated health checks)
- The health check that does the monitoring is the parent health check, and the health checks that are monitored are child health checks.
- You specify the number of child health checks that must be healthy for the status of the parent health check to be considered healthy
- Health checks that monitor CloudWatch alarms
- Monitor the data stream for the corresponding alarm instead of monitoring the alarm state.
- If the data stream indicates that the state of the alarm is OK, the health check is considered healthy.
- If the data stream indicates that the state is Alarm, the health check is considered unhealthy.
- Amazon Application Recovery Controller (ARC) routing controller
- Health checks that monitor an endpoint