Hướng dẫn thiết lập phân phối qua Amazon CloudFront dành cho Amazon S3
Amazon CloudFront hoạt động liền mạch với Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) nhằm đẩy nhanh hoạt động phân phối nội dung web cũng như giảm tải cho các máy chủ gốc của bạn. Amazon S3 là một lựa chọn tuyệt vời cho những người muốn lưu trữ dữ liệu trên đám mây và cung cấp dữ liệu đó dưới dạng nội dung web. Nếu bạn muốn cung cấp chức năng hoặc nội dung động, hãy xem hướng dẫn thiết lập phân phối qua Amazon CloudFront dành cho Đám mây điện toán linh hoạt của Amazon (Amazon EC2).
Những lợi ích của việc thiết lập phân phối qua Amazon CloudFront với Amazon S3 là gì?
Phân phối qua mạng phân phối nội dung (CDN) Amazon Cloudfront mang lại nhiều lợi ích cho người dùng S3.
Tốc độ truyền dữ liệu nhanh
CloudFront cho phép bạn phân phát nội dung của mình với tốc độ nhanh tới người xem trên toàn thế giới. Nhiều vị trí biên CloudFront lưu vào bộ nhớ đệm và cung cấp nội dung của bạn gần hơn đến người dùng của bạn, giảm độ trễ và giảm dung lượng từ máy chủ gốc của bạn.
Cải thiện bảo mật và hiệu năng
CloudFront cũng hạn chế quyền truy cập vùng lưu trữ S3 của bạn. Khi chỉ cho phép các điểm cuối CloudFront cấp quyền truy cập nội dung của bạn, các ứng dụng của bạn sẽ an toàn và đáp ứng nhanh hơn.
Truyền dữ liệu tiết kiệm chi phí
Định giá CloudFront cho phép bạn tùy chỉnh cung cấp theo ngân sách. AWS không tính phí truyền dữ liệu giữa nguồn được lưu trữ trên AWS như S3 và CloudFront, giúp tìm nạp nguồn trở thành một lựa chọn hiệu quả về chi phí.
Hướng dẫn đẩy nhanh tốc độ tải nội dung động của bạn với CloudFront và S3
Trong video, hãy xem cách định cấu hình nguồn của bạn và bắt đầu thử nghiệm phân phối qua CDN CloudFront của bạn chỉ trong 15 phút.
Bước 1. Truy cập Bảng điều khiển AWS | Bước 2. Tạo một vùng lưu trữ Amazon S3 mới | Bước 3. Tạo bản phân phối qua CloudFront | Bước 4. Chỉ định cài đặt phân phối của bạn | Bước 5. Định cấu hình nguồn | Bước 6. Định cấu hình Danh tính truy cập gốc | Bước 7. Định cấu hình hành vi bộ nhớ đệm mặc định | Bước 8. Định cấu hình TTL | Bước 9. Định cấu hình các tính năng bổ sung | Bước 10. Kiểm tra bản phân phối qua CloudFront
Bước 1. Truy cập Bảng điều khiển AWS
Để bắt đầu, hãy đăng nhập vào Bảng điều khiển quản lý AWS của bạn và chọn Amazon S3 từ danh sách dịch vụ.
Bước 2. Tạo một vùng lưu trữ Amazon S3 mới
Từ đó, bạn có thể:
- Tạo một vùng lưu trữ S3 nếu bạn chưa có, bằng cách chọn Tạo vùng lưu trữ.
- Chỉ định tên vùng lưu trữ tuân thủ DNS.
- Chọn Khu vực mà bạn muốn đặt vùng lưu trữ.
Sau đó, bạn có thể tạo vùng lưu trữ. Thông qua bảng điều khiển hoặc API S3, bạn có thể thêm nhiều tệp hơn vào vùng lưu trữ của mình hoặc tạo các vùng lưu trữ mới nếu muốn. Khi bạn tạo một vùng lưu trữ S3 ban đầu, sẽ cần chút thời gian để truyền thông tin đổi tên DNS, thường lên đến 15 phút.
Bước 3. Tạo bản phân phối qua CloudFront
Tiếp theo, truy cập CloudFront từ phần Kết nối mạng và phân phối nội dung của danh sách dịch vụ trong bảng điều khiển AWS. Nếu bạn đã mở CloudFront, phần này cũng có thể có trong lịch sử để truy cập nhanh hơn. Từ đây, bạn có thể tạo một bản phân phối web mới bằng cách nhấp vào Tạo bản phân phối.
Bước 4. Chỉ định cài đặt phân phối
Lúc này, bạn có thể bắt đầu nhập cài đặt phân phối. Việc này bắt đầu bằng cách chỉ định miền S3 mà bạn đã tạo trong trường Tên miền gốc.
Bước 5. Đặt cấu hình nguồn
Nhập Tên miền gốc. Nếu bạn đã tạo vùng lưu trữ S3 trong cùng một tài khoản AWS, vùng này sẽ xuất hiện trong danh sách thả xuống trong trường. Nếu vùng này nằm trong một tài khoản khác, hãy kiểm tra cài đặt vùng lưu trữ để cấp quyền truy cập CloudFront.
Việc cấp quyền truy cập cho phép CloudFront đọc các đối tượng từ vùng lưu trữ của bạn. Bạn cũng có thể chỉ định một đường dẫn gốc nếu đặt tất cả các đối tượng của mình vào một thư mục con.
Bước 6. Định cấu hình Danh tính truy cập gốc
Từ đây, bạn có thể hạn chế quyền truy cập nguồn Amazon S3. Nếu bạn chọn có, hệ thống sẽ yêu cầu bạn tạo Danh tính truy cập gốc hoặc chọn một danh tính hiện có, cho phép CloudFront đọc các đối tượng từ vùng lưu trữ của bạn. Bạn cũng có tùy chọn cho phép CloudFront cập nhật chính sách vùng lưu trữ cho bạn.
Nếu bạn chọn không hạn chế quyền truy cập, người dùng có thể bỏ qua CloudFront và truy cập nội dung của bạn trực tiếp thông qua URL vùng lưu trữ S3. Đối với bất kỳ nội dung riêng tư hoặc nhạy cảm nào, điều quan trọng là phải đặt các hạn chế truy cập chính xác.
Trong phần này, bạn cũng có thể chỉ định Đường dẫn gốc nếu bạn lưu trữ tất cả các đối tượng của mình trong một thư mục con. Bạn có thể quy định Tiêu đề tùy chỉnh gốc bằng một giá trị được chỉ định mà CloudFront sẽ chuyển tiếp đến nguồn trên mỗi yêu cầu. Điều này rất hữu ích đối với các nguồn tùy chỉnh, vì cho biết yêu cầu xuất phát từ CloudFront hoặc máy khách khác.
Bước 7. Định cấu hình hành vi bộ nhớ đệm mặc định
Khi đó, bạn có nhiều tùy chọn khác nhau trong Cài đặt hành vi bộ nhớ đệm mặc định.
Chính sách giao thức người xem cho phép bạn chọn cách xử lý các giao thức HTTP và HTTPS. Bạn có thể chọn Chuyển hướng yêu cầu HTTP sang HTTPS, ví dụ như cho phép bạn hỗ trợ các yêu cầu thông qua một trong hai giao thức. Bạn cũng có thể chỉ định hỗ trợ Chỉ HTTPS, trong trường hợp đó lưu lượng HTTP sẽ bị giảm. Điều này đảm bảo bạn tuân thủ các thông lệ tốt nhất trong bảo mật web.
CloudFront cho phép bạn chỉ định phương thức HTTP mà bạn muốn CloudFront chấp nhận. Cài đặt mặc định là GET, HEAD. Chọn một trong các tùy chọn còn lại (GET, HEAD, OPTIONS hoặc GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE) sẽ cho phép bạn định cấu hình cách CloudFront lưu phương thức tùy chọn vào bộ nhớ đệm.
Khi đó, bạn có thể chỉ định tiêu đề HTTP mà bạn muốn chuyển tiếp đến nguồn. Thông thường, bạn nên cho phép các tiêu đề theo yêu cầu và hành vi phản hồi tương ứng cho nguồn Amazon S3 của bạn. Đặc biệt, nếu nguồn của bạn đang xem xét các tiêu đề HTTP cụ thể để quyết định đối tượng cần trả về, bạn nên cho phép các tiêu đề đó. Nếu bạn chuyển tiếp tất cả các tiêu đề HTTP, CloudFront sẽ thực sự bỏ qua các lớp bộ nhớ đệm và hoàn toàn không cố lưu đối tượng vào bộ nhớ đệm.
Bước 8. Đặt cấu hình cho TTL
Trong phần tiếp theo này, bạn có thể chỉ định Thời gian tồn tại (TTL), quản lý thời gian nội dung được lưu trong bộ nhớ đệm trước khi hết hạn. Sử dụng tiêu đề bộ nhớ đệm gốc sẽ được chọn theo mặc định. Ngoài ra, bạn có thể tùy chỉnh giới hạn thời gian trên và dưới cho các đối tượng được lưu trữ trong bộ nhớ đệm CloudFront.
Nếu chọn chỉnh sửa các cài đặt này, bạn sẽ được nhắc nhập TTL tối thiểu và tối đa trong vài giây. Khi đó, nếu tiêu đề của bạn trả về một giá trị ngoài giá trị tối thiểu hoặc tối đa của bạn, CloudFront sẽ sử dụng TTL tối thiểu hoặc tối đa của bạn. Nếu giá trị trả về nằm trong các giới hạn đó thì CloudFront sẽ sử dụng giá trị được trả về từ nguồn của bạn.
Nếu nguồn của bạn không trả về tiêu đề kiểm soát bộ nhớ đệm, TTL mặc định sẽ được sử dụng thay thế. Trong video ví dụ của chúng tôi, giá trị mặc định được đặt thành 86.400 giây, tương đương 24 giờ.
Bước 9. Định cấu hình các tùy chọn bổ sung
Trong phần tiếp theo này, bạn có thể chọn lưu nội dung dựa trên cookie và tham số chuỗi truy vấn vào bộ nhớ đệm.
Như với các tiêu đề HTTP, khuyến nghị chỉ cho phép cookie hoặc giá trị chuỗi truy vấn có liên quan đến nguồn của bạn. Bạn cũng có thể chuyển tiếp những nội dung này và CDN vẫn sẽ vẫn cố lưu vào bộ nhớ đệm. Hãy cẩn thận nếu chọn chuyển tiếp tất cả vì có thể làm giảm đáng kể tỷ lệ truy cập bộ nhớ đệm của bạn nếu CloudFront chuyển tiếp mọi thứ. Do đó, bạn có thể có một số lượng lớn các đối tượng được lưu trong bộ nhớ đệm nhiều lần vì truy vấn và giá trị cookie có thể có nhiều biến khác nhau.
Khi đó, bạn có nhiều tùy chọn hơn trong các trường sau:
- Bạn có thể chọn Phát trực tuyến liền mạch nếu đang phân phối video theo yêu cầu (VOD) bằng CloudFront.
- Bạn có thể chọn Hạn chế quyền truy cập người xem nếu người dùng sẽ truy cập nội dung riêng tư trong CloudFront.
- Bạn có thể chọn Nén đối tượng tự động nếu CloudFront của bạn sẽ phân phối các tệp nén.
- Bạn có thể tạo nhiều hàm khác nhau để gọi bằng cách sử dụng phần Sự kiện Lambda@Edge. Để biết thêm thông tin, hãy xem Tùy chỉnh ở biên với Lambda@Edge.
Trong Cài đặt phân phối, bạn có thể chỉ định phần của mạng CloudFront mà bạn muốn sử dụng. Theo mặc định, CloudFront sẽ sử dụng tất cả các vị trí biên để có hiệu năng tốt nhất. Điều này sẽ giúp phân phối nội dung của bạn nhanh nhất có thể trên toàn thế giới.
Nếu bạn chỉ dự kiến người xem ở các khu vực cụ thể, chẳng hạn như Hoa Kỳ, Canada và Châu Âu, thì bạn chỉ có thể chỉ định những khu vực đó là lớp giá thấp hơn. Điều này không có nghĩa là người xem bên ngoài các khu vực đó không thể truy cập nội dung của bạn mà CloudFront sẽ chỉ định tuyến họ đến vị trí biên gần nhất của họ. Nếu sử dụng Tường lửa ứng dụng web của AWS (AWS WAF) với CloudFront, bạn cũng có thể định cấu hình các cài đặt đó tại đây.
Trước khi bạn lưu bản phân phối, điều quan trọng là phải quản lý Chứng chỉ Lớp cổng bảo mật (SSL) của bạn. Bạn có hai tùy chọn:
- Sử dụng Chứng chỉ CloudFront mặc định.
- Tải lên hoặc yêu cầu Chứng chỉ SSL tùy chỉnh từ Trình quản lý chứng chỉ của AWS (ACM) và liên kết chứng chỉ đó với bản phân phối qua CloudFront của bạn; điều này sẽ phù hợp nếu bạn sử dụng miền tùy chỉnh.
Cuối cùng, bạn có thể sử dụng các cài đặt còn lại để chỉ định:
- Phiên bản HTTP được hỗ trợ mà bạn muốn sử dụng.
- Bạn có sử dụng tính năng Ghi nhật ký hay không và Vùng lưu trữ cho bản ghi mà CloudFront sẽ sử dụng để lưu trữ mọi bản ghi truy cập.
- Ghi nhật ký cookie có hoạt động hay không.
Từ đó, bạn có thể nhập mô tả và tạo bản phân phối. Sau khi lưu, sẽ mất khoảng 15 phút để bản phân phối của bạn được triển khai trên toàn thế giới.
Bước 10. Kiểm tra bản phân phối qua CloudFront
Khi bản phân phối đã sẵn sàng, bạn có thể nhấp vào để xem lại cài đặt. Màn hình đầu tiên sẽ hiển thị cho bạn một số tab và cài đặt cấu hình mà bạn đã chỉ định. Từ đó, bạn có thể thêm nguồn bổ sung và nhiều hành vi bộ nhớ đệm, nếu cần.
CloudFront cũng cho phép bạn tạo các trang lỗi tùy chỉnh hoặc thay đổi thời gian lưu phản hồi lỗi trong bộ nhớ đệm bằng cách chọn Tạo phản hồi lỗi cho khách hàng. Bạn có thể điều chỉnh các cài đặt này cho từng mã lỗi HTTP. Giả sử muốn thử lại cho mỗi mã lỗi 403, bạn có thể chỉ định TTL tối thiểu là 0 giây. Theo mặc định, CloudFront lưu mọi thứ vào bộ nhớ đệm trong 300 giây để giảm bớt một số tải trên nguồn. Bạn cũng có thể tạo phản hồi lỗi tùy chỉnh cho từng mã lỗi nếu muốn.
Trong tab Hạn chế, bạn có thể Bật giới hạn địa lý để cho phép hoặc không cho phép người xem ở các vị trí cụ thể xem nội dung của bạn. Tab Vô hiệu hóa sẽ cho phép bạn xóa các đối tượng tùy chỉnh khỏi bộ nhớ đệm biên của CloudFront. Cuối cùng, bạn có thể sử dụng tab Thẻ để áp dụng các thẻ tùy chỉnh, giúp bạn sắp xếp và xác định các bản phân phối của mình.
Sau khi hoàn thành, hãy sao chép miền và dán vào trình duyệt của bạn để xem bản phân phối của bạn trên thực tế. Bạn cũng có thể tìm hiểu cách phân phối nội dung động của ứng dụng bằng CloudFront với phiên bản máy chủ web Amazon EC2.
Mẫu Amazon CloudFormation giúp bạn bắt đầu sử dụng CloudFront
Mẫu Amazon CloudFormation cũng sẽ giúp bạn bắt đầu sử dụng CloudFront. Mẫu này sẽ khởi chạy vùng lưu trữ S3 để lưu trữ các tệp tĩnh của bạn ở quy mô lớn, sau đó cung cấp nội dung đó cho người dùng của bạn qua CDN CloudFront.
Để biết thêm thông tin, hãy đọc bài đăng trên blog có tiêu đề Amazon S3 + Amazon CloudFront: Khớp trên đám mây và tải mẫu CloudFormation.
Tài nguyên bổ sung về Phân phối nội dung qua CloudFront
Bạn không biết rõ cách bắt đầu sử dụng CloudFront? Xem hướng dẫn bắt đầu sử dụng mạng phân phối nội dung của chúng tôi hoặc truy cập trung tâm Tài liệu về Mạng phân phối nội dung của Amazon Web Services.
Xem các tài nguyên sau về quản lý bản phân phối CloudFront của bạn trên S3 trong Trung tâm kiến thức hỗ trợ cao cấp của chúng tôi:
Tài nguyên khác
Khám phá thêm tài nguyên về Amazon CloudFront