Những ưu điểm / hạn chế tương ứng của Amazon RDS so với EC2 với MySQL là gì? [đóng cửa]


132

Tôi nhận ra một vài sự khác biệt cơ bản giữa hai, tức là

  1. EC2 sẽ rẻ hơn

  2. RDS tôi sẽ không phải bảo trì

Khác với hai điều đó, có bất kỳ lợi thế nào khi chạy cơ sở dữ liệu của tôi từ RDS, trái ngược với máy chủ EC2 riêng biệt hoạt động như một máy chủ MySQL. Giả sử kích thước cá thể tương tự, cả hai sẽ gặp phải những hạn chế giống nhau về khả năng xử lý tải?

Để cung cấp cho bạn thêm một chút thông tin về việc sử dụng của tôi, tôi đã có một cơ sở dữ liệu, không có gì quá lớn hoặc bất cứ điều gì (bảng lớn nhất 1 triệu hàng), chỉ cần khối lượng CHỌN cao.


Chỉ cần thêm vào phương pháp sao lưu nhất quán ec2. alatural.com/2009/09/ec2-consistent-snapshot Tôi sử dụng công cụ đó với máy chủ 300gb và khoảng 5.000 cơ sở dữ liệu. Tại thời điểm này với khối lượng 3000 IOPS, phải mất khoảng 1,2 giờ để khởi động mysql vì nó bắt đầu từ việc tắt máy ô uế nên mysql phải quét mọi bảng.
jozwikjp

Có một bản sao chéo trang tại dba.stackexchange.com/questions/34525/ đã nhận được một số câu trả lời hay.
Đánh dấu Amery

Câu trả lời:


135

Đây là một câu hỏi đơn giản với một câu trả lời rất phức tạp!

Tóm lại: EC2 sẽ cung cấp hiệu suất tối đa nếu bạn sử dụng RAID0 EBS. Làm RAID0 EBS đòi hỏi một lượng chi phí bảo trì khá đáng kể, ví dụ:

http://alatural.com/2009/06/ec2-ebs- sợ

http://alatural.com/2009/09/ec2-consistent-snapshot

EC2 không có RAID0 EBS sẽ cung cấp hiệu năng I / O nhảm nhí, do đó nó thậm chí không thực sự là một tùy chọn.

RDS sẽ cung cấp hiệu suất rất tốt (mặc dù không tối đa). Bảng điều khiển quản lý thật tuyệt vời và thật dễ dàng để nâng cấp phiên bản. Tính sẵn sàng cao và chỉ đọc nô lệ là một cú nhấn chuột. Nó thực sự tuyệt vời.

Câu trả lời ngắn: Đi với RDS. Vẫn còn trên hàng rào? Đi với RDS !!! nếu bạn thích đau đầu và điều chỉnh từng chút một để có hiệu suất tối đa, thì bạn có thể xem xét EC2 + EBS RAID 0. Vanilla EC2 là một lựa chọn tồi cho lưu trữ MySQL.


1
Câu trả lời tốt. Đây chính xác là những gì tôi muốn: aws.typepad.com/aws/2010/10/ trên - Cảm ơn vì đã dẫn dắt tôi đi đúng hướng
Macgyver

Câu trả lời tốt. Làm thế nào để bạn xử lý thời gian chết 4 giờ mỗi tuần?
Tihom

8
Một điều quan trọng cần biết về cửa sổ bảo trì 4 giờ là máy chủ của bạn không hoạt động trong 4 giờ một tuần! Đó chỉ là khi họ sẽ bảo trì NẾU có bảo trì phải được thực hiện. Tôi đã có máy chủ RDS chạy trong nhiều tháng và không có thời gian chết.
efalcao

2
Chúng tôi đã có máy chủ RDS chạy cho NĂM với thời gian chết bằng không. Một lần mất điện lớn (khoảng 6 giờ) một lần, mọi thứ trở lại bình thường sau khi AWS tự sắp xếp. (Tôi nên chỉ ra đây là một trường hợp đa AZ nhưng nó đã thất bại trong việc sao lưu).
cjm2671

1
@paulkon - chúng tôi không chuyển đổi dự phòng ngoại vi, chúng tôi sử dụng chuyển đổi dự phòng RDS, nếu không, việc quảng cáo trở lại chủ mới sẽ trở nên khó khăn. Các bản sao ngoại vi chủ yếu dành cho DR sao lưu ngoài đám mây cũng như chia tách đọc / ghi cho môi trường báo cáo (cấp độ ứng dụng của chúng tôi biết về chúng). HTH
Ross

