MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

So sánh các sản phẩm cung cấp trên đám mây cụm Galera:Phần thứ nhất Amazon AWS

Đang chạy MySQL Galera Cluster (bản dựng Percona, MariaDB hoặc Codership) không phải là cơ sở dữ liệu được hỗ trợ (cũng như một phần của) cơ sở dữ liệu được hỗ trợ bởi Amazon RDS. Hầu hết các cơ sở dữ liệu được hỗ trợ bởi RDS sử dụng sao chép không đồng bộ, trong khi Galera Cluster là một giải pháp sao chép đa tổng thể đồng bộ. Galera cũng yêu cầu InnoDB làm công cụ lưu trữ của nó hoạt động bình thường và trong khi bạn có thể sử dụng các công cụ lưu trữ khác như MyISAM, bạn không nên sử dụng công cụ lưu trữ này vì thiếu xử lý giao dịch.

Do thiếu hỗ trợ nguyên bản trong RDS, blog này sẽ tập trung vào các dịch vụ có sẵn khi chọn và lưu trữ cụm dựa trên Galera của bạn bằng môi trường AWS.

Chắc chắn có nhiều lý do khiến bạn chọn hoặc không chọn nền tảng đám mây AWS, nhưng đối với chủ đề cụ thể này, chúng ta sẽ xem xét những ưu điểm và lợi ích của những gì bạn có thể tận dụng hơn là tại sao bạn sẽ chọn Nền tảng AWS.

Máy chủ Ảo (Phiên bản Máy tính Đàn hồi)

Như đã đề cập trước đó, MySQL Galera không phải là một phần của RDS và InnoDB là một công cụ lưu trữ giao dịch mà bạn cần có tài nguyên phù hợp với yêu cầu ứng dụng của mình. Nó phải có khả năng phục vụ nhu cầu của lưu lượng truy cập yêu cầu khách hàng của bạn. Tại thời điểm bài viết này, lựa chọn duy nhất của bạn để chạy Galera Cluster là sử dụng EC2, dịch vụ đám mây máy tính của Amazon.

Bởi vì bạn có lợi thế khi chạy hệ thống của mình trên một số nút trên các phiên bản EC2, nên việc chạy một Cụm Galera trên các câu EC2 tại chỗ không khác nhau nhiều. Bạn có thể truy cập máy chủ từ xa thông qua SSH, cài đặt các gói phần mềm mong muốn và chọn loại bản dựng Galera Cluster mà bạn muốn sử dụng.

Hơn nữa, với EC2, dịch vụ này có tính đàn hồi và linh hoạt hơn, cho phép bạn phân phối và cung cấp một thiết lập chi tiết, đơn giản hơn. Bạn có thể tận dụng các dịch vụ web để tự động hóa hoặc xây dựng một số nút nếu bạn cần mở rộng quy mô môi trường của mình hoặc ví dụ:tự động hóa việc xây dựng môi trường phát triển hoặc dàn dựng của bạn. Nó cũng mang lại cho bạn lợi thế để nhanh chóng xây dựng môi trường mong muốn, chọn và thiết lập hệ điều hành mong muốn, đồng thời lấy đúng tài nguyên máy tính phù hợp với yêu cầu của bạn (chẳng hạn như CPU, bộ nhớ và ổ lưu trữ.) EC2 loại bỏ thời gian chờ đợi phần cứng , vì bạn có thể làm điều này một cách nhanh chóng. Bạn cũng có thể tận dụng công cụ AWS CLI của họ để tự động hóa thiết lập cụm Galera của mình.

Định giá cho Phiên bản Amazon EC2

EC2 cung cấp một số lựa chọn rất linh hoạt cho người tiêu dùng muốn lưu trữ môi trường Cụm Galera của họ trên các nút tính toán AWS. Bậc miễn phí AWS bao gồm 750 giờ sử dụng phiên bản Linux và Windows t2.micro, mỗi tháng, trong một năm. Bạn có thể ở trong Bậc miễn phí bằng cách chỉ sử dụng các phiên bản EC2 Micro, nhưng đây có thể không phải là thứ tốt nhất để sử dụng trong sản xuất.

