Bài viết thuộc nội dung khóa học AWS Learn AWS the Hard Way - chủ đề : ElastiCache do giảng viên Huỳnh Minh Quân phụ trách.

Problem

Ví dụ ta có một database mà được sử dụng để lưu trữ dữ liệu người dùng của một mobile game, và ta thường xuyên phải truy vấn vào database đó để lấy dữ liệu liên quan đến scores và rank của người dùng để đổ dữ liệu lên trên leaderboard. Trang leaderboard này được user truy cập rất thường xuyên, với lượng truy cập rất cao, nhưng dữ liệu này lại hiếm khi thay đổi.

Vì vậy mỗi lần có một user vào trang leaderboard, ta lại phải truy vấn lại xuống database, thực hiện những lại câu truy vấn phức tạp mà dữ liệu lấy ra lại ít khi thay đổi, việc này dẫn đến database của ta chạy quá công suất nhưng lại không cần thiết lắm.

image.png

Resolve

Thì để giải quyết vấn đề trên thì cache mới được sinh ra. Nó sẽ là một layer trung gian giữa user và database, thay vì phải truy vấn trực tiếp vào database để lấy dữ liệu, thì ta sẽ truy cập vào cache để lấy dữ liệu ra.

Cách implement của cache thường được sử dụng nhất là ta request dữ liệu ở trong cache, nếu chưa có dữ liệu ta cần, thì ta sẽ truy vấn xuống dưới database để lấy dữ liệu, sau đó lưu dữ liệu vào trong cache, lần tiếp theo khi ta request thì dữ liệu của ta đã có trong cache.

image.png

Cache là một dạng in-memory key-value stores.

Công nghệ cache phổ biến

Hai công nghệ cache phổ biến và được sử dụng nhiều nhất là Memcached and Redis.

ElastiCache hỗ trợ cả hai loại trên.

ElastiCache

ElastiCache là một dịch vụ của AWS mà cho phép ta tạo một clusters Memcached hoặc Redis một cách dễ dàng thay vì ta phải tự cài đặt và cấu hình nhiều thứ. AWS ElastiCache sẽ cover cho ta nhứng thứ sau:

  • Installation: khi ta tạo một ElastiCache thì AWS sẽ tự động cài đặt những thứ cần thiết cho Memcached và Redis ở bên dưới của nó, ta chỉ cần đợi nó cài xong và xài.
  • Administration: những vấn đề liên quan tới công việc của system admin cho một ElastiCache thì ta không cần phải quan tâm, AWS làm cho ta.
  • Monitoring: ElastiCache sẽ push metrics của nó lên trên CloudWatch.
  • Backups: AWS có option cho ta tự động backup dữ liệu cache (redis only).

So sánh Memcached và Redis

MemcachedRedis
Dữ liệuĐơn giảnPhức tạp
Command line12125
Server-side scriptingNoYes (Lua)
Transactionsnoyes
Multi-threadedyesno

Một lưu ý là ElastiCache chỉ có thể truy cập từ bên trong VPC, ta không thể truy cập nó từ bên ngoài.

Create ElastiCache Memcached

Để tạo một ElastiCache cluster trước tiên ta cần phải tạo subnet group cho nó, ta làm các bước như sau:

  1. Truy cập Elasticache Console https://console.aws.amazon.com/elasticache/home.
  2. Chọn Subnet Groups, bấm vào Create Subnet Group.
  3. Nhập Name và Description.
  4. Chọn VPC ID => Chọn Availability Zone => Chọn Subnet ID mà ta muốn Elasticache Node sẽ được deploy tới.
  5. Nhập tags và bấm Create.

Sau khi tạo Subnet Groups, ta sẽ tạo Elasticache Memcached, ta làm như sau:

  1. Ở Elasticache Console, chọn menu Memcached, bấm Create.
  2. Cluster engine chọn Memcached.
  3. Location ta chọn Amazon Cloud.
  4. Memcached settings ta nhập vào Name, các thông số còn lại bạn có thể chọn hoặc để mặc định.
  5. Mở mục Advanced Memcached settings ra ta sẽ thấy Subnet Group mà ta vừa tạo khi nãy đã được chọn.
  6. Bấm Create.

Video record hướng dẫn tạo ElastiCache Cluster được đăng tải tại link

Chúc mọi người học tốt nhé !

Xem các video học AWS khác

Hướng dẫn Lab VPC : Tạo VPC với Public subnet


Khóa học AWS thực hành + luyện thi chứng chỉ: Learn AWS the Hard Way

Phụ trách lớp Ms Huong: 0382416368