0

Amazon Aurora MySQL Bài 1: Giới thiệu Amazon Aurora MySQL: Khác biệt cốt lõi gì so với MySQL truyền thống?

1. Amazon Aurora MySQL là gì? Amazon Aurora là một cơ sở dữ liệu quan hệ (RDBMS) tương thích với MySQL và PostgreSQL, được xây dựng hoàn toàn cho nền tảng đám mây (Cloud-native). Nó kết hợp tốc độ và độ tin cậy của các cơ sở dữ liệu thương mại cao cấp với tính đơn giản và chi phí tiết kiệm của các cơ sở dữ liệu mã nguồn mở.

2. Bản chất tương thích (MySQL Compatibility)

  • Aurora không phải là một nhánh rẽ (fork) mã nguồn MySQL thông thường từ gốc, mà là một engine storage chuyên biệt đóng gói bên trên giao diện mạng tương thích với MySQL.

  • Các ứng dụng Backend viết bằng PHP (Laravel), Go (Golang), Node.js kết nối với MySQL qua các ORM hoặc Driver thông thường hoàn toàn có thể trỏ thẳng vào Aurora MySQL mà không cần sửa một dòng code truy vấn SQL nào.

3. Những khác biệt cốt lõi so với MySQL truyền thống:

  • Tách biệt tầng Tính toán và Tầng Lưu trữ (Compute/Storage Decoupling):

    • MySQL truyền thống (hoặc RDS MySQL): Dữ liệu và log được ghi trực tiếp xuống ổ cứng gắn liền (EBS) của EC2 instance. Khi scale đọc hoặc thay đổi instance size, việc đồng bộ block storage gặp nhiều giới hạn.

    • Aurora MySQL: Lưu trữ được gom thành một Aurora Storage Volume ảo hóa, phân tán tự động mở rộng lên tới hàng trăm TB. Các Compute Instance (Writer/Reader) chỉ chịu trách nhiệm xử lý query CPU/RAM, giảm tải gánh nặng I/O xuống ổ cứng cục bộ.

  • Cơ chế Replication không cần gửi Redo Log qua mạng kiểu truyền thống:

    • Ở MySQL tiêu chuẩn, Master phải gửi toàn bộ binlog hoặc redo log qua mạng tới các Slave để ghi xuống disk của từng Slave, dễ gây nghẽn mạng và độ trễ cao (Replication Lag).

    • Ở Aurora, tầng storage đã tự đồng bộ thành các phân vùng (segments) ngầm qua mạng nội bộ AWS siêu tốc. Các Read Replica chỉ cần đọc chung một Cluster Volume bên dưới, do đó Replication Lag trong Aurora thường chỉ dưới 10 mili-giây.

  • Xử lý Crash Recovery siêu tốc:

    • Ở MySQL truyền thống, khi database bị sập đột ngột (crash), engine InnoDB phải đọc lại transaction log (redo log) từ checkpoint gần nhất và thực hiện rollback/redo các uncommitted/committed transactions, tốn rất nhiều thời gian khởi động lại.

    • Aurora dịch chuyển toàn bộ tác vụ xử lý log và khôi phục vào tầng storage phân tán chạy ngầm đa luồng. Khi một instance Aurora bị crash, nó khởi động lại gần như tức thì mà không cần quét lại toàn bộ file log trên đĩa.

  • Hiệu suất vượt trội:

    • AWS cam kết Aurora MySQL có hiệu suất cao gấp 5 lần so với MySQL tiêu chuẩn chạy trên cùng phần cứng, nhờ tối ưu hóa locking, giảm thiểu I/O operations và cơ chế phân phối tải đọc/ghi thông minh.

4. Tổng kết góc nhìn Backend Engineer: Việc chuyển từ MySQL sang Aurora MySQL giúp giải quyết triệt để các bài toán cổ chai về I/OPS, độ trễ replication khi scale lượng đọc lớn, và rút ngắn thời gian downtime khi có sự cố hệ thống.


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í