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:

    1. Tạo một CloudFront distribution với S3 bucket làm origin.

    2. Cấu hình custom domain cho distribution của bạn.

    3. 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:

    1. Tạo một distribution với nhiều origins (S3 và custom).

    2. Cấu hình custom cache behavior cho một path pattern cụ thể.

    3. 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:

    1. Tạo một response headers policy để thêm security header.

    2. Viết một CloudFront Function để chuyển hướng (redirect) các request cụ thể.

    3. 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:

    1. Kích hoạt AWS WAF cho CloudFront distribution và cấu hình một rate-limiting rule cơ bản.

    2. Thiết lập HTTPS cho distribution của bạn bằng custom domain và chứng chỉ SSL/TLS.

    3. 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:

    1. Tạo signed URL cho nội dung riêng tư bằng canned policy.

    2. Triển khai xác thực signed cookie cho khu vực bị hạn chế trên website của bạn.

    3. 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:

    1. Cấu hình Origin Shield cho một origin để giảm tải cho origin server.

    2. Thiết lập origin failover cho một distribution với nhiều origins.

    3. 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:

    1. 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.

    2. Sử dụng CloudFront Functions để thêm custom header vào tất cả origin requests.

    3. 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:

    1. Thiết lập một CloudFront distribution để phân phối video VOD từ S3.

    2. Tạo một live stream đơn giản bằng MediaLive và phân phối nó qua CloudFront.

    3. 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:

    1. Viết một CloudFront Function đơn giản để thêm header "X-Cache-Status" vào response.

    2. Tạo một Key-Value Store và sử dụng nó trong CloudFront Function để lưu trữ thông tin.

    3. 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:

    1. Viết một Lambda@Edge function để thêm header "X-Powered-By" vào response.

    2. Tạo một Lambda@Edge function để kiểm tra token JWT và ủy quyền người dùng.

    3. 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:

    1. 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ý.

    2. Tạo một CloudWatch alarm để cảnh báo khi request error rate vượt quá ngưỡng cho phép.

    3. 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:

    1. Cấu hình field-level encryption cho một trường cụ thể trong response của origin.

    2. 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.

    3. 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:

    1. 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.

    2. Kiểm tra hạn ngạch hiện tại của bạn trong CloudFront console.

    3. 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:

    1. Thiết kế kiến trúc CloudFront cho một ứng dụng web thương mại điện tử lớn.

    2. Tối ưu hóa CloudFront distribution để phân phối nội dung video 4K.

    3. 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:

    1. Tạo một bản tóm tắt các kiến thức quan trọng về CloudFront.

    2. Lập kế hoạch để tiếp tục học và nâng cao kiến thức về CloudFront.

    3. Chia sẻ kinh nghiệm và kiến thức của bạn với cộng đồng CloudFront.