Có nhiều loại phiên bản EC2 mà bạn có thể triển khai khi cấp phép các nút Galera của mình. Lý tưởng nhất, họ r4 / r5 / x1 (được tối ưu hóa bộ nhớ) và họ c4 / c5 (được tối ưu hóa cho máy tính) là lựa chọn lý tưởng và các mức giá này khác nhau tùy thuộc vào nhu cầu tài nguyên máy chủ của bạn và loại hệ điều hành.

Đây là các loại phiên bản trả phí mà bạn có thể chọn ...

Theo Yêu cầu

Thanh toán theo công suất máy tính (mỗi giờ hoặc mỗi giây), tùy thuộc vào loại phiên bản bạn chạy. Ví dụ:giá có thể khác nhau khi cung cấp phiên bản Ubuntu so với phiên bản RHEL ngoài loại phiên bản. Nó không có cam kết dài hạn hoặc thanh toán trả trước cần thiết. Nó cũng có thể linh hoạt để tăng hoặc giảm dung lượng máy tính của bạn. Những trường hợp này được khuyến nghị cho các nhu cầu về môi trường linh hoạt và chi phí thấp như các ứng dụng có khối lượng công việc ngắn hạn, đột biến hoặc không thể đoán trước không thể bị gián đoạn hoặc các ứng dụng đang được phát triển hoặc thử nghiệm trên Amazon EC2 lần đầu tiên. Hãy xem nó tại đây để biết thêm thông tin.

Máy chủ Chuyên dụng

Nếu bạn đang tìm kiếm các yêu cầu về tuân thủ và quy định, chẳng hạn như nhu cầu có được một máy chủ chuyên dụng chạy trên phần cứng chuyên dụng để sử dụng, thì loại ưu đãi này phù hợp với nhu cầu của bạn. Máy chủ chuyên dụng có thể giúp bạn giải quyết các yêu cầu tuân thủ và giảm chi phí bằng cách cho phép bạn sử dụng giấy phép phần mềm ràng buộc máy chủ hiện có của mình, bao gồm Windows Server, SQL Server, SUSE Linux Enterprise Server, Red Hat Enterprise Linux hoặc các giấy phép phần mềm khác liên kết với máy ảo , ổ cắm hoặc lõi vật lý, tùy thuộc vào điều khoản cấp phép của bạn. Nó có thể được mua theo yêu cầu (hàng giờ) hoặc đặt trước với giá giảm tới 70% theo yêu cầu. Hãy xem nó tại đây để biết thêm thông tin.

Phiên bản Spot

Những trường hợp này cho phép bạn yêu cầu dung lượng máy tính Amazon EC2 dự phòng với mức giảm giá lên đến 90% theo yêu cầu. Điều này được khuyến nghị cho các ứng dụng có thời gian bắt đầu và kết thúc linh hoạt, các ứng dụng chỉ khả thi ở mức giá tính toán rất thấp hoặc người dùng có nhu cầu tính toán khẩn cấp với số lượng lớn dung lượng bổ sung. Hãy xem nó tại đây để biết thêm thông tin.

Phiên bản Dự trữ

Loại ưu đãi thanh toán này cung cấp cho bạn tùy chọn nhận chiết khấu lên tới 75% và tùy thuộc vào trường hợp bạn muốn đặt trước, bạn có thể đặt trước suất giúp bạn thêm tự tin vào khả năng của mình để khởi chạy các phiên bản khi bạn cần. Điều này được khuyến nghị nếu các ứng dụng của bạn có trạng thái ổn định hoặc mức sử dụng có thể dự đoán được, các ứng dụng có thể yêu cầu dung lượng dự trữ hoặc khách hàng có thể cam kết sử dụng EC2 trong thời hạn 1 hoặc 3 năm để giảm tổng chi phí tính toán của họ. Hãy xem nó tại đây để biết thêm thông tin.

Lưu ý Giá

Một điều cuối cùng với EC2, họ cũng cung cấp thanh toán theo giây, đồng thời tính phí phút và giây không sử dụng trong một giờ của hóa đơn. Điều này có lợi nếu bạn mở rộng quy mô trong một khoảng thời gian tối thiểu, chỉ để xử lý yêu cầu lưu lượng truy cập từ nút Galera hoặc trong trường hợp bạn muốn thử và kiểm tra trên một nút cụ thể chỉ để sử dụng trong thời gian giới hạn.

