AWS CloudFront trong 15 ngày
Ngày 1: Hiểu Cơ bản về CloudFront
Sáng: Giới thiệu về CloudFront
CDN là gì và tại sao nên sử dụng?
Các khái niệm cốt lõi: Edge locations, origins, distributions, cache behaviors
Cách CloudFront phân phối nội dung (request routing, caching)
Vai trò của CloudFront trong bảo mật và hiệu suất
Chiều: Các Trường hợp Sử dụng và Bắt đầu
Các trường hợp sử dụng CloudFront phổ biến: Static websites, media streaming, dynamic content acceleration
Thực hành: Thiết lập một distribution CloudFront cơ bản cho static website
Khám phá giao diện điều khiển CloudFront và các cài đặt quan trọng
Bài tập:
Tạo một CloudFront distribution với S3 bucket làm origin.
Cấu hình custom domain cho distribution của bạn.
Invalidate một file trong CloudFront cache.
Ngày 2: Làm việc với Distributions và Policies
Sáng: Tìm hiểu Sâu về Distribution
Tạo, cập nhật và xóa distributions
Hiểu các cài đặt distribution (origins, behaviors, SSL/TLS)
Các tính năng nâng cao của distribution (custom error pages, logging)
Chiều: Cache và Origin Request Policies
Managed policies và custom policies
Cấu hình cache behaviors để tối ưu hóa hiệu suất
Kiểm soát cách CloudFront tương tác với origins
Bài tập:
Tạo một distribution với nhiều origins (S3 và custom).
Cấu hình custom cache behavior cho một path pattern cụ thể.
Thiết lập origin request policy để thêm custom headers vào requests.
Ngày 3: Response Headers và Thao tác Nội dung
Sáng: Response Headers Policies
Sửa đổi headers trong responses từ CloudFront
Security headers, CORS configuration, v.v.
Managed và custom response headers policies
Chiều: Thêm, Xóa và Thay thế Nội dung
CloudFront Functions (trước đây là Lambda@Edge) để thao tác nội dung
Thêm, cập nhật, xóa và tùy chỉnh nội dung tức thì
Phục vụ các tệp nén và tạo custom error responses
Bài tập:
Tạo một response headers policy để thêm security header.
Viết một CloudFront Function để chuyển hướng (redirect) các request cụ thể.
Triển khai custom error page cho lỗi 404.
Ngày 4: AWS WAF và Các Nguyên tắc Cơ bản về Bảo mật
Sáng: Tích hợp AWS WAF
Kích hoạt và cấu hình AWS WAF cho CloudFront
Rate limiting, IP blocking, OWASP rules, v.v.
Giám sát các sự kiện bảo mật thông qua dashboards
Chiều: HTTPS và Truy cập An toàn
Vai trò của CloudFront trong việc phân phối HTTPS
Yêu cầu HTTPS giữa người xem và CloudFront
Chứng chỉ SSL/TLS và cấu hình
Bài tập:
Kích hoạt AWS WAF cho CloudFront distribution và cấu hình một rate-limiting rule cơ bản.
Thiết lập HTTPS cho distribution của bạn bằng custom domain và chứng chỉ SSL/TLS.
Triển khai HTTP Strict Transport Security (HSTS) cho domain của bạn.
Ngày 5: Hạn chế Truy cập Nội dung
Sáng: Signed URLs và Signed Cookies
Bảo vệ nội dung riêng tư với quyền truy cập giới hạn thời gian
Lựa chọn giữa signed URLs và cookies
Chi tiết triển khai và các cân nhắc về bảo mật
Chiều: Origin Access Control
Hạn chế truy cập vào origins (S3, MediaPackage, v.v.)
IAM roles và policies để kiểm soát chi tiết
Geographic restrictions và field-level encryption
Bài tập:
Tạo signed URL cho nội dung riêng tư bằng canned policy.
Triển khai xác thực signed cookie cho khu vực bị hạn chế trên website của bạn.
Cấu hình S3 bucket policy để chỉ cho phép truy cập từ CloudFront distribution của bạn.
Ngày 6: Tối ưu hóa Caching và Tính Khả dụng
Sáng: Caching với Edge Locations
Cách thức hoạt động của edge caching trong CloudFront
Tối ưu hóa cache hit ratio để cải thiện hiệu suất
Giới thiệu về Origin Shield và cách sử dụng
Chiều: Tăng Tính Khả dụng và Quản lý Cache
Sử dụng origin failover để đảm bảo tính liên tục của dịch vụ
Các phương pháp quản lý thời gian hết hạn của cache
Caching dựa trên query string parameters và cookies
Bài tập:
Cấu hình Origin Shield cho một origin để giảm tải cho origin server.
Thiết lập origin failover cho một distribution với nhiều origins.
Tạo một cache policy để cache nội dung dựa trên header cụ thể.
Ngày 7: Xử lý Sự cố và Phân tích Log
Sáng: Troubleshooting CloudFront
Các vấn đề thường gặp và cách giải quyết
Sử dụng công cụ debugging của CloudFront
Phân tích CloudFront access logs để tìm hiểu nguyên nhân lỗi
Chiều: Request/Response Behavior
Cách CloudFront xử lý request và response cho các loại origins khác nhau
Tùy chỉnh headers trong origin requests
Hiểu cách CloudFront xử lý các mã trạng thái HTTP khác nhau
Bài tập:
Phân tích một đoạn access log của CloudFront để tìm hiểu về các request được thực hiện.
Sử dụng CloudFront Functions để thêm custom header vào tất cả origin requests.
Tạo một custom error response cho mã trạng thái 503.
Ngày 8: Video On Demand (VOD) và Live Streaming
Sáng: Phân phối VOD
Sử dụng CloudFront để phân phối nội dung video theo yêu cầu
Tối ưu hóa caching và delivery cho video
Các tính năng hỗ trợ VOD của CloudFront (MediaPackage, adaptive bitrate streaming)
Chiều: Phân phối Live Streaming
Cấu hình CloudFront cho live streaming
Sử dụng MediaLive làm origin cho live stream
Các yếu tố quan trọng trong việc phân phối live stream hiệu quả
Bài tập:
Thiết lập một CloudFront distribution để phân phối video VOD từ S3.
Tạo một live stream đơn giản bằng MediaLive và phân phối nó qua CloudFront.
Tìm hiểu về low-latency streaming protocols như HLS và DASH.
Ngày 9: CloudFront Functions và Lambda@Edge
Sáng: Giới thiệu về các loại Functions
So sánh CloudFront Functions và Lambda@Edge
Các trường hợp sử dụng phù hợp cho từng loại
Các khái niệm cơ bản về event-driven programming
Chiều: CloudFront Functions
Cấu trúc của một CloudFront Function
Viết và triển khai CloudFront Function đầu tiên
Sử dụng Key-Value Store trong CloudFront Functions
Bài tập:
Viết một CloudFront Function đơn giản để thêm header "X-Cache-Status" vào response.
Tạo một Key-Value Store và sử dụng nó trong CloudFront Function để lưu trữ thông tin.
Tạo một CloudFront Function để thực hiện chuyển hướng (redirect) dựa trên đường dẫn (path) của request.
Ngày 10: Lambda@Edge
Sáng: Làm việc với Lambda@Edge
Thiết lập môi trường phát triển cho Lambda@Edge
Tạo và cấu hình Lambda@Edge function
Các trigger event của Lambda@Edge
Chiều: Các trường hợp sử dụng Lambda@Edge
Tùy chỉnh header, cookie và URL
Xác thực và ủy quyền người dùng
A/B testing và personalization
Bài tập:
Viết một Lambda@Edge function để thêm header "X-Powered-By" vào response.
Tạo một Lambda@Edge function để kiểm tra token JWT và ủy quyền người dùng.
Sử dụng Lambda@Edge để thực hiện A/B testing cho hai phiên bản khác nhau của một trang web.
Ngày 11: Báo cáo, Metrics và Logging
Sáng: Báo cáo CloudFront
Các loại báo cáo có sẵn trong CloudFront console
Cách đọc và hiểu các báo cáo này
Sử dụng báo cáo để phân tích hiệu suất và tối ưu hóa
Chiều: CloudWatch Metrics
Giám sát CloudFront metrics bằng Amazon CloudWatch
Tạo CloudWatch alarm để cảnh báo về các vấn đề
Sử dụng API để truy xuất metrics
Bài tập:
Phân tích báo cáo CloudFront để tìm hiểu các trang phổ biến nhất và lưu lượng truy cập theo khu vực địa lý.
Tạo một CloudWatch alarm để cảnh báo khi request error rate vượt quá ngưỡng cho phép.
Sử dụng AWS CLI để truy xuất CloudFront metrics từ CloudWatch.
Ngày 12: Bảo mật Nâng cao
Sáng: Field-Level Encryption
Bảo vệ dữ liệu nhạy cảm bằng cách mã hóa ở mức trường
Tích hợp CloudFront với AWS Key Management Service (KMS)
Quản lý key encryption và decryption
Chiều: OpenID Connect (OIDC)
Sử dụng OIDC để xác thực và ủy quyền người dùng
Tích hợp CloudFront với các nhà cung cấp OIDC
Các trường hợp sử dụng phổ biến của OIDC với CloudFront
Bài tập:
Cấu hình field-level encryption cho một trường cụ thể trong response của origin.
Tích hợp CloudFront với một nhà cung cấp OIDC (ví dụ: Auth0, Okta) để xác thực người dùng.
Tạo một Lambda@Edge function để kiểm tra token OIDC và ủy quyền truy cập.
Ngày 13: Tuân thủ và Hạn ngạch
Sáng: Tuân thủ
Các tiêu chuẩn tuân thủ mà CloudFront đáp ứng (PCI DSS, HIPAA, v.v.)
Cách sử dụng CloudFront để đảm bảo tuân thủ trong ứng dụng của bạn
Kiểm tra và xác minh tuân thủ
Chiều: Hạn ngạch và Giới hạn
Các hạn ngạch và giới hạn khác nhau của CloudFront
Cách theo dõi việc sử dụng và tránh vượt quá hạn ngạch
Các tùy chọn để tăng hạn ngạch khi cần thiết
Bài tập:
Nghiên cứu các yêu cầu tuân thủ của ngành của bạn và cách CloudFront có thể giúp đáp ứng chúng.
Kiểm tra hạn ngạch hiện tại của bạn trong CloudFront console.
Tạo một kế hoạch để theo dõi việc sử dụng và yêu cầu tăng hạn ngạch nếu cần.
Ngày 14: Ví dụ và Tình huống Thực tế
Cả ngày:
Thảo luận về các ví dụ và tình huống thực tế phức tạp hơn
Thiết kế kiến trúc CloudFront cho các ứng dụng quy mô lớn
Giải quyết các vấn đề phức tạp về hiệu suất và bảo mật
Thực hành các bài tập nâng cao để củng cố kiến thức
Bài tập:
Thiết kế kiến trúc CloudFront cho một ứng dụng web thương mại điện tử lớn.
Tối ưu hóa CloudFront distribution để phân phối nội dung video 4K.
Giải quyết một vấn đề về hiệu suất thực tế bằng cách sử dụng các công cụ và kỹ thuật đã học.
Ngày 15: Ôn tập và Tổng kết
Cả ngày:
Ôn tập lại các kiến thức đã học trong 14 ngày qua
Thảo luận về các câu hỏi và thắc mắc
Tổng kết các bài học kinh nghiệm và kiến thức quan trọng
Đánh giá quá trình học tập và đề xuất các bước tiếp theo
Bài tập:
Tạo một bản tóm tắt các kiến thức quan trọng về CloudFront.
Lập kế hoạch để tiếp tục học và nâng cao kiến thức về CloudFront.
Chia sẻ kinh nghiệm và kiến thức của bạn với cộng đồng CloudFront.