Bạn có biết về Aurora Serverless chưa?

Như các bạn đã biết Aurora là tài sản là native service của AWS đưa ra thuộc nhóm dịch vụ RDS (Relational Database Service), hay còn gọi là dịch vụ cơ sở dữ liệu có quan hệ (khóa chính, khóa ngoại). Aurora là loại hình dịch vụ mà mình yêu thích nhất, thú thật ban đầu với vì cái tên, cách mà AWS đặt tên các loại hình dịch vụ của mình rất dễ thương và personalize. Aurora dịch ra tiếng Việt có nghĩa là ánh bình minh buổi sớm hay còn được xem như là nữ thần Rạng Đông.

Về phía sử dụng, khách hàng có rất nhiều option chuyển đổi CSDL từ on-prem lên AWS cloud như sau:

  1. Cách 01: Khách hàng chuyển DB dạng lift and shift lên bộ combo EC2 và EBS. Đây là cách KH vẫn cài đặt OS, DB service và chuyển đổi dữ liệu lên AWS với ưu nhược điểm sau:
    1. Ưu điểm: Nhanh, đơn giản.
    2. Nhược điểm: Không tận dụng native service, chi phí chưa tối ưu.
  2. Cách 02: Replatform chuyển đổi CSDL ở on-prem lên AWS Cloud thông qua RDS MSSQL, MySQL, PostgreSQL, Oracle. Riêng Oracle có hai loại là BYOL (Bring Your Own License) và licensed instance với một số giới hạn.
    1. Ưu điểm: Chuyển đổi CSDL lên cloud ở mức độ chỉn chu hơn, tận dụng sức mạnh AWS RDS, auto scaling, multi-az…
    2. Nhược điểm: Vẫn phụ thuộc vào phần hạ tầng, middleware
  3. Cách 03: Chuyển đổi CSDL lên Native Cloud Service như Aurora.
    1. Ưu điểm: Tận dụng sức mạnh triệt để của Cloud Native Service.
    2. Nhược điểm: Ứng dụng có thể phải xem xét refactor, cần xem xét sự tương thích giữa App và DB.

Theo kinh nghiệm cá nhân những bạn làm product mới, nên xem xét sử dụng các dịch vụ native của AWS để tận dụng sức mạnh của cloud về khả năng scalability, elasticity và easy of use. Aurora là một trong những dịch vụ mình thấy rất đáng để dùng.

Về engine, Aurora bạn có thể lựa chọn loại MySQL hoặc Postgres. Tùy thuộc vào mục đích sử dụng, CSDL hiện tại bạn có thể lựa chọn. Cá nhân mình prefer Aurora Postgres hơn. Khi lựa chọn khởi tạo Aurora bạn có thể lựa chọn rất nhiều loại phiên bản của Postgres, loại instance family. Riêng hơn nữa, bạn có thể chọn dang Serverless.

Lưu ý: Không phải loại engine hay version nào cũng hỗ trợ Serverless, nên nếu bạn chọn engine Aurora (Postgres hay MySQL) mà không thấy option lựa chọn Serverless thì bạn chọn version khác xem sao.

Ví dụ hiện tại phiên bản mới nhất hỗ trợ Serverless là Aurora PostgreSQL version 10.7.

Ý tưởng của Aurora Serverless là Pay as you Go, có nghĩa là CSDL có thể scale theo ACU (Aurora Capacity Unit) là tỷ lệ giữa CPU và RAM. Bình thường các bạn khởi tạo Aurora Standard bạn sẽ chọn instance Type (Ví dụ: T3), còn ở đây bạn khởi tạo min và max của ACU.

Hiện tại Aurora Serverless ACU tối thiểu là 02 (Tương đương 04GB RAM, cấu hình của t3.medium) và tối đa là 384 (tương đương 768GB RAM). Khi khai báo này thì ứng dụng có khả năng scale tự động giãn nở (elasticity) trong khoảng này, khi thấp tải hệ thống consume ít ACU, khi cao tải sẽ cần cao ACU hơn.

Về mặt tính tiền, Aurora Serverless sẽ có 03 tiêu chí: storage, capacity và IO. Điều này cũng rất hợp lý. Căn bản về mặt dev hay phát triển ứng dụng rất đơn giản trong khi  phát triển hay cả production. Lợi ích Aurora Serverless có thể gom thành một số ý chính sau:

  1. Đơn giản Simpler – Đỡ phải quản lý về nhiều instances, hay năng lực xử lý capacity của DB.
  2. Mở rộng Scalability – DB Có thể giãn nở cả CPU và RAM không ảnh hưởng đến gián đoạn. Điều này là tuyệt vời, bạn không phải dự đoán năng lực cần phải cấp phát cho DB nữa.
  3. Cost effective – thay vì bạn phải provision cả một con DB to đùng, bạn có thể provision nhỏ thôi, và tự động nở theo tải sử dụng. Nghe rất xịn xò phải không?
  4. HA Storage – Lưu trữ có tính sẵn sàng cao, hệ thống hiện tại Aurora hỗ trợ 06 bản replications để chống data loss.

Đây là một cải tiến rất xịn xò cho các nhà phát triển và cả doanh nghiệp khi sử dụng. Một số use cases phổ biến sử dụng Aurora Serverless đó là:

  1. Ứng dụng có truy xuất đột biến và tải không ổn định (lúc truy xuất nhiều, lúc lại ít).
  2. Ứng dụng mới phát triển mà bạn chưa thể tiên đoán sizing.
  3. Phát triển cho môi trường Dev Test biến thiên về mặt workload. Thường nếu phát triển cho môi trường dev hệ thống sẽ không sử dụng vào ngoài giờ làm việc chẳng hạn, Aurora Serverless có thể tự động shutdown khi nó không được sử dụng.
  4. Multi TenantTenant applications khi triển khai ứng dụng dạng SaaS. Aurora Serverless có thể hỗ trợ quản lý DB Capacity từng ứng dụng truy xuất. Aurora Serverless có thể quản lý từng db capacity.

 

 

Topics #aurora #aws #cloud #csdl #db #db cloud #lift and shift #migration #oracle #refactor #rehost #replatform #serverless