Mã hóa cơ sở dữ liệu trên AWS

Nếu bạn lo lắng về tính bảo mật của dữ liệu hoặc tuân thủ các luật cần thiết cho việc tuân thủ bảo mật và các quy định của bạn, AWS cung cấp mã hóa dữ liệu ở trạng thái nghỉ. Nếu bạn đang sử dụng MariaDB Cluster phiên bản 10.2+, chúng có hỗ trợ plugin tích hợp để giao tiếp với API Dịch vụ quản lý khóa (KMS) của Amazon Web Services (AWS). Điều này cho phép bạn tận dụng dịch vụ quản lý khóa AWS-KMS để tạo điều kiện phân tách trách nhiệm và ghi nhật ký từ xa &kiểm tra các yêu cầu truy cập khóa. Thay vì lưu trữ khóa mã hóa trong một tệp cục bộ, plugin này giữ khóa chính trong AWS KMS.

Khi bạn khởi động MariaDB lần đầu tiên, plugin AWS KMS sẽ kết nối với Dịch vụ quản lý khóa AWS và yêu cầu nó tạo khóa mới. MariaDB sẽ lưu trữ khóa đó trên đĩa ở dạng được mã hóa. Không thể sử dụng khóa được lưu trữ trên đĩa để giải mã dữ liệu; thay vào đó, trên mỗi lần khởi động, MariaDB kết nối với AWS KMS và có dịch vụ giải mã (các) khóa được lưu trữ cục bộ. Khóa được giải mã được lưu trữ trong bộ nhớ miễn là quá trình máy chủ MariaDB đang chạy và khóa được giải mã trong bộ nhớ đó được sử dụng để mã hóa dữ liệu cục bộ.

Ngoài ra, khi triển khai các phiên bản EC2, bạn có thể mã hóa khối lượng lưu trữ dữ liệu của mình bằng EBS (Elastic Block Storage) hoặc mã hóa chính phiên bản đó. Mã hóa cho các ổ loại EBS đều được hỗ trợ, mặc dù nó có thể có tác động nhưng độ trễ là rất nhỏ hoặc thậm chí không thể nhìn thấy đối với người dùng cuối. Đối với mã hóa kiểu phiên bản EC2, hầu hết các phiên bản lớn đều được hỗ trợ. Vì vậy, nếu bạn đang sử dụng các nút được tối ưu hóa cho tính toán hoặc bộ nhớ, bạn có thể tận dụng mã hóa của nó.

Dưới đây là danh sách các loại phiên bản được hỗ trợ ...

  • Mục đích chung:A1, M3, M4, M5, M5a, M5ad, M5d, T2, T3 và T3a
  • Tính toán được tối ưu hóa:C3, C4, C5, C5d và C5n
  • Bộ nhớ được tối ưu hóa:cr1.8xlarge, R3, R4, R5, R5a, R5ad, R5d, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, X1, X1e và z1d
  • Bộ nhớ được tối ưu hóa:D2, h1.2xlarge, h1.4xlarge, I2 và I3
  • Máy tính tăng tốc:F1, G2, G3, P2 và P3

Bạn có thể thiết lập tài khoản AWS của mình để luôn bật mã hóa khi triển khai các bản sao kiểu EC2 của mình. Điều này có nghĩa là AWS sẽ mã hóa các khối lượng EBS mới khi khởi chạy và mã hóa các bản sao mới của ảnh chụp nhanh không được mã hóa.

Triển khai đa AZ / Đa vùng / Đa đám mây

Rất tiếc, kể từ thời điểm viết bài này, không có hỗ trợ trực tiếp nào trong Bảng điều khiển AWS (cũng như bất kỳ API AWS nào của họ) hỗ trợ triển khai Multi-AZ / -Region / -Cloud cho các cụm nút Galera.

Tính khả dụng, khả năng mở rộng và dự phòng cao

Để triển khai nhiều AZ, bạn nên cung cấp các nút galera của mình ở các vùng khả dụng khác nhau. Điều này ngăn không cho cụm đi xuống hoặc một cụm trục trặc do thiếu túc số.

