openplanning

Giới thiệu về Amazon Cloudfront và kiến trúc của nó

Xem thêm các chuyên mục:

Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- Amazon Cloudfront là gì?

Nếu bạn có một website với người dùng đến từ khắp nơi trên thế giới bạn sẽ gặp một vấn đề là những người dùng ở quá xa nơi đặt máy chủ của bạn sẽ phải chờ đợi rất lâu để nhận được phản hồi từ website.
CDN là từ viết tắt của Content Delivery Network (Mạng phân phối nội dung). CDN là một mạng lưới gồm rất nhiều máy chủ được đặt tại nhiều nơi trên thế giới, chúng lưu trữ các bản sao nội dung của Website của bạn để phân phối tới những người dùng gần nó. Amazon CloudFront là một trong những hệ thống CDN lớn nhất thế giới.
Ở đây chúng ta có 2 khái niệm:
Origin Server
Origin Server (Máy chủ gốc): Là nơi đặt các file gốc của bạn, nó có thể là một HTTP Server, Amazon S3 Bucket, ...
Edge Location (POP - Point of Presence)
Edge Location (Vị trí biên) cũng được biết đến với tên gọi POP (Point of Presence) (Điểm hiện diện) là nơi mà yêu cầu của người dùng sẽ được gửi đến. Chú ý rằng yêu cầu của người dùng sẽ không trực tiếp được gửi đến Origin Server.
Hãy nhìn vào hình minh hoạ dưới đây, chúng ta sẽ phân tích xem Cloudfront sẽ thực hiện những điều gì khi người dùng yêu cầu một file từ Website của bạn:
1- Người dùng truy cập vào Website của bạn và yêu cầu một file chẳng hạn một file ảnh hoặc HTML,...
2 - DNS định tuyến yêu cầu tới POP (Edge Location) có phản hồi nhanh nhất (độ trễ nhỏ nhất), thông thường sẽ là một POP có vị trí địa lý gần người dùng nhất, và  nó sẽ phục vụ yêu cầu của người dùng.
3 - Tại POP (Edge Location), CloudFront sẽ kiểm tra bộ nhớ đệm (cache) của nó xem file mà người dùng yêu cầu sẵn có hay không, nếu sẵn có, file sẽ được trả về cho người dùng. Nếu file không có trong bộ nhớ đệm (cache) thì CloudFront sẽ thực hiện các bước sau:
  • 3a - CloudFront sẽ gửi một yêu cầu tới Origin Server để lấy dữ liệu file.
  • 3b - Origin Server sẽ gửi file tới Edge Location.
  • 3c - Ngay khi các bytes dữ liệu đầu tiên từ Origin Server gửi đến Edge Location chúng sẽ được gửi tới người dùng. CloudFront cũng thêm file này vào bộ nhớ đệm (cache) của Edge Location cho lần tiếp theo phục vụ một người nào đó yêu cầu file này.

2- Kiến trúc mới của CloudFront

Tháng 11 năm 2016 Amazon nâng cấp kiến trúc của CloudFront, dưới đây là hình minh hoạ sự khác biệt giữa kiến trúc cũ và kiến trúc mới.
Chúng ta nhìn thấy sự xuất hiện của Regional Edge Cache trong kiến trúc mới.
Với kiến trúc CloudFront mới, điều gì sẽ xẩy ra khi người dùng yêu cầu một file từ Website của bạn?
1 - Người dùng truy cập vào Website của bạn và yêu cầu một file chẳng hạn một file ảnh hoặc HTML,...
2 - Yêu cầu của người dùng sẽ được gửi đến một POP (Edge Location) có phản hồi nhanh nhất (độ trễ nhỏ nhất).
3 - Tại POP (Edge Location): nếu file người dùng yêu cầu tồn tại trên bộ nhớ đệm của POP nó sẽ được trả về cho người dùng. Ngược lại CloudFront sẽ thực hiện các bước sau:
  • 3a - CloudFront sẽ chuyển tiếp yêu cầu tới Regional Edge Cache.
  • 3b - Nếu file tồn tại trên bộ nhớ đệm của Regional Edge Cache nó sẽ được gửi tới Edge Location. Ngược lại nó chuyển tiếp yêu cầu tới Origin Server (...)
  • 3c - Ngay khi các bytes dữ liệu đầu tiên từ Regional Edge Cache gửi đến Edge Location chúng sẽ được gửi tới người dùng. CloudFront cũng thêm file này vào bộ nhớ đệm (cache) của Edge Location cho lần tiếp theo phục vụ một người nào đó yêu cầu file này.
Regional Edge Cache có bộ nhớ đệm lớn hơn rất nhiều so với một Edge Location riêng lẻ, vì vậy nó lưu trữ các file lâu hơn bao gồm cả những file ít phổ biến. Trong khi đó Edge Location có bộ nhớ đệm nhỏ hơn nên các file phổ biến sẽ được lưu trữ lâu dài. Theo thời gian nếu một file nào đó trở lên ít phổ biến nó sẽ bị loại bỏ khỏi bộ nhớ đệm của Edge Location.
Sự có mặt của Regional Edge Cache giúp giảm các yêu cầu được gửi đến Origin Server.

3- Bản đồ Edge Locations

Bản đồ dưới đây cho bạn thấy vị trí địa lý của các Edge Location và các Regional Edge Cache trên thế giới:

4- Invalidation

Khi một file được lưu trữ trên Edge Location (hoặc Regional Edge Cache) nó sẽ có một khoảng thời gian hiệu lực (Khoảng thời gian nó tồn tại trên bộ đệm). Nếu trước khi thời gian hiệu lực kết thúc nó được truy cập bởi người dùng thì khoảng thời gian hiệu lực của file sẽ được thiết lập lại từ đầu, ngược lại file sẽ bị loại bỏ khỏi bộ nhớ đệm.
Chú ý: Thời gian hiệu lực của các file trên Regional Edge Cache lớn hơn nhiều so với thời gian hiệu lực của các file trên Edge Location.
Nếu bạn thay đổi nội dung 1 file nào đó trên Origin Server (Máy chủ gốc), người dùng có thể vẫn không thể tiếp cận được nội dung mới, bởi vì CloudFront sẽ gửi cho người dùng phiên bản cũ của file nếu nó đang được lưu ở bộ nhớ đệm.
Bạn có thể gửi yêu cầu Invalidate (Vô hiệu hoá) tới CloudFront để nói với CloudFront rằng hãy xoá một danh sách các file nào đó ra khỏi bộ nhớ đệm của tất cả các Edge LocationRegional Edge Cache.
  • TODO Link?

Xem thêm các chuyên mục: