CHƯƠNG 3. CƠ SỞ DỮ LIỆU VÀ CACHE.
Mục. Hỗn hợp nguồn (Kết xuất + Tài liệu AWS chính thức).
Topic này kết hợp pattern thực chiến từ dump với tài liệu chính thức AWS.
Tín hiệu tần suất từ dump: RDS (551), DynamoDB (346), Aurora (324), read replica (125), Multi-AZ (81), ElastiCache (57), DAX (52).
Mục. 1) Khung lựa chọn cơ sở dữ liệu (Thi nhanh SAP-C02).
Bắt đầu từ loại workload: OLTP quan hệ, key-value scale lớn, cache in-memory, hay kho phân tích.
Map yêu cầu nhất quán/độ trễ: strong consistency, eventual consistency, scale-out đọc, RTO/RPO đa Region.
Kiểm tra mô hình vận hành: tuning quan hệ managed, độ linh hoạt schema, hành vi traffic đột biến, xử lý connection storm.
Tiêu chí chốt: chọn kiến trúc đơn giản nhất nhưng vẫn đáp ứng đủ ràng buộc cứng.
Mục. 2) Lõi Amazon RDS.
Mục. 2.1 Multi-AZ vs Read Replica (Bẫy xuất hiện cực nhiều).
Multi-AZ DB instance deployment dùng cho high availability/failover, không phải để scale đọc.
Trong Multi-AZ single-standby, replication sang standby là synchronous.
Standby của Multi-AZ không phục vụ traffic đọc.
Read replica là bản sao chỉ-đọc để offload traffic đọc; replication là asynchronous.
Mục. 2.2 Sao lưu và phục hồi.
Automated backup của RDS được giữ theo backup retention period và hỗ trợ point-in-time restore trong cửa sổ đó.
Nếu không chọn retain automated backup khi xóa DB instance thì không thể phục hồi các backup đó sau này.
Mục. 2.3 Mẫu proxy RDS.
RDS Proxy pooling và tái sử dụng kết nối DB để tăng khả năng scale khi workload nhiều kết nối.
Nó giúp hấp thụ traffic surge và bảo vệ database khỏi quá tải kết nối.
Nó tăng khả năng chịu lỗi bằng cách tự nối sang standby khi sự cố, đồng thời giữ ổn định kết nối ứng dụng.
Mục. 3) Amazon cực quang.
Mục. 3.1 Mô hình nhân rộng Aurora.
Aurora cluster có một writer và nhiều Aurora Replica cùng dùng shared cluster storage.
Aurora Replica hỗ trợ scale đọc và là mục tiêu failover.
Replica lag của Aurora thường nhỏ hơn rất nhiều so với 100 ms trong điều kiện bình thường.
Một cluster có thể có tối đa 15 Aurora Replica.
Mục. 3.2 Cơ sở dữ liệu toàn cầu Aurora.
Aurora Global Database dùng một Region chính và tối đa 10 Region phụ chỉ-đọc.
Nó hướng đến DR đa Region và đọc độ trễ thấp toàn cầu.
Replication sang Region phụ thường có độ trễ dưới một giây.
Mục. 3.3 Aurora Serverless v2.
Aurora Serverless v2 tự co giãn năng lực theo nhu cầu, phù hợp workload biến động mạnh.
Rất phù hợp cho dev/test, ứng dụng multitenant và traffic khó dự đoán.
Mục. 4) Amazon DynamoDB.
Mục. 4.1 Mô hình dữ liệu và phân vùng.
Primary key có thể đơn (partition key) hoặc ghép (partition key + sort key).
Phân phối partition key tốt là yếu tố sống còn để tránh hot partition.
Giới hạn thiết kế mỗi partition là 3.000 read units/giây và 1.000 write units/giây.
Mục. 4.2 Đọc mô hình nhất quán.
Eventually consistent read là mặc định và có chi phí bằng một nửa strongly consistent read.
Strongly consistent read chỉ hỗ trợ ở table và LSI, không hỗ trợ ở GSI/Streams.
Mục. 4.3 Bảng tổng thể và xử lý xung đột.
MREC là mode mặc định của global table; replication bất đồng bộ, thường trong khoảng 1 giây hoặc thấp hơn.
MREC giải quyết xung đột theo cơ chế last-writer-wins ở mức item.
MRSC dùng topology Region cố định, hỗ trợ RPO bằng 0, nhưng có nhiều giới hạn chặt hơn.
Trong MRSC, TTL và LSI không được hỗ trợ.
Mục. 4.4 TTL, Luồng, DAX.
TTL tự xóa item hết hạn trong vài ngày mà không tiêu tốn write throughput.
DAX là lớp tăng tốc in-memory cho đọc eventually consistent của DynamoDB, từ ms xuống microseconds ở workload phù hợp.
Dùng DAX cho workload đọc nhiều và nhạy độ trễ ở hot key, không phải mặc định cho mọi bài toán.
Mục. 5) ElastiCache (Valkey/Redis OSS/Memcached).
Mục. 5.1 Lựa chọn động cơ.
Memcached phù hợp mô hình cache đơn giản và scale-out ngang.
Valkey/Redis OSS phù hợp khi cần cấu trúc dữ liệu phong phú, persistence, pub/sub, read replica và automatic failover.
Redis cluster mode enabled hỗ trợ partitioning và online resharding.
Mục. 5.2 Mô hình sử dụng bài kiểm tra.
Cache-aside với Redis là mẫu phổ biến cho microservice đọc nhiều.
Memcached thường xuất hiện khi đề nhấn mạnh tính đơn giản và throughput đa luồng.
Mục. 6) Cơ sở dữ liệu phân tích và chuyên môn (Nhận thức về ranh giới).
Redshift dành cho phân tích SQL/data warehousing, không phải phục vụ OLTP giao dịch.
DocumentDB/Neptune là lựa chọn chuyên biệt; chỉ chọn khi đề nêu rõ nhu cầu document/graph.
Mục. 7) Các mẫu có nguồn gốc từ kết xuất cho Chủ đề-03.
Nhầm lẫn phổ biến nhất là Multi-AZ vs Read Replica.
Nhiều câu giấu yêu cầu DR trong cụm từ như “minimize downtime” + “read scaling”.
Câu DynamoDB thường kiểm consistency mode, chất lượng partition key và hành vi xung đột global table.
Câu cache thường kiểm tra có cần persistence/replication/failover (Redis) hay chỉ cache tạm đơn giản (Memcached).
Bài toán connection surge ở serverless/microservices thường hướng về RDS Proxy.
Mục. 8) Bẫy có xác suất cao.
Chọn Multi-AZ để scale đọc.
Tưởng read replica là đồng bộ và luôn mới nhất.
Dùng strongly consistent read trên GSI/Streams của DynamoDB.
Dùng DAX cho workload ghi nhiều nhưng ít tái sử dụng dữ liệu đọc.
Chọn Redis trong khi bài toán chỉ cần cache object tạm đơn giản.
Dùng Redshift như database OLTP giao dịch.
Mục. 9) Thành thạo.
Cây quyết định cốt lõi giữa RDS vs Aurora vs DynamoDB vs ElastiCache.
Phân biệt trọng tâm giữa Multi-AZ và read replica.
Mục. 10) Điểm yếu.
Runbook failover Aurora đa Region dưới ràng buộc RTO/RPO chặt.
Chọn mode global table DynamoDB (MREC vs MRSC) theo ràng buộc thực tế.
Tinh chỉnh chi phí chi tiết giữa Aurora provisioned, Aurora Serverless v2 và RDS.
Mục ôn tập nhanh, flashcard.
Câu hỏi ôn tập. Multi-AZ in RDS is mainly for what?
Trả lời. High availability and automatic failover, not read scaling.
Câu hỏi ôn tập. Read replica của RDS đồng bộ hay bất đồng bộ?
Trả lời. Bất đồng bộ (asynchronous) từ primary.
Câu hỏi ôn tập. When do you pick RDS Proxy?
Trả lời. When many short-lived connections or unpredictable bursts can overwhelm DB connections.
Câu hỏi ôn tập. Aurora Replicas thường dùng để làm gì?
Trả lời. Scale đọc và làm failover target cho writer khi sự cố.
Câu hỏi ôn tập. Typical Aurora replica lag in normal conditions?
Trả lời. Usually much less than 100 ms.
Câu hỏi ôn tập. Aurora Global Database dùng cho bài toán gì?
Trả lời. Multi-region DR + global low-latency read.
Câu hỏi ôn tập. DynamoDB eventually consistent read có ưu điểm chi phí gì?
Trả lời. Chi phí bằng một nửa strongly consistent read.
Câu hỏi ôn tập. Strongly consistent read có hỗ trợ trên GSI không?
Trả lời. Không.
Câu hỏi ôn tập. TTL trong DynamoDB có tiêu tốn write throughput không?
Trả lời. Không, TTL xóa item hết hạn mà không tiêu tốn write throughput.
Câu hỏi ôn tập. DAX phù hợp nhất với loại workload nào?
Trả lời. Read-heavy, latency-sensitive, eventually consistent hot-path.
Câu hỏi ôn tập. Khi nào chọn Memcached thay vì Redis?
Trả lời. Khi chỉ cần cache đơn giản, scale ngang nhanh, không cần persistence/failover phức tạp.
Câu hỏi ôn tập. Redshift phù hợp workload nào?
Trả lời. SQL analytics/data warehouse quy mô lớn.
Mục. 12) Bài tập tiếp theo.
Kết thúc chương.