ElastiCache là gì? Cài đặt ElastiCache trên EC2 instance sử dụng Redis Cache cho WordPress

Nó là 1 web service của Amazon Cloud, là 1 service giống như rất nhiều service khác, ví dụ EC2, S3, VPC… mục đích cho developer có thể kết hợp các service lại với nhau tạo thành các combo, phục vụ use case của developer trong việc phát triển ứng dụng. ElastiCache chính là dịch vụ cung cấp Memcached, Redis. Thay vì bây giờ phải tạo các máy ảo EC2, xong sau đó cài đặt Memcached hoặc Redis, rồi cấu hình, rồi config nhiều thứ khác nữa, thì ElastiCache cho phép developer config, setup, manage nhanh hơn, bằng việc click click trên giao diện web => tập trung thời gian cho việc phát triển ứng dụng, đỡ phải care nhiều về hạ tầng.

ElastiCache cung cấp service về Redis, Memcached. Vậy lý do ra đời Redis, Memcached là gì?

2 thằng này rất là nổi tiếng, ai developer chắc cũng biết. Redis, Memcached là 2 platform (mình không biết là nên dùng từ platform, hay tool, hay enviroment nữa TT ) dùng để lưu trữ data trên bộ nhớ trong (RAM). Lý do ra đời 2 thằng này, đó là vì data được lưu trữ trên RAM, thì tốc độ write, read rất là nhanh, nhanh hơn rất nhiều so với việc query từ database (MySQL, SQL Server, PostgresSQL…) cái mà lưu trữ trên ổ cứng (disk). Tốc độ read data nhanh thì người dùng sẽ có những trải nghiệm tốt => ứng dụng của bạn sẽ thành công hơn.

Theo đúng kịch bản thì ứng dụng server sẽ kiểm tra trong cache đầu tiên, để tìm dữ liệu mà nó cần, nếu không tồn tại thì nó sẽ truy vấn tới các node database.

Nó tự phát hiện ra lỗi, khi có lỗi, nó sẽ thay thế và tự thêm mới 1 cluster. Trong suốt thời gian này, truy vấn sẽ được gửi tới database => database sẽ bị tăng lưu lượng.

Riêng với ElastiCache chạy Redis, có 1 tính năng của Amazon là Multi-AZ replication group, nếu tính năng này được bật, thì:

  • Khi primary node bị lỗi => read replica sẽ được tự động đẩy lên làm primary
  • Node lỗi => sẽ tự động được thay thế bởi 1 node mới. Vậy primary node là gì? Read replica node là gì? Primary node đó là node chạy Redis với đủ quyền read lẫn write, còn read replica thì chỉ có quyền read, 1 con primary có thể có tới 5 con read replica, mục đích để san sẻ tải.

ElastiCache có kết hợp với DNS của Amazon, để khi node mới thay thế node lỗi, thì node mới sẽ có IP, policy của node cũ luôn, ứng dụng của developer sẽ được chạy thông suốt, mà developer không phải config lại cái gì. Lưu ý: việc sao chép data giữa các cluster là không đồng bộ và sẽ mất 1 khoảng thời gian delay.

Đầu tiên mình sẽ tạo ElasticCache trên AWS, Từ menu Services chọn dịch vụ ElasticCache >> click Get Started Now

Ở bước 2, Cluster engine chọn Redis và nhập các thông tin cơ bản trong session Redis settings.

Nhập Name và chọn Subnets trong session Advanced Redis settings.

Sau khi tạo thành công sẽ mất một vài phút cho đến khi Status chuyển sang trạng thái available

Check vào checkbox trước Cluster Name để xem chi tiết.

Vào phần quản lý Security Groups trong EC2 edit group user có tên như trên và thêm rules Custom TCP có port 6079

Về việc cấp quyền access, thì ElastiCache dựa theo NETWORK. Nghĩa là nó dựa vào địa chỉ IP, subnetmask để xây dựng lên các chính sách network, việc access sẽ dựa vào security groups này.

Lưu ý: các node không bao giờ được access từ ngoài internet, hoặc từ EC2 bên ngoài VPC chạy ElastiCache. Có thể hạn chế xâm nhập vào bằng cách cấu hình trong ACL (Access List) Về việc manage, sử dụng service IAM, AWS Identity của Amazon để định nghĩa các chính sách cho các AWS User.

Dùng lệnh telnet để kiểm tra kết nối.

telnet wordpress.zsljpw.0001.apse1.cache.amazonaws.com 6379

Để kích hoạt Redis Cache cho website WordPress, trước tiên, các bạn cần phải cài đặt và kích hoạt plugin Redis Object Cache

Mở file wp-config.php của website bạn muốn cài Redis Cache ra, thêm đoạn code bên dưới vào.

define('WP_REDIS_HOST', 'wordpress.zsljpw.0001.apse1.cache.amazonaws.com');

Sau đó truy cập Settings => Redis => Click vào nút Enable Object Cache.

Nếu trạng thái chuyển từ Disabled sang Connected thì có nghĩa là bạn đã kích hoạt Redis Object Cache thành công.

Trong đó:

  • Để xóa cache, các bạn click vào nút Flush Cache.
  • Để vô hiệu hóa Redis Object Cache, các bạn click vào nút Disable Object Cache.

Thật đơn giản phải không nào? Giờ là lúc trải nghiệm những điều tuyệt vời mà Redis Cache mang lại.

Chúc các bạn thành công!

Leave a Reply

Your email address will not be published. Required fields are marked *

Blogs © 2018 Frontier Theme