Bạn cũng có thể thiết lập AWS Auto Scaling và tạo một nhóm tự động điều chỉnh tỷ lệ để theo dõi và kiểm tra trạng thái để cụm của bạn luôn có khả năng dự phòng, có thể mở rộng và tính sẵn sàng cao. Tự động mở rộng quy mô sẽ giải quyết vấn đề của bạn trong trường hợp nút của bạn gặp sự cố vì một số lý do không xác định.

Để triển khai đa vùng hoặc đa đám mây, Galera có tham số riêng gọi là gmcast.segment mà bạn có thể đặt tham số này khi máy chủ khởi động. Tham số này được thiết kế để tối ưu hóa giao tiếp giữa các nút Galera và giảm thiểu lưu lượng được gửi giữa các phân đoạn mạng bao gồm chuyển tiếp bộ ghi và lựa chọn nhà tài trợ IST và SST.

Kiểu thiết lập này cho phép bạn triển khai nhiều nút ở các vùng khác nhau cho Cụm Galera của mình. Bên cạnh đó, bạn cũng có thể triển khai các nút Galera của mình trên một nhà cung cấp khác, ví dụ:nếu nó được lưu trữ trong Google Cloud và bạn muốn dự phòng trên Microsoft Azure.

Tôi khuyên bạn nên xem blog của chúng tôi Nhiều Thiết lập Trung tâm Dữ liệu Sử dụng Galera Cluster cho MySQL hoặc MariaDB và Zero Downtime Network Migration With MySQL Galera Cluster Sử dụng Relay Node để thu thập thêm thông tin về cách triển khai các loại này triển khai.

Hiệu suất Cơ sở dữ liệu trên AWS

Tùy thuộc vào nhu cầu ứng dụng của bạn, nếu bộ nhớ truy vấn của bạn sử dụng các phiên bản được tối ưu hóa bộ nhớ là lựa chọn lý tưởng của bạn. Nếu ứng dụng của bạn có các giao dịch cao hơn yêu cầu hiệu suất cao cho máy chủ web hoặc xử lý hàng loạt, thì hãy chọn các phiên bản được tối ưu hóa cho tính toán. Nếu bạn muốn tìm hiểu thêm về cách tối ưu hóa Cụm Galera của mình, bạn có thể xem blog này Cách cải thiện Hiệu suất của Cụm Galera cho MySQL hoặc MariaDB.

Sao lưu Cơ sở dữ liệu trên AWS

Việc tạo bản sao lưu có thể khó khăn vì không có hỗ trợ trực tiếp trong AWS dành riêng cho công nghệ MySQL Galera. Tuy nhiên, AWS cung cấp cho bạn giải pháp khôi phục và thảm họa bằng cách sử dụng Ảnh chụp nhanh EBS. Bạn có thể chụp nhanh các tập EBS được đính kèm với phiên bản của mình, sau đó sao lưu theo lịch bằng CloudWatch hoặc bằng cách sử dụng Amazon Data Lifecycle Manager (Amazon DLM) để tự động chụp nhanh.

Lưu ý rằng các ảnh chụp nhanh được chụp là các bản sao lưu gia tăng, có nghĩa là chỉ các khối trên thiết bị đã thay đổi sau khi ảnh chụp nhanh gần đây nhất của bạn được lưu. Bạn có thể lưu trữ các ảnh chụp nhanh này vào AWS S3 để tiết kiệm chi phí lưu trữ. Ngoài ra, bạn có thể sử dụng các công cụ bên ngoài như Percona Xtrabackup và Mydumper (để sao lưu lôgic) và lưu trữ chúng vào AWS EFS -> AWS S3 -> AWS Glacier.

Bạn cũng có thể thiết lập Quản lý vòng đời trong AWS nếu bạn cần dữ liệu sao lưu của mình được lưu trữ theo cách tiết kiệm chi phí hơn. Nếu bạn có các tệp lớn và định sử dụng AWS EFS, bạn có thể tận dụng giải pháp Sao lưu AWS của họ vì đây cũng là một giải pháp đơn giản nhưng hiệu quả về chi phí.