24

Trong bài viết này có một điểm chuẩn tuyệt vời giữa:

  • Chạy MySql trên EC2 + EBS nhỏ
  • Chạy MySql trên các tham số MySql nhỏ được điều chỉnh EC2 + EBS +
  • Một RDS nhỏ

Điểm chuẩn là rất tốt vì nó không chỉ tập trung trong điều kiện lý tưởng (chỉ có một luồng) mà còn trong các kịch bản thực tế hơn, với 50 luồng đánh vào cơ sở dữ liệu.


2
Thật tuyệt khi công bố điểm chuẩn, nhưng thật ra, tác giả đã thừa nhận cuối cùng anh ta đã không điều chỉnh đúng cách Innodb (Một thông số lớn cần thay đổi dĩ nhiên là innodb_buffer_pool_size .... mà anh ta đã không làm)
phil_w

12

RDS không thực sự là một hệ thống sẵn sàng cao. Đọc bản in đẹp trong faq RDS. Trong một sự kiện chuyển đổi dự phòng, có thể mất đến 3 phút để chuyển đổi dự phòng. Amazon bổ sung sẽ quyết định cần "nâng cấp" cá thể rds của bạn và thực hiện chuyển đổi dự phòng tại thời điểm đó sẽ đưa cơ sở dữ liệu của bạn xuống "tối đa 3 phút" (kinh nghiệm của chúng tôi là có thể mất nhiều thời gian hơn thế).

Tính sẵn sàng cao của RDS rất khác so với bản sao chính - chủ hoặc chủ - bản sao nô lệ và chậm hơn nhiều. Họ không sử dụng bản sao mysql nhưng sử dụng một số loại sao chép ebs. Vì vậy, trong một tình huống chuyển đổi dự phòng, nó sẽ gắn ebs trên máy sao lưu, khởi động mysql, đợi mysql thực hiện khôi phục lỗi (hy vọng không có gì bị hỏng quá tệ), sau đó thực hiện chuyển đổi dns.

Tôi hy vọng điều này sẽ giúp bạn với bạn đánh giá.


1
việc thêm một nô lệ đọc trên db với dữ liệu 40gb mất hơn 20 phút đối với tôi. Điều này và chi phí và thiếu nô lệ đọc trong ec2 thông thường và / hoặc ngoại vi không có sẵn là khá nhiều đối với tôi. Tôi muốn nói rằng RDS là tốt cho các cửa hàng nhỏ không cần thời gian đáp ứng chuyển đổi dự phòng cao. Nó nhiều hơn để loại bỏ một DBA hơn bất cứ điều gì IMHO.
Ross

Tin tốt ở đây (tháng 3 năm 2020). Với Aurora mọi thứ đã tốt hơn rất nhiều. Nó vẫn không chạy hệ thống chủ - nô lệ nhưng vì họ đã tạo ra một hệ thống lưu trữ dự phòng "dựa trên đám mây" mới hiện rất nhanh. Ngoài ra nó cung cấp ảnh chụp nhanh và sao lưu. Aurora đã thực sự giải quyết được nhiều thiếu sót của RDS MySQL.
Jeff Whites

6

Chúng tôi đã chọn sử dụng các phiên bản MySQL EC2 vì chúng tôi có khối lượng đọc cao và cần sao chép chính-phụ. Tất nhiên, bạn có thể tự quay nhiều bản sao RDS và tự thiết lập bản sao MySQL giữa chúng, nhưng chúng tôi sử dụng Scalr.net, nơi quản lý điều đó cho bạn bằng cách sử dụng các phiên bản EC2.

Về cơ bản, chúng tôi chỉ cho Scalr biết có bao nhiêu phiên bản MySQL mà chúng tôi muốn giúp họ duy trì, tự động hóa việc thiết lập sao chép, xử lý chuyển đổi dự phòng tự động thành chủ nếu chủ bị chấm dứt, v.v. bậc thầy. Vì vậy, khi cần tạo một nô lệ mới, nó sẽ tự động gắn tạm thời một khối EBS của ảnh chụp chính chủ cuối cùng để khởi tạo DB phụ, sau đó bắt đầu sao chép từ điểm thích hợp. Tất cả các điểm và nhấp :) (và không, tôi không làm việc cho Scalr hoặc bất cứ điều gì. Scalr có sẵn dưới dạng Nguồn mở nếu bạn không muốn sử dụng dịch vụ của họ)


