Thursday, November 21, 2024

[AWS] ElastiCache for Solution Architects

-

1. ElastiCache – Cache Security.

Trong Amazon ElastiCache, bạn có thể sử dụng IAM Authentication hoặc Redis AUTH để cung cấp bảo mật cho Redis hoặc Memcached. IAM Authentication cho Redis sử dụng IAM roles để cấp quyền truy cập cho ElastiCache, và chỉ được sử dụng cho mức bảo mật cấp API. Redis AUTH là một phương pháp xác thực thêm cho Redis bằng cách thiết lập mật khẩu hoặc mã thông báo khi tạo Redis cluster, cung cấp một cấp độ bảo mật bổ sung trên cơ sở của security groups. Redis cũng hỗ trợ mã hóa TLS trong quá trình truyền dữ liệu. Memcached hỗ trợ xác thực dựa trên SASL (Simple Authentication and Security Layer) để đảm bảo bảo mật trong quá trình truyền dữ liệu.

2. Patterns for ElastiCache.

ElastiCache là một dịch vụ quản lý bộ nhớ đệm cho các ứng dụng của AWS. Có nhiều loại mẫu thiết kế khác nhau cho việc sử dụng ElastiCache. Một số mẫu thiết kế phổ biến bao gồm:

  1. Cache-Aside: Dữ liệu được lưu trữ trong ElastiCache khi yêu cầu đầu tiên được thực hiện, và từ đó được truy xuất từ bộ nhớ đệm trong tương lai. Nếu không tìm thấy trong bộ nhớ đệm, ứng dụng sẽ đọc dữ liệu từ nguồn dữ liệu và lưu trữ trong ElastiCache để sử dụng cho các yêu cầu sau.
  2. Write-Through: Dữ liệu được lưu trữ trong ElastiCache ngay khi nó được thêm hoặc cập nhật trong nguồn dữ liệu chính. Việc đọc dữ liệu cũng được thực hiện thông qua ElastiCache, giúp cải thiện hiệu suất đọc.
  3. Session Store: Dữ liệu phiên (session data) được lưu trữ trong ElastiCache để tăng tốc độ xử lý của các yêu cầu phiên.
  4. Cache-Aside with Read/Write Through: Kết hợp cả hai mẫu thiết kế Cache-Aside và Write-Through, cho phép cập nhật dữ liệu vào bộ nhớ đệm và cơ sở dữ liệu cùng một lúc, đảm bảo tính nhất quán dữ liệu giữa bộ nhớ đệm và cơ sở dữ liệu.

Mỗi mẫu thiết kế được sử dụng cho một mục đích cụ thể và có thể giúp tăng hiệu suất và độ tin cậy của ứng dụng.

3. ElastiCache – Redis Use Case.

Redis là một trong hai loại cache được hỗ trợ bởi Amazon ElastiCache, và nó có nhiều trường hợp sử dụng khác nhau. Sau đây là một số trường hợp sử dụng phổ biến của Redis trong ElastiCache:

  1. Cache database queries: Redis có thể được sử dụng để cache các kết quả truy vấn từ cơ sở dữ liệu, giúp giảm thời gian truy cập cơ sở dữ liệu và cải thiện hiệu suất.
  2. Store session data: Redis có thể được sử dụng để lưu trữ dữ liệu phiên, giúp đảm bảo tính đồng bộ trên nhiều máy chủ và giảm thiểu số lượng yêu cầu truy vấn cơ sở dữ liệu.
  3. Message broker: Redis có thể được sử dụng như một message broker để truyền tải thông điệp giữa các ứng dụng và các thành phần khác nhau của hệ thống.
  4. Real-time analytics: Redis có thể được sử dụng để lưu trữ dữ liệu thời gian thực và thực hiện các phân tích thời gian thực, giúp cải thiện hiệu suất và tăng tính sẵn sàng.
  5. Leaderboard: Redis có thể được sử dụng để lưu trữ dữ liệu leaderboard và xếp hạng người dùng, giúp cải thiện hiệu suất và tính sẵn sàng.

Các trường hợp sử dụng này chỉ là một số ví dụ về cách Redis có thể được sử dụng trong ElastiCache. Tùy thuộc vào yêu cầu của ứng dụng của bạn, có thể có nhiều trường hợp sử dụng khác nhau cho Redis và các giải pháp cache khác trong ElastiCache.

5.

Bạn có 3 tùy chọn như sau:

  1. Initial setup: Đây là giai đoạn thiết lập ban đầu để sử dụng Amazon ElastiCache. Nó bao gồm việc tạo một tài khoản AWS và cấu hình một số thiết lập bảo mật cơ bản để bảo vệ dịch vụ.
  2. Create a cluster: Khi đã thiết lập, bạn cần tạo một cluster để sử dụng với ứng dụng của mình. Bạn sẽ cần chọn kiểu bộ nhớ và định cấu hình kích thước cluster, tạo subnet và cấu hình bảo mật cho nó.
  3. Connect with your application: Sau khi cluster được tạo, bạn cần kết nối ứng dụng của mình với cluster đó. Điều này bao gồm việc cập nhật cấu hình ứng dụng để sử dụng địa chỉ địa chỉ ElastiCache của cluster và các thông tin xác thực tương ứng. Sau đó, ứng dụng của bạn có thể sử dụng ElastiCache để lưu trữ và truy xuất dữ liệu.