Mặt khác, bạn cũng có thể sử dụng các dịch vụ bên ngoài (cũng như ClusterControl), cung cấp cho bạn cả giải pháp giám sát và sao lưu. Hãy xem phần này nếu bạn muốn biết thêm.

Giám sát Cơ sở dữ liệu trên AWS

AWS cung cấp kiểm tra tình trạng và một số kiểm tra trạng thái để cung cấp cho bạn khả năng hiển thị các nút Galera của bạn. Điều này được thực hiện thông qua CloudWatch và CloudTrail.

CloudTrail cho phép bạn bật và kiểm tra nhật ký cũng như thực hiện kiểm tra dựa trên những hành động và dấu vết đã được thực hiện.

CloudWatch cho phép bạn thu thập và theo dõi các chỉ số, thu thập và giám sát các tệp nhật ký cũng như đặt báo thức tùy chỉnh. Bạn có thể thiết lập nó theo nhu cầu tùy chỉnh của mình và có được khả năng hiển thị trên toàn hệ thống về việc sử dụng tài nguyên, hiệu suất ứng dụng và tình trạng hoạt động. CloudWatch đi kèm với một cấp miễn phí miễn là bạn vẫn nằm trong giới hạn của nó (Xem ảnh chụp màn hình bên dưới.)

CloudWatch cũng đi kèm với một mức giá tùy thuộc vào khối lượng chỉ số được phân phối. Kiểm tra giá hiện tại của nó bằng cách kiểm tra ở đây.

Lưu ý:có một nhược điểm khi sử dụng CloudWatch. Nó không được thiết kế để phục vụ cho tình trạng cơ sở dữ liệu, đặc biệt là để theo dõi các nút cụm MySQL Galera. Ngoài ra, bạn có thể sử dụng các công cụ bên ngoài cung cấp đồ thị hoặc biểu đồ có độ phân giải cao hữu ích trong việc báo cáo và dễ dàng phân tích hơn khi chẩn đoán một nút có vấn đề.

Đối với điều này, bạn có thể sử dụng PMM của Percona, DataDog, Idera, VividCortex hoặc ClusterControl của riêng chúng tôi (vì việc giám sát MIỄN PHÍ với Cộng đồng ClusterControl.) Tôi khuyên bạn nên sử dụng công cụ giám sát phù hợp với nhu cầu dựa trên các yêu cầu ứng dụng cá nhân của bạn. Điều rất quan trọng là công cụ giám sát của bạn có thể thông báo cho bạn một cách tích cực hoặc cung cấp cho bạn khả năng tích hợp cho các hệ thống nhắn tin tức thời như Slack, PagerDuty hoặc thậm chí gửi cho bạn SMS khi tình trạng sức khỏe leo thang nghiêm trọng.

Bảo mật Cơ sở dữ liệu trên AWS

Bảo mật các phiên bản EC2 của bạn là một trong những phần quan trọng nhất của việc triển khai cơ sở dữ liệu của bạn vào đám mây công cộng. Bạn có thể thiết lập một mạng con riêng và thiết lập các nhóm bảo mật bắt buộc chỉ được ưu tiên để cho phép cổng hoặc IP nguồn tùy thuộc vào thiết lập của bạn. Bạn có thể thiết lập các nút cơ sở dữ liệu của mình với quyền truy cập không từ xa và chỉ cần thiết lập máy chủ lưu trữ nhảy hoặc Cổng Internet, nếu các nút yêu cầu truy cập internet để truy cập hoặc cập nhật gói phần mềm. Bạn có thể đọc blog trước của chúng tôi về Triển khai Nhân rộng MySQL Multicloud Bảo mật trên AWS và GCP với VPN về cách chúng tôi thiết lập điều này.

