AWS Route 53
AWS Route 53 is a Domain Name System (DNS) web service provided by Amazon. It is highly available and can serve billions of DNS queries with ease. AWS Route 53 allows you to set up DNS routing for your application within seconds and make it available globally. Let's understand how AWS Route 53 works, some of its features, and how to configure Route 53.
AWS Route 53
AWS Route 53 is Amazon's solution for a Domain Name System (DNS) web service. It is scalable and provides high availability.
If you want to understand what Domain Name Systems (DNS) are in general, you can check out Scaler's extensive article on DNS here.
AWS Route 53 lets you register domains and route traffic from the internet to AWS resources with ease.
Features of AWS Route 53
AWS Route 53 has the following features:
- Domain Name Registration: You can purchase and register domains directly on AWS Route 53. Note that Route 53 also allows you to use domains that are registered on other DNS registrars like Namecheap, GoDaddy, etc.
- Route Internet Traffic to Your AWS Resources: You can then use the domains you have registered to route traffic from the internet to your AWS resources (like an Application Load Balancer or an EC2 Instance) via your domain name.
- Check The Health of Your AWS Resources: You can also use Route 53 to check if your AWS resources are reachable, and switch over to other resources in case of any failures.
- Routing Policies: You can even customize the routing policies Route 53 uses. You can route traffic based on a wide variety of factors like location, IP address, and network latency. A few of the routing policies have been described below.
AWS Route 53 Routing Policies
- Simple Routing: Route traffic to a single resource. This is the most straightforward and cheapest routing policy offered by AWS Route 53.
- Failover Routing: Route traffic to an alternate resource in case of primary/active resource failures.
- Geolocation Routing: Route traffic to a resource based on the user's location. This option is suitable when your application is deployed over multiple AWS Regions. The configuration for each location needs to be added manually.
- Latency Routing: Route traffic to a resource to ensure the lowest network latency to the user. This option works best when your application is deployed in multiple AWS Regions and you want to provide the lowest latency automatically.
- IP-Based Routing: Route traffic to a resource based on the user's IP address. This option can be used when you want to route users from certain ISPs to specific resources to optimize network performance.
- Weighted Routing: Route traffic to multiple resources based on a weightage value. For example, you can route 40% of your traffic to the X resource and the remaining 60% to abc resource.
How Does AWS Route 53 Work?
To understand how AWS Route 53 works, let us take a simple example with Scaler Topics. Suppose you visit "scaler.com/topics" on your browser. How is your browser landing on the correct webpage?
Note: This is an example and a simplistic representation of AWS Route 53 using Scaler Topics as an example and does not mean Scaler Topics uses exactly this design.
Let's assume an AWS EC2 Instance serves this webpage, and AWS Route 53 is configured to route to this AWS EC2 Instance.
Then when you visit "scaler.com/topics" on your browser:
- Your browser will perform a DNS request to the closest DNS resolver, which is typically managed by your local ISP. A DNS resolver will use the domain (scaler in this example) and TLD (.com in this example) to check against multiple intermediate DNS servers to locate the name server which can provide this URL's final destination.
- This DNS request will eventually land on AWS Route 53's name servers. (marked with the red circle and number 1)
- AWS Route 53 will then look up where the domain needs to be routed using the DNS records configured. In this case, it is an AWS EC2 Instance with the public IP address 10.0.0.1. (marked with the purple circle and number 2)
- AWS Route 53 returns the public IP address as part of the DNS response back to your browser.
- Your browser will now connect to the AWS EC2 Instance using the public IP Address 10.0.0.1. (marked with the red circle and number 3)
- The AWS EC2 Instance will respond with the required webpages and your browser will now display the website for "scaler.com/topics". (marked with the green circle and number 4)
This is how your Route 53 routes traffic from the internet (your browser, for example) to different AWS resources (like an EC2 Instance serving a website, for example).
Benefits of AWS Route 53
Using AWS Route 53 has the following benefits:
- High Availability Across Multiple Regions: AWS Route 53 is a global service and provides high availability across multiple regions. AWS has globally distributed DNS servers that automatically replicate DNS records from one region to the other and this ensures AWS Route 53 can answer queries from the optimal location depending on network conditions.
- Automatic Scaling: AWS Route 53 is also an elastic service and can scale automatically to meet your application's demands.
- Integration With AWS Services: AWS Route 53 is tightly integrated with different AWS Services like AWS EC2 Instance, AWS Application Load Balancer, AWS API Gateway, etc. It also lets you route traffic to a website hosted on a public S3 bucket.
- Health Checks and Failover Mechanisms: AWS Route 53 has health checks built in and can switch over to other AWS resources in case of a failure. You can customize both the health checks as well as the failover policies.
- Secure: AWS Route 53 supports DNSSEC which lets DNS resolvers validate a DNS response and ensure it hasn't been tampered with. DNSSEC strengthens authentication in DNS using digital signatures.
- Cost-Effective: AWS Route 53's pricing model is simple and charges only for the number of DNS queries that it answers. There is no upfront cost.
How to Configure AWS Route 53?
To configure AWS Route 53 you need to create two entities - hosted zones and records.
Hosted Zones contains information about your domain and allows you to create DNS records. Records define how and where AWS Route 53 routes internet traffic for your domain. Records let you define destinations for both the main domain as well as its subdomains.
- AWS Account
- Domain purchased from AWS Route 53 or any other provider
Note: The domain you want to configure in AWS Route 53 must be owned and registered by you. Otherwise, the routing will not work.
- Login to your AWS Account.
- Open the AWS Console. Search for "Route 53" in the Search Bar. Select Route 53.
- Select the Hosted Zones from the navigation bar on the left. Then click the Create hosted zone button.
- In the "Create hosted zone" page:
- Enter your domain in the "Domain name" field.
- Keep the "Public hosted zone" option selected.
- Then, click the Create hosted zone button.
- Once the hosted zone for your domain is created, you can create records to define how AWS Route 53 routes traffic. Click the Create record button to create a record.
- In the "Create record" page:
- Keep all the values as the default values.
- Change only the "Value" field with the AWS resource you want to route to. In this demo, an IP Address has been provided.
- Then, click the Create record button.
- After a few minutes, the record will be created. Now if you visit your domain, Route 53 should route traffic to the AWS resource you provided.
Note: Sometimes it can take 24-48 hours for AWS Route 53 and all the DNS name servers to recognize your domain.
AWS Route 53 Pricing
AWS Route 53 follows a pay-as-you-go model and there are no upfront costs.
AWS Route 53 charges mainly based on the following sections:
- Managing Domain Names: There is an annual fee for each domain name registered in AWS Route 53.
- Managing Hosted Zones: Hosted zones are the containers for domains and their associated routing records. There is a monthly fee for each hosted zone you own. AWS charges $0.50 per hosted zone for the first 25 hosted zones, and then $0.10 per additional hosted zone. A hosted zone can include 10,000 records. For each record greater than 10,000 per hosted zone, you will be charged $0.0015 per month.
- Serving DNS Queries: Route 53 charges for every DNS query made to your domain, and you are billed monthly. Standard Routing costs $0.40 per million queries for the first 1 Billion queries, and then $0.20 per additional million queries. The charges are prorated, ie., if you serve only 100,000 queries you will be charged only for the 100,000 queries and not the entire million queries. Geo DNS, Latency, and IP-Based Routing cost more compared to Standard Routing.
You can also incur charges for these services:
- Health Checks: The first 50 health checks for AWS endpoints (i.e. AWS resources like AWS EC2 Instance or AWS Application Load Balancer) are not charged. Non-AWS endpoints and additional health checks are chargeable beyond the first 50.
- Other Route 53 Services: You can be charged extra if you enable additional Route 53 services like Route 53 Resolver Endpoints, Route 53 Resolver Query Logs, Route 53 Resolver DNS Firewall, and Route 53 Application Recovery Controller.
For the latest pricing information, you can refer to the official AWS Pricing Documentation linked here.
- In this article, we explained what AWS Route 53 is and how it can be used for domain registration and serving DNS queries.
- The other features of AWS Route 53 are health checks, failover mechanisms, and routing policies.
- By taking "scaler.com/topics" as an example, we understood how AWS Route 53 works.
- The benefits of using AWS Route 53 include - high availability across multiple regions, automatic scaling, integration with other AWS services, security with DNSSEC support, and cost-effectiveness.
- AWS Route 53 can be configured easily using the AWS Console.
- Finally, AWS Route 53 has a simple pricing model which charges based on domains registered, number of DNS queries served, and number of hosted zones.