Route 53

7 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

Amazon Route 53

Amazon Route 53 là một dịch vụ DNS (Domain Name System) có tính sẵn sàng cao, khả năng mở rộng tốt và được quản lý toàn phần (fully managed) bởi AWS.

  • Authoritative DNS
    • Route 53 là Authoritative DNS – nghĩa là:
      • Người dùng có toàn quyền chỉnh sửa bản ghi DNS (A, CNAME, MX, TXT,...).
      • Không giống như recursive DNS (chỉ tìm kiếm), authoritative DNS là nguồn dữ liệu gốc trả lời truy vấn.
  • Route 53 cũng là một Domain Registrar
    • Bạn có thể mua domain trực tiếp qua AWS Route 53.
    • Không cần phải đăng ký domain ở GoDaddy, Namecheap,... rồi cấu hình thủ công.
    • Route 53 sẽ tự tạo các bản ghi NS trỏ đến chính DNS server của Amazon.
  • Health Check 
    • Route 53 có thể kiểm tra định kỳ EC2/web server của bạn còn hoạt động hay không.
    • Khi phát hiện server "chết", nó có thể:
      • Tự động chuyển traffic đến endpoint khác (failover routing).
      • Cảnh báo hoặc trigger một Lambda.
  • 100% Availability SLA
    • Đây là dịch vụ duy nhất trong AWS đảm bảo SLA (Service Level Agreement) 100%.
    • Tức là AWS cam kết Route 53 không được phép down, nếu có sẽ phải bồi thường.
  • Tên gọi "Route 53"
    • Tên "53" xuất phát từ port 53, là cổng mặc định cho giao thức DNS.

Records

Khi bạn cấu hình DNS trong Amazon Route 53, bạn sẽ tạo ra các DNS Record, mỗi record sẽ định nghĩa cách Route 53 phản hồi lại các truy vấn từ client khi họ truy cập domain/subdomain của bạn.

Cấu trúc 1 DNS Record trong Route 53

  • Domain/Subdomain Name
    • Tên domain hoặc subdomain mà bản ghi áp dụng.
      Ví dụ: example.com, api.example.com, www.example.com.
  • Record Type
    • Ví dụ:
      • A – trỏ domain về địa chỉ IPv4.
      • AAAA – trỏ domain về địa chỉ IPv6.
      • CNAME – trỏ sang domain khác (alias).
      • NS – khai báo name server.
  • Value
    • Giá trị của bản ghi tùy theo loại.
    • Nếu là bản ghi A: địa chỉ IP, ví dụ 12.34.56.78.
    • Nếu là bản ghi CNAME: tên domain khác, ví dụ example.net.
  • Routing Policy
    • Định nghĩa cách Route 53 chọn giá trị trả về cho truy vấn DNS.
    • Đây là điểm mạnh vượt trội của Route 53 so với DNS truyền thống.
  • TTL (Time To Live)
    • Thời gian mà DNS resolver (bộ phân giải) được phép cache record trước khi bắt buộc phải hỏi lại Route 53.
    • TTL thấp (ví dụ 60s) dùng khi hệ thống thay đổi IP thường xuyên.
    • TTL cao (ví dụ 300s+) dùng để cache lâu hơn, giảm chi phí truy vấn.

Các loại DNS Record được Route 53 hỗ trợ

  • Cơ bản và thường dùng
    • A: ánh xạ domain → IPv4.
    • AAAA: ánh xạ domain → IPv6.
    • CNAME: ánh xạ domain → domain khác.
    • NS: ánh xạ domain đến nameserver (quan trọng với domain delegation).
  • Advanced – Chuyên sâu hơn
    • MX: mail exchange (server nhận email).
    • TXT: chứa thông tin dạng text (SPF, DKIM, v.v.).
    • SPF: xác định domain nào được phép gửi email.
    • SRV: chỉ định server cho dịch vụ cụ thể (dùng trong VoIP, v.v.).
    • SOA: Start of Authority – bắt buộc trong mỗi zone.
    • PTR: dùng cho reverse DNS lookup (IP → domain).
    • CAA: chỉ định CA được phép cấp SSL cho domain.
    • NAPTR, DS: dùng trong các ứng dụng đặc thù (DNSSEC, SIP...).

Record Types

  • A record – ánh xạ hostname → IPv4
    • Trả về địa chỉ IPv4 tương ứng với một hostname.
    • Ví dụ: example.com → 192.0.2.1.
  • AAAA record – ánh xạ hostname → IPv6
    • Trả về địa chỉ IPv6 tương ứng với một hostname.
    • Ví dụ: example.com → 2001:db8::1.
  • CNAME record – ánh xạ hostname → hostname khác
    • Dùng để alias một tên miền sang một tên miền khác (hostname target mà bạn trỏ tới phải có bản ghi A hoặc AAAA, tức là bản ghi ánh xạ hostname đó tới địa chỉ IP thật).
    • Target phải là hostname hợp lệ và có A/AAAA record.
    • Không được tạo bản ghi CNAME tại "Zone Apex" (tức domain root).
    • Không hợp lệ: CNAME record cho example.com
    • Hợp lệ: CNAME record cho www.example.com
  • NS record – ánh xạ domain đến Name Server của Hosted Zone
    • Dùng để chỉ định name servers sẽ chịu trách nhiệm xử lý các truy vấn DNS cho một zone (domain).
    • Đây là bản ghi bắt buộc để cấu hình DNS delegation.
    • Nó quyết định toàn bộ luồng routing traffic DNS cho domain đó.

Hosted Zones