Lưu ý rằng vì tôi đã đăng câu trả lời ở trên, Amazon đã giới thiệu hỗ trợ đọc bản sao rõ ràng cho các phiên bản RDS (hiện chỉ có MySQL).
DavidJ

5

Về câu hỏi cửa sổ bảo trì. Nếu bạn sử dụng Multi-AZ thì RDS sẽ tạo một bản sao dự phòng trong vùng khả dụng khác để không mất thời gian bảo trì và bạn tự bảo vệ mình khỏi sự cố khu vực.

Đó là những gì tôi dự định làm trong tuần tới hoặc lâu hơn. Tất nhiên điều đó sẽ khiến bạn tốn nhiều tiền hơn nhưng tôi vẫn chưa giải quyết được.


4

MySQL trên EC2 so với RDS MySQL

Ưu điểm của MySQL trên bản sao EC2 Amazon EC2

Sao chép ảnh chụp nhanh trên các khu vực Amazon EC2

RAID 0 với EBS Striping trong MySQL EC2

Hơn 3TB dung lượng đĩa (Bạn sẽ không cần điều này cho kích thước của mình) có thể được đính kèm trên MySQL trên EC2.

Nhược điểm của MySQL trên EC2

Cấu hình, giám sát và bảo trì so với RDS

Sao lưu thời gian có sẵn trong RDS

IOPS nhỏ hơn RDS MySQL (ngay cả sau RAID 0), 10800 với 6 đĩa cho MySQL trên EC2 trong khi 12500 IOPS 16KB trên RDS MySQL


4

Tôi đã thử RDS được vài tháng và đây là một số vấn đề tôi gặp phải:

  1. Sử dụng SQL profiler là khó khăn. Vì bạn không thể kết nối profiler trực tiếp với máy chủ, bạn phải chạy một số thủ tục được lưu trữ để tạo tệp nhật ký mà bạn có thể phân tích. Mặc dù họ đưa ra một số gợi ý về cách thực hiện, nhưng nó không thân thiện với người dùng. Tôi chỉ khuyên bạn nên có một chuyên gia SQL được chứng nhận thực hiện loại công việc này.

  2. trong khi Amazon sao lưu thể hiện của bạn, bạn không thể khôi phục cơ sở dữ liệu cá nhân. Tôi có một ứng dụng web với một số cơ sở dữ liệu dành riêng cho khách hàng và giải pháp của tôi là khởi chạy một phiên bản EC2 với SQL chạy trên nó để đính kèm với cơ sở dữ liệu RDB sản xuất và nhập dữ liệu và sau đó sao lưu vào phiên bản EC2. Giải pháp khác là sử dụng một công cụ của bên thứ 3 tạo ra một tập lệnh SQL khổng lồ (trên máy chủ ứng dụng) để tạo lại lược đồ và đưa dữ liệu trở lại điểm khôi phục.


1

Tôi đã có cùng một câu hỏi vào cuối tuần này. Có một cửa sổ thời gian chết 4 giờ mỗi tuần cho RDS nơi họ bảo trì. RDS dường như đắt hơn nếu bạn có thể thoát khỏi một ví dụ vi mô của EC2. (Điều này đúng với các phiên bản thử nghiệm có lưu lượng tối thiểu) Tôi cũng không thể thay đổi múi giờ của phiên bản RDS vì tôi không có quyền.

Bây giờ tôi thực sự đang xem http://xeround.com/ , đó là mysql trên EC2 bởi một công ty khác. Họ không sử dụng InnoDB, thay vào đó họ có công cụ riêng gọi là IDG. Tôi mới bắt đầu điều tra nhưng họ đang ở BETA và sẽ cho 500MB dung lượng.


Lưu ý rằng cửa sổ bảo trì không phải là thời gian chết mỗi tuần; đó chỉ là thời gian mà bất kỳ bảo trì sẽ được thực hiện nếu cần thiết: aws.amazon.com/rds/faqs/#12 Cũng xem bình luận của @ efalcao về câu trả lời của anh ấy ở trên.
mpdaugherty

Trông rất tuyệt nhưng thực sự $$ nếu bạn có bất kỳ lượng dữ liệu nào tại xeround.com
csharp4me
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.