1. Amazon ElastiCache là gì?
Amazon ElastiCache là một dịch vụ quản lý các cache như Redis hoặc Memcached, được sử dụng để lưu trữ dữ liệu tạm thời và tăng tốc độ truy xuất dữ liệu từ ứng dụng. Với ElastiCache, bạn có thể giảm thiểu tải cho cơ sở dữ liệu chính bằng cách sử dụng cache để lưu trữ dữ liệu được truy xuất thường xuyên, giúp giảm độ trễ và tăng hiệu suất cho ứng dụng. ElastiCache được quản lý bởi AWS và cung cấp các tính năng như cập nhật hệ điều hành, tối ưu hóa hiệu suất và quản lý khả năng mở rộng tự động để đáp ứng nhu cầu tải của ứng dụng.
– Lợi ích mang lại.
+ Các bộ nhớ cache là cơ sở dữ liệu trong bộ nhớ với hiệu suất cao và độ trễ thấp, giúp giảm tải cho cơ sở dữ liệu trong trường hợp các tác vụ chỉ đọc dữ liệu nhiều.
+Giúp ứng dụng của bạn trở nên không lưu trạng thái (stateless).
+AWS chịu trách nhiệm về bảo trì hệ điều hành / vá lỗ hổng, tối ưu hóa, thiết lập, cấu hình, giám sát, khôi phục sau sự cố và sao lưu.
+Sử dụng ElastiCache đòi hỏi phải thay đổi mã ứng dụng đáng kể.
2. ElastiCache Solution Architecture – DB Cache.
Trong kiến trúc giải pháp ElastiCache – DB Cache, ứng dụng sẽ truy vấn đến ElastiCache để lấy dữ liệu. Nếu dữ liệu không có sẵn trong ElastiCache, ứng dụng sẽ truy vấn RDS để lấy dữ liệu và lưu vào ElastiCache để lần sau truy vấn nhanh hơn. Việc sử dụng ElastiCache giúp giảm tải cho RDS và cải thiện hiệu suất cho ứng dụng. Tuy nhiên, để đảm bảo rằng dữ liệu được lấy từ cache là phiên bản mới nhất, cache phải có chiến lược vô hiệu hóa (invalidation strategy) để đảm bảo rằng chỉ dữ liệu mới nhất mới được lưu trữ trong cache.
3. ElastiCache Solution Architecture – User Session Store.
Khi người dùng đăng nhập vào ứng dụng bất kỳ, ứng dụng sẽ ghi dữ liệu phiên đăng nhập vào ElastiCache. Khi người dùng truy cập vào một phiên khác của ứng dụng, instance đó sẽ lấy dữ liệu phiên đăng nhập từ ElastiCache và cho phép người dùng tiếp tục sử dụng ứng dụng mà không cần phải đăng nhập lại. Điều này giúp giảm tải cho cơ sở dữ liệu chính và cải thiện hiệu suất ứng dụng.
4. ElastiCache – Redis vs Memcached.
– Redis.
Các tính năng của Redis bao gồm:
- Multi AZ với tự động chuyển vùng: Redis hỗ trợ Multi AZ với chuyển vùng tự động để cải thiện tính khả dụng và độ tin cậy của ứng dụng.
- Các bản sao đọc để tăng cường tính sẵn sàng và khả năng chịu lỗi: Redis cho phép tạo các bản sao đọc để đáp ứng nhu cầu đọc và tăng tính khả dụng của ứng dụng.
- Bền vững dữ liệu bằng AOF: Redis hỗ trợ khả năng bền vững dữ liệu bằng cơ chế AOF (Append-only file) để đảm bảo tính toàn vẹn của dữ liệu.
- Các tính năng sao lưu và khôi phục: Redis cung cấp các tính năng sao lưu và khôi phục dữ liệu để đảm bảo tính khả dụng của dữ liệu trong trường hợp có sự cố xảy ra.
– MEMCACHED.
Đây là một số đặc điểm của Memcached:
- Multi-node để phân mảnh dữ liệu (sharding).
- Không có tính sẵn sàng cao (replication).
- Không lưu trữ dữ liệu lâu dài (non-persistent), tức là dữ liệu sẽ bị mất khi Memcached service bị khởi động lại hoặc bị tắt.
- Không có tính năng backup và restore, tức là không thể lưu trữ dữ liệu của Memcached vào đĩa cứng để khôi phục lại sau này.
- Kiến trúc đa luồng (multi-threaded architecture).