Là một container chứa các bản ghi định nghĩa cách định tuyến lưu lượng đến một domain và các subdomain của nó.

  • Public Hosted Zones
    • Chứa các bản ghi quy định cách định tuyến lưu lượng trên Internet (tên miền public).
      Ví dụ: application1.mypublicdomain.com
  • Private Hosted Zones
    • Chứa các bản ghi quy định cách định tuyến lưu lượng nội bộ trong một hoặc nhiều VPCs (tên miền private).
      Ví dụ: application1.company.internal
  • Chi phí:
    • Bạn trả $0.50/tháng cho mỗi hosted zone

"DNS name được tạo sau khi tạo EC2 instance có liên quan gì đến Route 53 không?"

✅ Câu trả lời: KHÔNG trực tiếp liên quan.

Khi bạn tạo một EC2 instance, AWS tự động tạo ra một Public DNS Name và một Private DNS Name cho instance đó.

Những DNS này được quản lý bởi hệ thống DNS nội bộ của Amazon, không thông qua Route 53 (trừ khi bạn chủ động cấu hình).

Records TTL (Time To Live)

TTL (Time To Live) là thời gian mà kết quả truy vấn DNS sẽ được cache lại trên client hoặc resolver.

  • High TTL (VD: 24 giờ)
    • Giảm lưu lượng gửi đến Route 53 ⇒ tiết kiệm chi phí
    • Nhưng nếu có thay đổi record, client có thể vẫn dùng giá trị cũ (cache lâu → outdated)
  • Low TTL (VD: 60 giây)
    • Tăng lưu lượng gửi đến Route 53 ⇒ tăng chi phí
    • Record hết hạn nhanh ⇒ giảm nguy cơ dùng dữ liệu cũ
    • Dễ thay đổi record, gần như real-time (ví dụ: failover, chuyển IP…)

CNAME vs Alias trong Route 53

  • AWS Resources:
    • AWS resource như Load Balancer, CloudFront thường sẽ expose một hostname AWS nội bộ, ví dụ:
      lb1-1234.us-east-2.elb.amazonaws.com
    • Bạn muốn gán domain dễ nhớ hơn, ví dụ:
      myapp.mydomain.com
  • CNAME Record:
    • Trỏ một hostname này sang một hostname khác, ví dụ:
      app.mydomain.com → blabla.anything.com
    • ⚠️ Chỉ dùng được cho NON-ROOT domain
      (tức là subdomain như app.mydomain.com, không dùng được cho mydomain.com)
  • Alias Record:
    • Trỏ hostname đến AWS Resource (ELB, CloudFront, S3 static site…), ví dụ:
      app.mydomain.com → lb1-1234.us-east-2.elb.amazonaws.com
    • Đây là một phần mở rộng (extension) của chức năng DNS truyền thống – nó không phải là chuẩn DNS chính thống mà là cơ chế AWS-specific.
    • AWS sẽ tự động cập nhật destination IP nếu tài nguyên AWS thay đổi IP, giúp tránh lỗi DNS cache trỏ sai IP.
    • Hoạt động được với cả:
      • ROOT domain (mydomain.com)
        • Không giống CNAME, Alias có thể dùng tại Zone Apex (root domain)
          🔹 Ví dụ: example.com ⟶ myalb-123.elb.amazonaws.com
      • Subdomain (app.mydomain.com)
    • Miễn phí (Route 53 không tính chi phí truy vấn Alias như với CNAME)
    • Hỗ trợ native health check (AWS tự kiểm tra trạng thái đích)
    • Alias record luôn có type là A hoặc AAAA
    • Các Targets cho bản ghi Alias
      • Elastic Load Balancers
      • CloudFront Distributions
      • API Gateway
      • Elastic Beanstalk environments
      • S3 Websites
      • VPC Interface Endpoints
      • Global Accelerator accelerator
      • Bản ghi Route 53 trong cùng một hosted zone
      • Bạn không thể thiết lập bản ghi ALIAS cho một tên miền DNS của EC2

Không thể set TTL cho Alias Record – AWS quản lý TTL tự động.

Domain Registrar vs. DNS Service

  • Bạn mua hoặc đăng ký domain của mình với một Domain Registrar (nhà đăng ký tên miền), thông thường bằng cách trả phí hàng năm (ví dụ: GoDaddy, Amazon Registrar Inc., ...)
  • Domain Registrar thường cung cấp cho bạn một dịch vụ DNS để quản lý các bản ghi DNS.
  • Tuy nhiên, bạn có thể sử dụng dịch vụ DNS khác để quản lý bản ghi DNS của mình.

Ví dụ: 

Mua domain từ GoDaddy nhưng dùng Route 53 để quản lý DNS records.
  • Khi bạn mua domain từ GoDaddy, mặc định GoDaddy quản lý DNS cho domain đó.
  • Tuy nhiên, nếu bạn muốn dùng Amazon Route 53 để quản lý DNS (vì muốn tận dụng các feature như routing policy, health check, latency-based routing,...), bạn cần:
    • Tạo Public Hosted Zone trên Route 53 tương ứng với domain (stephanetheteacher.com).
    • Lấy các nameservers được tạo tự động trong Hosted Zone của Route 53.
  • Truy cập vào GoDaddy, vào phần quản lý domain, thay đổi nameservers sang các nameservers (NS Records) của Route 53.
  • Khi đó:
    • Route 53 là nơi thực hiện toàn bộ xử lý DNS cho domain.
    • GoDaddy chỉ là nơi giữ quyền sở hữu domain.
    • Do DNS không còn được quản lý bởi GoDaddy, nên bạn không thể chỉnh sửa record tại GoDaddy nữa
Bạn thấy bài này thế nào?