Mình sẽ lựa chọn Create a cluster để tạo 1 cụm mới.

Chúng ta sẽ chọn Redis, bấm chọn Create Redis cluster.

Chúng ta có 2 tùy chọn

  1. Configure and create a new cluster: Đây là bước thiết lập và tạo một cluster ElastiCache mới. Bước này yêu cầu chọn loại cache engine (Redis hoặc Memcached), kích thước cluster, mức độ độ phân bổ của node và các thiết lập khác liên quan đến hiệu suất, bảo mật và quản lý cluster.
  2. Restore from backups: Bước này cho phép khôi phục dữ liệu cache từ một bản backup đã được tạo trước đó. Các backup được lưu trữ trong Amazon S3 và khôi phục dữ liệu cache từ các bản backup này giúp giảm thời gian phục hồi dữ liệu trong trường hợp xảy ra sự cố với cluster.

Ở phần này mình sẽ chọn Disable để chỉ chạy đơn và không tạo cụm vì lý do chi phí.

“AWS Cloud” và “On-premises” đề cập đến hai môi trường khác nhau mà bạn có thể triển khai và chạy ElastiCache.

  1. “AWS Cloud” đề cập đến việc triển khai ElastiCache trên môi trường đám mây của Amazon Web Services (AWS). Khi bạn triển khai ElastiCache trên AWS Cloud, bạn sẽ tận dụng các dịch vụ của AWS, bao gồm độ tin cậy, khả năng mở rộng, quản lý cơ sở dữ liệu, bảo mật và giám sát.
  2. “On-premises” đề cập đến việc triển khai ElastiCache trên môi trường của chính bạn, chẳng hạn như trên máy chủ của doanh nghiệp hoặc trên một môi trường đám mây riêng. Khi triển khai ElastiCache trên On-premises, bạn sẽ tự quản lý toàn bộ cơ sở hạ tầng và các yếu tố liên quan đến bảo mật, khả năng mở rộng và độ tin cậy.

Trong Amazon ElastiCache, “Multi-AZ” (Multiple Availability Zones) là một tính năng cho phép sao lưu dữ liệu trên nhiều vùng khác nhau. Việc sao lưu trên nhiều vùng đảm bảo rằng dữ liệu vẫn sẽ được bảo vệ trong trường hợp có sự cố xảy ra tại một vùng. Nó giúp tăng tính sẵn sàng (reliability) cho hệ thống của bạn.

“Auto-failover” là một tính năng khác cho phép tự động chuyển đổi dữ liệu từ primary node (nút chính) sang một node khác trong trường hợp nút chính gặp sự cố. Khi một nút bị lỗi, tự động chuyển đổi giúp đảm bảo rằng các ứng dụng của bạn vẫn có thể truy cập vào dữ liệu mà không gặp gián đoạn.

Availability Zone (AZ) là các trung tâm dữ liệu phân tán của AWS trên khắp thế giới, cho phép phân bổ các tài nguyên đến nhiều vùng địa lý. Khi tạo một cache cluster trong ElastiCache, bạn có thể chọn các Availability Zone khác nhau để đảm bảo rằng dịch vụ cache của bạn vẫn có sẵn trong trường hợp có sự cố xảy ra ở một vùng địa lý.

Khi bạn chọn một hoặc nhiều AZ cho cache cluster, ElastiCache sẽ tự động sao lưu cache trong AZ backup để đảm bảo dịch vụ vẫn sẵn sàng nếu một AZ gặp sự cố. ElastiCache cũng cung cấp tính năng Multi-AZ với Auto-Failover để tự động chuyển đổi cluster sang AZ backup trong trường hợp một AZ không khả dụng, giảm thiểu thời gian tắt dịch vụ và đảm bảo tính khả dụng của ứng dụng.

Các thành phần sau liên quan đến bảo mật và quản lý truy cập cho Redis trên ElastiCache:

  • Encryption at rest: Đảm bảo rằng dữ liệu Redis được lưu trữ trong ElastiCache được mã hóa để ngăn chặn truy cập trái phép nếu dữ liệu được đánh cắp hoặc phát tán.
  • Encryption in transit: Đảm bảo rằng dữ liệu được truyền giữa các nút ElastiCache và ứng dụng của bạn được mã hóa để ngăn chặn các kẻ tấn công giữa chừng có thể đánh cắp thông tin truyền tải.
  • Access control: AWS ElastiCache hỗ trợ nhiều cơ chế kiểm soát truy cập, bao gồm AWS Identity and Access Management (IAM) và các nhóm bảo mật để quản lý quyền truy cập cho các người dùng và ứng dụng.
  • Redis AUTH token: Là một cơ chế xác thực bổ sung cho Redis, cho phép bạn đặt mật khẩu hoặc token để xác minh truy cập vào Redis và giúp ngăn chặn truy cập trái phép vào cache.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories