DAX (DynamoDB Accelerator)

1 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

Tổng quan

  • Là service cache in-memory dành riêng cho DynamoDB, được quản lý hoàn toàn (fully-managed), độ khả dụng cao và tích hợp liền mạch.
  • Giúp giảm tắc nghẽn khi đọc (read congestion) bằng cách cache dữ liệu.
  • Độ trễ đọc cache ở mức microseconds – cực nhanh.
  • Không cần thay đổi logic ứng dụng (tương thích với các API hiện tại của DynamoDB).
  • TTL (time-to-live) mặc định cho cache là 5 phút.
  • Ứng dụng (Application) không truy cập trực tiếp DynamoDB, mà thay vào đó đi qua DAX Cluster.
  • DAX Cluster bao gồm nhiều node cache, đóng vai trò như layer trung gian.
  • Khi có yêu cầu đọc:
    • Nếu dữ liệu có trong cache (DAX node) → trả về ngay (microsecond-level).
    • Nếu không có → DAX sẽ fetch từ DynamoDB, lưu vào cache, sau đó trả về.
  • TTL 5 phút: Dữ liệu cache sẽ tự động hết hạn sau 5 phút, đảm bảo không quá cũ.

Tại sao dùng DAX thay vì ElastiCache cho DynamoDB

Về cơ bản:

  • DAX là caching layer chuyên biệt cho DynamoDB → tích hợp sâu với DynamoDB, API tương thích hoàn toàn.
  • ElastiCache là dịch vụ cache general-purpose (Redis/Memcached) → không tích hợp trực tiếp với DynamoDB, phải tự lập trình logic cache thủ công.

Khi nào KHÔNG dùng DAX mà nên dùng ElastiCache?

  • Bạn muốn cache kết quả xử lý phức tạp / aggregation / custom logic:
    • ElastiCache mạnh ở cache result tùy ý (VD: kết quả tổng hợp, tính toán, filter tùy chỉnh).
    • Trong sơ đồ: ElastiCache dùng để "Store Aggregation Result".
  • Use case vượt ra ngoài DynamoDB:
    VD: cache dữ liệu đến từ nhiều nguồn (RDS, API khác…) → ElastiCache linh hoạt hơn.
  • Muốn toàn quyền kiểm soát TTL, eviction policy, hoặc dùng Redis features như pub/sub, sorted set…:
  • ElastiCache mạnh về custom logic + feature-rich hơn.
Bạn thấy bài này thế nào?