+5

Aurora - Bình minh trên AWS?

Giới thiệu về Aurora

Aurora - Rạng Đông hay Bình Minh là một trong những thời khắc đẹp nhất của mỗi ngày, người ta cũng thường dùng nó như biểu tượng của một khởi đầu mới đầy niềm tin.
Đối với AWS, Aurora là công nghệ độc quyền của AWS (không opensource), công nghệ này hỗ trợ cả PostgreSQL và MySQL (có nghĩa là nếu ứng dụng của bạn tương thích với một trong hai loại CSDL nói trên thì nó cũng tương thích với Aurora).

Tại sao dịch vụ này được đặt cho cái tên "kêu" như vậy?

  • Aurora thường được ví như "AWS cloud optimized" - công nghệ này cho phép mang lại hiệu năng gấp 5 lần khi so với CSDL MySQL triển khai trên RDS và gấp 3 lần đối với PostgreSQL RDS.
  • Aurora cũng có thể tự động nâng dung lượng của CSDL lên từ 10GB đến 128TB.
  • Aurora có thể có lên tới 15 replicas trong khi con số này của MySQL là 5, từ đó giúp tốc độ replication được cải thiện đáng kể (dưới 10ms replica lag).
  • Aurora cũng là một dịch vụ HA native (High Availability), điều này có nghĩa là quá trình chuyển đổi dự phòng của Aurora là gần như ngay lập tức.
    Với tất cả các đặc tính nổi trội như vậy thì Aurora cũng có chi phí lớn hơn các CSDL trên RDS khoảng 20%, tuy nhiên "đắt thì xắt ra miếng".

Aurora High Availability và Read Scaling

ha_and_read_scale

AWS Aurora là một dịch vụ tuyệt vời cho các ứng dụng yêu cầu cao về tính sẵn sàng (High Availability) và phải chịu các thao tác đọc một cách liên tục.
Khi sử dụng dịch vụ, Aurora sao lưu của dữ liệu ra 6 bản sao trải đều trên 3 Availablity Zone, cụ thể như sau:

  • 4/6 bản sao sẽ được sử dụng để phục vụ các thao tác Ghi (Write).
  • 3/6 bản sao phục vụ các thao tác Đọc (Read).
  • Có khả năng tự phục hồi ngang hàng (Aurora sẽ sao chép từ các bản sao khác để phục hồi trong trường hợp một bản sao bị lỗi). Điều này dẫn tới thời gian chuyển đổi dự phòng của Aurora chỉ rơi vào khoảng dưới 30s.
  • Aurora sẽ chọn ra một phiên bản thực hiện việc Ghi (Write), phiên bản này gọi là Master. Bên cạnh Master, Aurora cũng cung cấp lên tới 15 Read Replicas và hỗ trợ Cross Region Replication.

Các tính năng của Aurora DB

Aurora DB Cluster

db-cluster

Các tính năng

Ở phần đầu, chúng ta đã nói về các đặc điểm nổi trội của Aurora khi so sánh với các CSDL RDS khác, vậy cụ thể Aurora sở hữu các tính năng gì đặc biệt? Ở phần này chúng ta sẽ tìm hiểu.
Đối với Aurora, bên cạnh các tính năng cơ bản của một CSDL cần phải đáp ứng, AWS còn cung cấp cho dịch vụ này các tính năng đặc biệt sau:

  • Tự động thực hiện các quá trình chuyển đổi dự phòng (failover), Backup cũng như tự phục hồi (Recovery).
  • Cung cấp các giải pháp cách ly, an ninh mạng cũng như các yêu cầu khác liên quan đến các yêu cầu bảo mật và tuân thủ của ứng dụng.
  • Cung cấp các công cụ monitor mạnh mẽ, có khả năng tự bảo trì, bảo dưỡng định kỳ, tự động vá lỗi với thời gian downtime bằng 0 cũng như có thể restore dữ liệu về bất cứ thời điểm nào mà không cần tạo các bản backups.

Aurora Replicas - Auto Scaling

auto-scaling

Tương tự như concept của quá trình auto scaling trên các ứng dụng khác, Aurora cũng cho phép scale tự động các Read Replicas khi nhận thấy CPU Usage của các Read Replicas hiện hữu đang vượt quá mức cho phép.

Aurora – Custom Endpoints

custom-endpoint

Tương tự như bài toán khi làm việc với RDS, khi chúng ta muốn chạy các ứng dụng bên ngoài như phân tích dữ liệu mà không muốn ảnh hưởng đến hoạt động của hệ thống hoặc chỉ muốn chạy trên các Replica xác định, Aurora cũng cung cấp cơ chế cho phép chúng ta làm điều này. Chúng ta có thể chọn ra một nhóm các Instances sau đó cấu hình chúng hoạt động dưới một Custom Endpoint. Như hình trên, việc khởi chạy các câu Queries của ứng dụng phân tích dữ liệu hoàn toàn không sử dụng đến Writer Endpoint hay Reader Endpoint, từ đó tránh được các vấn đề phát sinh không nên gặp.