Ngoài ra, bạn có thể bảo mật dữ liệu khi truyền dữ liệu bằng cách sử dụng kết nối TLS / SSL hoặc mã hóa dữ liệu của bạn khi dữ liệu ở trạng thái nghỉ. Nếu bạn đang sử dụng ClusterControl, việc triển khai một dữ liệu an toàn trong quá trình truyền tải rất đơn giản và dễ dàng. Bạn có thể xem blog của chúng tôi Quản lý khóa SSL và mã hóa dữ liệu MySQL trong quá trình chuyển tuyến nếu bạn muốn dùng thử. Đối với dữ liệu ở trạng thái nghỉ, việc lưu trữ dữ liệu của bạn qua S3 có thể được mã hóa bằng AWS Server-Side Encryption hoặc sử dụng AWS-KMS mà tôi đã thảo luận trước đó. Kiểm tra blog bên ngoài này về cách thiết lập và tận dụng Cụm MariaDB bằng AWS-KMS để bạn có thể lưu trữ dữ liệu của mình một cách an toàn.

Galera Cluster Gỡ rối trên AWS

AWS CloudWatch có thể trợ giúp đặc biệt khi điều tra và kiểm tra các chỉ số hệ thống. Bạn có thể kiểm tra mạng, CPU, bộ nhớ, đĩa và phiên bản của nó hoặc tính toán mức sử dụng và số dư. Tuy nhiên, điều này có thể không đáp ứng yêu cầu của bạn khi đào sâu vào một trường hợp cụ thể.

CloudTrail có thể thực hiện các dấu vết vững chắc của các hành động đã được điều chỉnh dựa trên tài khoản AWS cụ thể của bạn. Điều này sẽ giúp bạn xác định xem các lần xuất hiện không phải đến từ MySQL Galera, mà có thể là một số lỗi hoặc sự cố trong môi trường AWS (chẳng hạn như Hyper-V đang gặp sự cố trong máy chủ nơi phiên bản của bạn, với tư cách là khách, đang được lưu trữ.)

Nếu bạn đang sử dụng ClusterControl, đi tới Nhật ký -> Nhật ký hệ thống, bạn sẽ có thể duyệt các nhật ký lỗi đã ghi được lấy từ chính nút MySQL Galera. Ngoài ra, ClusterControl cung cấp khả năng giám sát thời gian thực để khuếch đại hệ thống cảnh báo và thông báo của bạn trong trường hợp khẩn cấp hoặc nếu (các) nút MySQL Galera của bạn bị lỗi.

Kết luận

AWS không có hỗ trợ thuần túy cho thiết lập MySQL Galera Cluster, không giống như AWS RDS có khả năng tương thích với MySQL. Do đó, hầu hết các đề xuất hoặc ý kiến ​​chạy Cụm Galera để sử dụng trong sản xuất trong môi trường AWS đều dựa trên các môi trường có kinh nghiệm và đã được kiểm tra tốt đã chạy trong một thời gian dài.

MariaDB Cluster đi kèm với năng suất tuyệt vời, vì chúng liên tục cung cấp hỗ trợ ngắn gọn cho giải pháp ngăn xếp công nghệ AWS. Trong bản phát hành sắp tới của phiên bản MariaDB 10.5, họ sẽ cung cấp hỗ trợ cho Công cụ lưu trữ S3, điều này có thể đáng để chờ đợi.

Các công cụ bên ngoài có thể giúp bạn quản lý và kiểm soát Cụm MySQL Galera của mình đang chạy trên Đám mây AWS, vì vậy, không phải là mối lo ngại lớn nếu bạn gặp một số tình huống khó xử và FUD về lý do tại sao bạn nên chạy hoặc chuyển sang Đám mây AWS Nền tảng.

AWS có thể không phải là giải pháp phù hợp với tất cả trong một số trường hợp, nhưng nó cung cấp một loạt các giải pháp mà bạn có thể tùy chỉnh và điều chỉnh để phù hợp với nhu cầu của mình.

Trong phần tiếp theo của blog, chúng ta sẽ xem xét một nền tảng đám mây công cộng khác, đặc biệt là Google Cloud và xem cách chúng ta có thể tận dụng nếu chúng ta chọn chạy Cụm Galera của mình vào nền tảng của họ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lấy tên tháng ngắn từ ngày trong MariaDB

  2. HA cho MySQL và MariaDB - So sánh bản sao Master-Master với Galera Cluster

  3. 4 Chức năng để Nhận Giờ từ Giá trị Thời gian trong MariaDB

  4. Chuỗi định dạng ngày MariaDB

  5. Cách hoạt động của COALESCE () trong MariaDB