Giới thiệu về Amazon Cloudfront và kiến trúc của nó
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 Location và Regional Edge Cache.
Các hướng dẫn Amazon Web Services
- Giới thiệu về Amazon Web Services (AWS)
- Giới thiệu về Amazon S3
- Giới thiệu về Amazon Cloudfront và kiến trúc của nó
- Làm sao để giảm chi phí Amazon Cloudfront?
- Vô hiệu hoá bộ nhớ đệm CloudFront
- Giới thiệu về DigitalOcean Spaces
- Hướng dẫn tạo DigitalOcean Spaces Bucket
- Giới thiệu về Amazon ACM
- Java Awssdk S3 Tải tệp lên S3 Bucket với S3Client
- Tạo AWS accessKeyId/secretAccessKey
- Java Awssdk S3 Liệt kê các đối tượng trong S3 Bucket
- Lưu trữ (host) một Website tĩnh trên Amazon S3
- Vô hiệu hoá bộ nhớ đệm của CloudFront với Java
- Tạo DigitalOcean Spaces Access Key
- Java Awssdk Các Credentials Provider thông dụng
- Java Awssdk Tạo và sử dụng ProfileCredentialsProvider
- Java Awssdk Tạo và sử dụng EnvironmentVariableCredentialsProvider
- Java Awssdk Tạo và sử dụng SystemPropertyCredentialsProvider
- Java Awssdk S3 Tải object lên với S3TransferManager
- Java Awssdk S3 Tải object xuống với S3TransferManager
- Java thao tác với DigitalOcean Spaces sử dụng S3TransferManager
- Java tạo, liệt kê và xoá S3 Bucket
- Aws Console Tạo tài khoản người dùng IAM
- Tạo một vùng chứa Amazon S3 (S3 Bucket)
- Các quy tắc chuyển hướng cho S3 Static Website
- Cấu hình tên miền tuỳ chỉnh cho website tĩnh Amazon S3
- Tạo bản phân phối CloudFront cho S3 Bucket
- Cấu hình các trang phản hồi lỗi cho CloudFront
- Tạo các chính sách S3 Bucket
- Công cụ tạo các chính sách cho AWS - policygen
- So sánh Amazon S3 Rest API Endpoint và S3 Web Endpoint
- Chuyển hướng trong S3 Website với x-amz-website-redirect-location
- Di chuyển (migrate) dịch vụ DNS tới Amazon Route 53
- Chuyển (transfer) đăng ký tên miền tới Amazon Route 53
- Yêu cầu chứng chỉ SSL từ Amazon ACM
Show More