Aurora Serverless

serverless

Aurora cung cấp cho chúng ta 2 lựa chọn khi sử dụng dịch vụ, đó là CSDL Aurora của chúng ta sẽ được host trên các Instance tương tự như EC2 Instance (như đã đề cập đến xuyên suốt các phần phía trên của bài viết này) và Serverless.
Mặc dù cả 2 loại đều không cho phép người dùng có thể can thiệp quá sâu vào cấu hình của Aurora như các CSDL được cài đặt thủ công trên các máy chủ như cách truyền thống, tuy nhiên dịch vụ Aurora Serverless có thể đem lại những đặc điểm nổi trội sau đây (Dĩ nhiên là trong nhiều trường hợp chi phí thường sẽ cao hơn):

  • CSDL Aurora Serverless sẽ tự động được cài đặt sẵn và sẽ tự đọng Scale theo mức độ sử dụng thực tế. (tại đây chúng ta không cần quan tâm đến vấn đề Auto Scaling hay Read-Write Replica nữa).

Aurora Serverless là lựa chọn rất hợp lý cho các ứng dụng thường xuyên phải chịu một lượng tải không thể xác định trước.

  • Không cần phải lên kế hoạch, dự kiến cho dung lượng lưu trữ của CSDL, vì Aurora Serverless có thể đáp ứng được hết và không cần đặt trước hoặc các ứng dụng không được truy cập thường xuyên.
  • Dịch vụ này là dịch vụ "Pay per Second" - hay dùng bao nhiêu trả bấy nhiêu. Điều này đem lại mức chi phí khá tích cực cho các ứng dụng được sử dụng không thường xuyên, tuy nhiên với các dứng dụng không thể xác định trước được lượng tải thì cũng cần lưu ý về việc chi phí phải trả cho AWS cũng không thể dự đoán trước tương tự như tải mà nó phải chịu.

Aurora Multi-Master

multi-master

Chúng ta đã nói nhiều về các Read Replicas vì phần nhiều ứng dụng sẽ yêu cầu đảm bảo được lượng thao tác Ghi ít hơn nhiều so với các thao tác Đọc, do đó đối với các câu chuyện liên quan đến quá trình chuyển đổi dự phòng thì người ta cũng sẽ quan tâm đến quá trình Đọc nhiều hơn.
Mặc dù vậy, đối với các ứng dụng yêu cầu quá trình chuyển đổi dự phòng cần phải diễn ra ngay lập tức kể cả đối với các Master Node (hay Write node), chúng ta vẫn có thể sử dụng cơ chế Multi-Master để thực hiện điều này. Mỗi node trong hệ thống sẽ đều có khả năng đáp ứng tất cả các các yêu cầu đọc - ghi. Bên cạnh đó chúng ta cũng có thể năng cấp các Read Replica thành một Master mới.

Global Aurora

glob-aurora

Sẽ thật là tuyệt nếu vận hành một ứng dụng, sản phẩm mà dữ liệu trên nó quan trọng đến mức cần phải tính đến câu chuyện thảm họa xảy đến. Ở các phần trên chúng ta đã biết về cách giải quyết bài toán hiếm khi xảy ra này thông qua Aurora Cross Region Read Replicas, đây là giải pháp đơn giản nhất. Tuy nhiên nếu khách hàng thậm chí không thông cảm cho chúng ta chậm chạp đôi chục phút khi một ngày đẹp trời trung tâm dữ liệu của Amazon nơi đặt Aurora của chúng ta bị phá hủy hoàn toàn, chúng ta có thể sử dụng Aurora Global Database.
Aurora Global Database sở hữu các đặc điểm:

  • Aurora Global Database sẽ bao gồm 1 Primary Region (Cho phép xử lý cả thao tác Đọc lẫn Ghi) và tối đa 5 Read-only Secondary Region (Có thể chứa lên tới 16 Read Replicas mỗi Region), độ trễ giữa các khu vực sẽ được đảm bảo dưới 1 giây.
  • Khi Primary Region gặp sự cố, một Primary Region mới sẽ được đưa lên thay với khoảng thời gian dưới 1 phút. Quá trình replication giữa các khu vụ thường mất ít hơn 1 giây.

Aurora Machine Learning

ml

Aurora Machine Learning cung cấp các phân tích dựa trên dữ liệu được lưu trữ sắn, nó cho phép người dùng không cần phải hiểu quá rõ về Machine Learning vẫn có thể sử dụng dễ dàng thông qua các câu truy vấn SQL.
Dịch vụ này có thể đưa ra các dự đoán, phân tích phục vụ nhiều mục đích như phát hiện gian lận, cá nhân hóa quảng cáo, giới thiệu sản phẩm...
Aurora ML hỗ trợ các dịch vụ Machine Learing khác của Amazon như SageMaker, Comprehend, tuy nhiên cần lưu ý rằng chi phí của giải pháp này là tương đối cao mặc dù nó thật sự hữu ích nếu người dùng không có quá nhiều hiểu biết về Machine Learing.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí