AWS CloudFront trong 18 ngày
Ngày 1: Kiến trúc CDN và Tư duy Production
Sáng: Nền tảng CloudFront
CDN giải quyết vấn đề gì (latency, tải origin, DDoS surface) - không chỉ "cache tĩnh"
Kiến trúc: Edge locations, Regional Edge Caches, origins, distributions, cache behaviors
Request routing: DNS anycast, negotiation TLS, cách CloudFront chọn edge gần nhất
Chiều: Thiết lập với tư duy Infrastructure as Code
Tại sao không nên tạo distribution qua console cho production (drift, không audit được)
Giới thiệu CloudFormation/Terraform/AWS CDK cho CloudFront
Thiết lập repo: cấu trúc thư mục cho môi trường dev/staging/prod
Bài tập:
Viết Terraform (hoặc CDK) module tạo CloudFront distribution với S3 origin + OAC (Origin Access Control, không dùng OAI đã deprecated).
Thiết lập custom domain + ACM certificate qua IaC, không thao tác tay trên console.
Thiết lập pipeline CI đơn giản (GitHub Actions) chạy
terraform plankhi có PR thay đổi cấu hình CDN.
Ngày 2: Distributions, Cache/Origin Request Policies ở quy mô production
Sáng: Distribution nâng cao
Multi-origin distribution: S3, ALB, VPC Origin, Lambda Function URL, MediaPackage
Origin Groups và failover - thiết kế cho multi-region active-active/active-passive
Chiều: Cache Policy & Origin Request Policy chuẩn production
Managed vs custom policy - khi nào tự viết, khi nào dùng managed
Cache key design: tránh cache poisoning qua query string/header không kiểm soát
Anti-pattern thường gặp: cache theo
Authorizationheader, cache theo full query string không cần thiết
Bài tập:
Thiết kế cache key strategy cho một API có cả nội dung public và private (viết ra bảng path pattern → cache policy → TTL).
Tạo origin group với health-check based failover cho 2 ALB ở 2 region.
Viết test (script hoặc Postman) xác minh cache hit/miss đúng như thiết kế bằng cách đọc header
X-Cache.
Ngày 3: Response Headers, CloudFront Functions và An toàn Nội dung
Sáng: Response Headers Policy
Security headers chuẩn production:
Strict-Transport-Security,Content-Security-Policy,X-Content-Type-OptionsCORS chuẩn cho SPA + API gateway phía sau CloudFront
Chiều: CloudFront Functions cho logic edge nhẹ
Giới hạn runtime (execution time, memory) - khi nào Function đủ, khi nào cần Lambda@Edge
CloudFront KeyValueStore: dùng cho feature flag, A/B testing, redirect map ở edge mà không cần deploy lại
Bài tập:
Tạo Response Headers Policy với CSP chặt cho ứng dụng SPA, test bằng công cụ như securityheaders.com.
Viết CloudFront Function đọc từ KeyValueStore để redirect theo path - mô phỏng feature flag production.
Viết test tự động (CI) kiểm tra CloudFront Function bằng AWS CloudFront Functions test tool trước khi publish.
Ngày 4: AWS WAF, AWS Shield và Chiến lược Bảo mật theo lớp
Sáng: AWS WAF tích hợp CloudFront
Managed Rule Groups (Core, SQLi, Bot Control) - cách chọn để tránh false positive
Rate-based rules cho production: threshold theo traffic pattern thực tế, không đoán mò
Chiều: AWS Shield Standard/Advanced và HTTPS end-to-end
Shield Advanced: khi nào cần (SLA, DDoS cost protection) cho workload lớn
mTLS cho origin (tính năng mới) - bảo vệ kết nối CloudFront ↔ origin bằng chứng chỉ client
Bài tập:
Triển khai WAF Web ACL với managed rule group + custom rate-limiting rule, dùng "Count mode" trước khi chuyển "Block" (chuẩn rollout production).
Cấu hình mTLS giữa CloudFront và một custom origin.
Viết CloudWatch alarm cảnh báo khi WAF block rate tăng đột biến (dấu hiệu tấn công hoặc false positive).
Ngày 5: Kiểm soát Truy cập Nội dung ở Quy mô
Sáng: Signed URL/Signed Cookie
Kiến trúc phát hành signed URL từ backend (key rotation, canned vs custom policy)
Signed cookie cho multi-file session (video segments, tài liệu nhiều trang)
Chiều: Origin Access Control và Geo/Field-level Encryption
OAC cho S3, Lambda Function URL, MediaStore, VPC Origin qua ALB
Geographic restriction production: allowlist vs blocklist, log để audit
Bài tập:
Xây dựng service nhỏ (Lambda) phát hành signed cookie có xoay vòng key pair, lưu private key trong Secrets Manager.
Viết IAM policy + S3 bucket policy chỉ cho phép OAC của đúng 1 distribution ID truy cập (dùng
AWS:SourceArncondition).Thiết lập cảnh báo khi có request bị chặn bởi geo-restriction vượt ngưỡng bất thường.
Ngày 6: VPC Origins
Sáng: VPC Origins
Kết nối trực tiếp tới ALB/NLB/EC2 trong private subnet - không cần public IP, không cần workaround header bí mật
So sánh với pattern cũ (custom header + WAF rule để giả lập private origin)
Cross-account VPC Origins (RAM sharing) cho kiến trúc multi-account
Chiều: WebSocket, gRPC và giao thức hiện đại qua VPC Origin
WebSocket qua VPC Origin (hỗ trợ từ 2026-05) - ứng dụng real-time chạy hoàn toàn trong private subnet
Origin modification bằng CloudFront Functions: route động tới VPC Origin khác nhau theo request
Bài tập:
Migrate một ALB origin đang public sang VPC Origin, đo lại độ trễ và security posture trước/sau.
Thiết lập cross-account VPC Origin dùng AWS RAM giữa 2 tài khoản (network account và app account).
Viết CloudFront Function thực hiện traffic splitting (ví dụ 10%) giữa 2 VPC Origin để chuẩn bị canary release ở tầng hạ tầng.
Ngày 7: Origin Shield, Failover và Tối ưu Cache Hit Ratio
Sáng: Origin Shield
Cách Origin Shield giảm tải origin khi có nhiều Regional Edge Cache cùng miss
Chọn region cho Origin Shield gần origin thật, không phải gần user
Chiều: Đo lường và tối ưu Cache Hit Ratio (CHR) như một KPI production
Phân tích nguyên nhân CHR thấp: TTL sai, cache key quá rộng,
Cache-Controltừ origin không nhất quánThiết lập dashboard CloudWatch theo dõi CHR theo path pattern
Bài tập:
Bật Origin Shield cho origin có traffic cao, so sánh origin request count trước/sau trên CloudWatch.
Xây dashboard CloudWatch/QuickSight hiển thị CHR theo path, phát hiện path nào đang "cache miss" bất thường.
Viết runbook xử lý khi CHR giảm đột ngột (checklist debug theo thứ tự ưu tiên).
Ngày 8: IPv6, Anycast Static IP và Yêu cầu Compliance/Enterprise
Sáng: IPv6 end-to-end
- IPv6 origin support - chuẩn bị cho yêu cầu dual-stack của một số thị trường/quy định
Chiều: Anycast Static IPs
Khi nào cần dedicated IP: zero-rating với telecom, B2B firewall allowlist
21 địa chỉ IPv4 cố định cho toàn bộ edge - trade-off chi phí và vận hành so với rotating IP mặc định
Bài tập:
Bật IPv6 cho một distribution, kiểm tra bằng test dual-stack (curl -6).
Đánh giá (viết doc ngắn) một trường hợp thực tế công ty bạn có cần Anycast Static IP hay không, dựa trên yêu cầu allowlist của đối tác.
Nếu cần, đăng ký Anycast IP list và gắn vào 1 distribution thử nghiệm.
Ngày 9: Continuous Deployment - Blue/Green và Canary cho CDN Config
Sáng: Continuous Deployment của CloudFront
Tại sao thay đổi cấu hình CDN production trực tiếp là rủi ro (một lỗi cache policy có thể ảnh hưởng toàn bộ traffic)
Staging distribution + traffic weight (canary %) trước khi promote
Chiều: Single-header và session-affinity testing
Test với header cụ thể (dev/QA) song song với canary theo %
Rollback tức thì khi metric xấu đi (error rate, latency)
Bài tập:
Thiết lập continuous deployment: staging distribution nhận 5% traffic canary cho một thay đổi cache policy.
Viết CloudWatch alarm tự động kích hoạt rollback (qua Lambda) khi 5xx rate của staging vượt ngưỡng.
Ghi lại toàn bộ quy trình thành runbook "Cách deploy thay đổi CDN an toàn" cho team.
Ngày 10: Lambda@Edge cho Logic Phức tạp ở Edge
Sáng: Lambda@Edge nâng cao
4 trigger events (viewer request/response, origin request/response) - chọn đúng trigger theo use case
Giới hạn (region us-east-1 deploy, cold start, kích thước package) và cách thiết kế né giới hạn
Chiều: Auth, personalization và A/B testing thật ở edge
JWT validation tại edge (giảm tải origin, chặn request xấu sớm)
A/B testing bằng cookie + Lambda@Edge, đo lường bằng CloudWatch custom metrics
Bài tập:
Viết Lambda@Edge validate JWT ở
viewer-request, trả 401 sớm nếu token không hợp lệ (không chạm origin).Thiết lập A/B test 50/50 bằng Lambda@Edge, log biến thể vào CloudWatch Logs Insights để phân tích.
Viết test unit cho Lambda@Edge function bằng Jest/pytest trước khi deploy (không test tay trên production).
Ngày 11: Video On Demand và Live Streaming ở Quy mô
Sáng: VOD production-grade
MediaPackage + CloudFront: packaging HLS/DASH, DRM cơ bản
Origin Shield cho VOD để giảm chi phí origin storage/egress
Chiều: Live streaming và độ khả dụng cao
MediaLive → MediaPackage → CloudFront, thiết kế cho "5 nines" (tham khảo kiến trúc Prime Video)
Low-latency HLS/DASH và trade-off buffer vs latency
Bài tập:
Dựng pipeline VOD hoàn chỉnh: upload → MediaConvert → S3 → CloudFront với Origin Shield.
Dựng live stream thử nghiệm bằng MediaLive, đo latency đầu-cuối.
Viết kế hoạch DR (disaster recovery) cho live stream: điều gì xảy ra nếu 1 region MediaLive down.
Ngày 12: Field-Level Encryption, OIDC và Zero-Trust ở Edge
Sáng: Field-Level Encryption
- Mã hóa trường nhạy cảm (PII) ngay tại edge trước khi tới origin, tích hợp KMS
Chiều: OpenID Connect tại CloudFront
Xác thực người dùng ở edge trước khi request chạm origin (giảm attack surface)
So sánh: xác thực ở edge (Lambda@Edge + OIDC) vs xác thực ở application layer
Bài tập:
Cấu hình field-level encryption cho trường "credit_card" hoặc tương tự trong form submit.
Tích hợp CloudFront với 1 OIDC provider (Okta/Auth0/Cognito) qua Lambda@Edge, chặn truy cập chưa đăng nhập ngay tại edge.
Viết threat model ngắn: những gì field-level encryption bảo vệ được và không bảo vệ được (ví dụ: không thay thế TLS, không chống injection ở tầng khác).
Ngày 13: SaaS Manager - Kiến trúc Multi-tenant
Sáng: Multi-tenant distribution (tính năng mới 2025)
Một distribution phục vụ hàng nghìn tenant domain, mỗi tenant có thể khác TLS cert, WAF Web ACL, origin path prefix
So sánh với kiến trúc cũ: 1 distribution/tenant (chi phí quản lý, giới hạn số lượng distribution theo tài khoản)
Chiều: Vận hành SaaS Manager production
Onboarding tenant tự động qua API/IaC thay vì thao tác tay
Cô lập lỗi giữa các tenant (blast radius) khi 1 tenant gây sự cố
Bài tập:
Thiết kế (diagram + IaC) một multi-tenant distribution cho 3 tenant giả lập với domain và cert khác nhau.
Viết script tự động hoá onboarding tenant mới (thêm domain, cert, path).
Viết phân tích rủi ro: điều gì xảy ra nếu 1 tenant bị tấn công DDoS - có ảnh hưởng tenant khác không, và cách giảm thiểu.
Ngày 14: Quota, Cost Optimization và Compliance
Sáng: Tuân thủ và Chi phí
PCI DSS, HIPAA - CloudFront trong scope compliance, trách nhiệm shared responsibility
Cost breakdown thật: data transfer out, request charges, invalidation, Shield Advanced, WAF
Chiều: Quota, giới hạn và Security Savings Bundle
Theo dõi service quota bằng Service Quotas + CloudWatch, tránh bị throttle bất ngờ
Đánh giá Security Savings Bundle (cam kết 1 năm đổi 30% discount) - khi nào đáng, khi nào rủi ro
Bài tập:
Phân tích Cost and Usage Report (CUR) của CloudFront trong tài khoản thử nghiệm, xác định top 3 nguồn chi phí.
Thiết lập CloudWatch alarm khi gần chạm quota (ví dụ số lượng distribution, cache behavior).
Viết đề xuất (business case) có nên mua Security Savings Bundle dựa trên traffic dự kiến 12 tháng tới.
Ngày 15: Observability Toàn diện - Logs, Metrics, Real-time
Sáng: Logging chiến lược
Standard logs vs Real-time logs (Kinesis Data Streams) - khi nào cần độ trễ giây thay vì phút
Athena query trên access log để phân tích traffic pattern, lỗi 4xx/5xx theo path
Chiều: CloudWatch Metrics, Alarm và tích hợp SIEM
Custom metrics từ CloudFront Functions/Lambda@Edge
Đẩy log vào SIEM/observability stack (Datadog, Splunk, OpenSearch) cho incident response
Bài tập:
Bật real-time logs, stream vào Kinesis, viết Lambda consumer tính error rate theo cửa sổ 1 phút.
Viết Athena query phân tích top 10 IP gây lỗi 403 (dấu hiệu tấn công) trong 24h qua.
Xây dashboard tổng hợp (CloudWatch Dashboard hoặc Grafana) hiển thị: CHR, error rate, latency p50/p95/p99, WAF block rate trên cùng 1 màn hình.
Ngày 16: Xử lý Sự cố Production và Runbook
Sáng: Incident response cho CDN
Phân loại sự cố: origin down, cache poisoning, WAF false positive chặn nhầm traffic thật, cert hết hạn
Debug flow chuẩn: đọc header
X-Cache,Via, trace request qua Regional Edge Cache
Chiều: Runbook và Game Day
Viết runbook cho từng loại sự cố ở trên, có bước rollback rõ ràng
Chạy "game day" mô phỏng sự cố (chaos engineering nhẹ) để test runbook thật
Bài tập:
Viết runbook chi tiết cho 3 kịch bản: (a) origin trả 5xx hàng loạt, (b) chứng chỉ SSL hết hạn không rotate kịp, (c) WAF chặn nhầm traffic thật sau khi thêm managed rule mới.
Chạy 1 game day: cố tình gây lỗi ở môi trường staging (ví dụ tắt origin), đo thời gian team phát hiện và xử lý theo runbook.
Retro sau game day: cập nhật runbook và alarm dựa trên bài học thực tế.
Ngày 17: Kiến trúc Tổng hợp cho Ứng dụng Quy mô Lớn
Cả ngày:
Thiết kế kiến trúc CloudFront đầy đủ cho một ứng dụng thương mại điện tử: static assets (S3+OAC), API (VPC Origin tới private ALB), video sản phẩm (MediaPackage), real-time inventory (WebSocket qua VPC Origin), đa vùng cho DR
Tích hợp toàn bộ: WAF, Shield, mTLS origin, Origin Shield, continuous deployment, observability
Review chéo giữa các nhóm học viên (nếu học nhóm) hoặc self-review theo checklist Well-Architected
Bài tập:
Vẽ kiến trúc đầy đủ (diagram) và viết toàn bộ bằng IaC (Terraform/CDK) - không còn thao tác console.
Viết checklist Well-Architected Framework riêng cho phần CDN (Security, Reliability, Performance, Cost, Operational Excellence).
Thực hiện load test (k6/Artillery) mô phỏng traffic spike, quan sát behavior của Origin Shield + failover.
Ngày 18: Capstone Project và Chuyển giao Vận hành
Cả ngày:
Hoàn thiện 1 dự án capstone: từ thiết kế → IaC → CI/CD pipeline → observability → runbook, triển khai thật trên tài khoản sandbox
Chuẩn bị tài liệu bàn giao (handover doc) như khi bàn giao cho team vận hành thật: kiến trúc, quy trình deploy, cách xử lý sự cố, chi phí dự kiến
Bài tập:
Deploy capstone project hoàn chỉnh, có ít nhất: multi-origin, WAF, continuous deployment, dashboard observability.
Viết "Production Readiness Review" (PRR) document - checklist thường dùng trước khi go-live tại các công ty lớn.
Present kiến trúc (hoặc ghi lại thành doc) như thể trình bày cho một buổi architecture review thật, nêu rõ trade-off đã chọn và lý do.