Cổng 53 là cổng mạng tiêu chuẩn dành cho dịch vụ DNS (Domain Name System), chuyển đổi tên miền thành địa chỉ IP. Route 53 được đặt tên theo cổng này, nên bạn đọc hẳn đã suy ra được đây là dịch vụ DNS của AWS. Trong bài này, ta sẽ ôn lại về DNS và giới thiệu các khái niệm cơ bản trong Route 53.
Trong bài này:
1. Ôn lại về DNS
Máy tính sử dụng địa chỉ IP để định tuyến và giao tiếp trên mạng, nhưng con người lại khó nhớ các chuỗi số này. Domain Name System (DNS) ra đời đề giải quyết vấn đề này, có thể coi nó như một cuốn danh bạ khổng lồ, lưu lại địa chỉ IP ứng với tên miền.
1.1. Cấu trúc hệ thống DNS
Trong thời kỳ sơ khai của Interrnet, các cặp tên miền - địa chỉ IP được lưu trữ trong tệp hosts.txt, được quản lý tập trung. Tuy nhiên, khi Interrnet bùng nổ vào những năm 1980, số lượng tên miền tăng theo cấp số mũ, nếu quản lý theo cách này thì sẽ phát sinh rất nhiều bất cập:
- Dung lượng tệp
hosts.txtsẽ rất lớn, việc cập nhật tệp này cho tất cả máy tính mỗi ngày là bất khả thi. - Tìm kiếm tên miền trong không gian khổng lồ này sẽ tiêu tốn rất nhiều tài nguyên tính toán.
- Single point of failure: nếu máy chủ tập trung gặp sự cố, toàn bộ Internet sẽ bị ảnh hưởng.
Ngày nay, hệ thống DNS toàn cầu được tổ chức theo mô hình phân cấp với ba loại máy chủ chính:
- Root Server: Quản lý toàn bộ không gian tên miền. Khi nhận được truy vấn về một tên miền, Root Server trả về TLD Server tương ứng với phần mở rộng của tên miền đó (ví dụ:
.com,.vn). - Top-Level Domain (TLD) Server: Quản lý các phần mở rộng tên miền. Không biết địa chỉ của tên miền cụ thể, nhưng biết phải truy vấn tiếp ở đâu. Trả về địa chỉ của Authoritative Name Server quản lý tên miền cụ thể.
- Authoritative Name Server: Quản lý tên miền cụ thể. Khi nhận được truy vấn, trả về địa chỉ IP tương ứng với tên miền (A Record cho IPv4 hoặc AAAA Record cho IPv6).
1.2. Quy trình phân giải tên miền
Giả sử client nhập tên miền awscoban.com vào trình duyệt:
- Client kiểm tra bộ nhớ đệm cục bộ (local cache). Nếu không có IP của tên miền này, gửi truy vấn đến DNS Resolver (do nhà cung cấp dịch vụ Internet cung cấp).
- Client truy vấn DNS Resolver: “Địa chỉ IP của
awscoban.comlà gì?” - DNS Resolver truy vấn Root Server: “Máy chủ nào quản lý đuôi
.com?” - Root Server phản hồi DNS Resolver: “Đây là địa chỉ của TLD Server quản lý
.com.” - DNS Resolver truy vấn TLD Server đó: “Máy chủ nào quản lý tên miền
awscoban.com?” - TLD Server phản hồi DNS Resolver: “Đây là địa chỉ của Authoritative Server quản lý
awscoban.com.” - DNS Resolver truy vấn Authoritative Server đó: “Địa chỉ IP của
awscoban.comlà gì?” - Authoritative Server phản hồi DNS Resolver: “
93.184.216.34.” - DNS Resolver phản hồi Client: Trả kết quả cuối cùng, lưu vào bộ nhớ đệm.
1.3. Các loại DNS Record phổ biến
Với một tên miền cụ thể, thường có các loại DNS Record sau:
- A Record: trỏ tên miền tới địa chỉ IPv4.
- AAAA Record: trỏ tên miền tới địa chỉ IPv6.
- CNAME Record: trỏ tên miền phụ (subdomain) tới tên miền khác (gọi là bí danh - canonical name). Ví dụ:
www.awscoban.comtrỏ tớiawscoban.com(đây là tên miền chính, gọi là apex hay root domain). Lưu ý, CNAME không áp dụng cho tên miền chính. Điểm này sẽ được nhắc lại trong mục Alias Record phía dưới. - NS Record: xác định Authoritative Name Server đang lưu trữ IP của tên miền.
- MX Record: xác định máy chủ nhận email của tên miền.
- TXT Record: lưu trữ dữ liệu văn bản, thường dùng để xác thực quyền sở hữu tên miền hoặc cấu hình bảo mật email (SPF, DKIM).
2. Route 53
Đây là dịch vụ DNS của DNS, có 3 chức năng chính:
- Quản lý tên miền với Hosted Zone.
- Định tuyến DNS, sẽ được thảo luận trong bài sau.
- Kiểm tra trạng thái tài nguyên (Health Check).
2.1. Hosted Zone
Trong Route 53, Hosted Zone là vùng lưu trữ các DNS Record cho một tên miền cụ thể, quyết định cách người dùng muốn định tuyến đến tên miền đó trên Internet. Khi đăng ký tên miền mới hoặc chuyển tên miền đang có từ một nhà cung cấp khác (gọi là registrar) về Route 53, một Hosted Zone sẽ được tạo cho tên miền đó, được đặt tên giống hệt tên miền.
Có hai loại Hosted Zone:
- Public Hosted Zone: Quản lý DNS Record cho tên miền công khai trên Internet. Có thể truy cập từ cả Internet và VPC.
- Private Hosted Zone: Quản lý DNS Record cho tên miền được sử dụng trong VPC, chỉ có thể truy cập từ VPC.
Với mỗi Hosted Zone, Route 53 sẽ tạo 4 Authoritative Name Server, với 4 NS Record tương ứng, đảm bảo tính sẵn sàng cao.
2.2. Alias Record
Theo quy tắc chung của DNS, CNAME không thể áp dụng cho tên miền chính. Thực tế, rất nhiều trường hợp ta cần trỏ tên miền tới một dịch vụ AWS như S3, API Gateway, Elastic Load Balancer, hay CloudFront. Để khắc phục giới hạn này, Route 53 hỗ trợ Alias Record.
Alias là một trường đặc biệt trong DNS Record của Route 53, cho phép trỏ một tên miền (kể cả tên miền chính) tới tài nguyên AWS. Nếu là tên miền phụ, Alias Record tương đương CNAME. Lưu ý, Alias chỉ áp dụng cho tài nguyên AWS, còn CNAME có thể trỏ tới bất kỳ đâu.
Ví dụ, Alias Record sau trỏ tên miền chính awscoban.com tới một API Gateway:
Name: awscoban.com
Type: A - IPv4 address
Alias: Yes
Alias Target: awscoban-api-a1b2c3d4e5.execute-api.us-east-1.amazonaws.com
Khi sử dụng Alias (hoàn toàn miễn phí), Route 53 sẽ tự động cập nhật địa chỉ IP của dịch vụ AWS đích khi có thay đổi.
2.3. Health Check
Health Check là tính năng quan trọng trong Route 53, theo dõi trạng thái hoạt động của các tài nguyên (máy chủ web, ứng dụng, v.v.). Một Health Check định kỳ (mặc định mỗi 30 giây) gửi yêu cầu đến tài nguyên được giám sát, đánh giá phản hồi để xác định trạng thái: Healthy (hoạt động tốt) hoặc Unhealthy (không hoạt động).
Trong Route 53, tài nguyên được giám sát có thể là:
- Một endpoint (xác định bằng tên miền hoặc địa chỉ IP).
- Một Health Check khác. Hữu ích trong trường hợp nhiều tài nguyên giống nhau được triển khai, mỗi tài nguyên có Health Check riêng, cần xác định trạng thái tổng thể (như tỷ lệ tài nguyên hoạt động bình thường) để cảnh báo.
- Một CloudWatch Alarm. Trạng thái của Alarm sẽ quyết định trạng thái của Health Check.
Tiêu chí đánh giá trạng thái:
AWS triển khai hệ thống “health checker” trên toàn cầu, tại nhiều vị trí địa lý khác nhau. Mỗi health checker đánh giá tình trạng của tài nguyên dựa trên hai giá trị:
- Thời gian phản hồi (Response Time): thời gian từ khi gửi yêu cầu đến khi nhận được phản hồi. Nếu vượt quá ngưỡng định sẵn, kết quả sẽ là Unhealthy.
- Số lần phản hồi liên tiếp: cần vượt qua ngưỡng định sẵn. Ví dụ, nếu ngưỡng là 3, nếu chỉ có 2 lần liên tiếp phản hồi thành công, vẫn là Unhealthy.
Route 53 tổng hợp kết quả từ tất cả health checker, nếu ít nhất 18% số health checker đánh giá tài nguyên là Healthy, trạng thái cuối cùng sẽ là Healthy.
Các loại Health Check phổ biến:
- TCP: kiểm tra kết nối TCP
- HTTP/HTTPS: kiểm tra trạng thái phản hồi, phải trả về mã
2xxhoặc3xxtrong 2 giây. - HTTP/HTTPS với String Matching: ngoài mã phản hồi thành công, trong response phải chứa một chuỗi ký tự xác định.
Tài liệu tham khảo
Trong bài sau, hãy tìm hiểu các phương pháp định tuyến DNS trong Route 53.