Lộ trình
Amazon Web ServicesAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 12 / 30

Ngày 12: Caching layer

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
aws-saa-c03ngày 12
hoàn thành12 / 30 bài
Bối cảnh bài học

Chọn caching layer theo dữ liệu, TTL, invalidation, consistency và location; hiểu cache không phải source of truth.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Chọn caching layer theo dữ liệu, TTL, invalidation, consistency và location; hiểu cache không phải source of truth.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Tìm hiểu ElastiCache (Redis/Memcached), CloudFront
  • Vẽ sơ đồ kiến trúc có thêm CDN và cache
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Một catalog đọc nhiều gây tải database và latency cao, nhưng giá sản phẩm không được stale quá lâu. Cache toàn bộ response không có TTL/invalidation sẽ tạo bug correctness.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • CloudFront cache gần user cho content/HTTP edge; ElastiCache/MemoryDB phù hợp application/data cache theo access pattern.
  • Cache-aside thường app đọc cache rồi fallback origin và ghi cache; TTL/invalidation quyết định freshness.
  • Cache hit giảm latency/load nhưng tăng complexity, cost và invalidation risk.
  • Cache không thay database durability/backup/authorization.

Cache là trade-off

Cache tạo một bản sao tạm thời gần consumer. Hãy quyết định cache key, TTL, invalidation, behavior khi miss và quyền truy cập. CloudFront và ElastiCache không cùng vị trí/abstraction.

Bài tập

Thiết kế cache cho catalog, profile và session. Ghi freshness requirement, source of truth, cache miss path, invalidation khi update và hành vi khi cache cluster lỗi. Không dùng cache để che một query/database design tệ mà không đo evidence.

Bài giảng chuyên sâu

Cache là bản sao có hợp đồng freshness

Catalog thường là ứng viên cache vì read-heavy, nhưng giá và quyền truy cập không giống nhau. CloudFront cache HTTP/object ở edge; ElastiCache/MemoryDB là application/data layer. Với cache-aside, app đọc cache, miss thì đọc origin rồi ghi cache; khi update phải quyết định invalidate ngay, TTL ngắn hay chấp nhận stale.

Một cache key sai có thể trả dữ liệu tenant này cho tenant khác; TTL quá dài gây giá cũ; cache stampede làm origin quá tải khi cùng miss. Cache không thay source of truth, backup hay authorization. Cluster lỗi phải có fallback, timeout và metric hit ratio.

Bài tập: thiết kế cache matrix cho catalog, profile và session gồm key, TTL, invalidation, miss behavior, authorization và cleanup. Failure drill: stale value, cache unavailable và thundering herd.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
aws cloudfront list-distributions --profile study --output table
aws elasticache describe-cache-clusters --profile study --output table
Hands-on lab

Thực hành theo scenario

Vẽ request path có/không có cache. Chọn cache key, TTL, invalidation và behavior khi miss/stale cho catalog, user profile và session. Đo giả lập hit/miss bằng bảng, không cần tạo cluster có phí.

Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Phân biệt edge cache và data cache.
  • Nêu cache key/TTL/invalidation cho từng workload.
  • Giải thích cache miss, stampede và stale data.
  • Giữ authorization ở origin/app, không tin cache public mặc định.
Transfer to exam / production

Bẫy thường gặp và trade-off

Caching cải thiện latency và read load nhưng không tự giải quyết consistency; scenario có freshness/security requirement phải đọc kỹ.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Rủi ro chính khi thêm cache cho dữ liệu thay đổi thường xuyên là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2