it-swarm.com.de

Was sind die jeweiligen Vorteile / Einschränkungen von Amazon RDS gegenüber EC2 mit MySQL?

Ich erkenne ein paar grundlegende Unterschiede zwischen den beiden, d.h.

  1. EC2 wird günstiger

  2. RDS Ich müsste keine Wartung durchführen

Abgesehen von diesen beiden Vorteilen hat die Ausführung meiner Datenbank über RDS keine Vorteile im Vergleich zu einem separaten EC2-Server, der als MySQL-Server fungiert. Unter der Annahme ähnlicher Instanzgrößen stoßen beide auf dieselben Einschränkungen hinsichtlich der Belastbarkeit?

Um Ihnen ein bisschen mehr Informationen über meine Verwendung zu geben, habe ich eine Datenbank, nichts zu groß oder so (größte Tabelle 1 Million Zeilen), nur ein hohes SELECT-Volumen.

132
Macgyver

Dies ist eine einfache Frage mit einer sehr komplizierten Antwort!

Kurz gesagt: EC2 bietet maximale Leistung, wenn Sie mit einem RAID0-EBS arbeiten. Das Ausführen von RAID0-EBS erfordert einen erheblichen Wartungsaufwand, zum Beispiel:

http://alestic.com/2009/06/ec2-ebs-raid

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

EC2 ohne RAID0-EBS bietet eine bescheidene E/A-Leistung und ist daher nicht wirklich eine Option.

RDS bietet sofort eine sehr gute (wenn auch nicht maximale) Leistung. Die Verwaltungskonsole ist fantastisch und es ist einfach, Instanzen zu aktualisieren. Hochverfügbarkeits- und Nur-Lese-Slaves sind nur einen Klick entfernt. Es ist wirklich super.

Kurze Antwort: Gehen Sie mit RDS. Immer noch auf dem Zaun? Geh mit RDS !!! Wenn Sie Kopfschmerzen haben und bis ins kleinste Detail auf maximale Leistung achten, können Sie EC2 + EBS RAID 0 in Betracht ziehen. Vanilla EC2 ist eine schreckliche Option für MySQL-Hosting.

135
efalcao

In diesem Beitrag gibt es eine hervorragende Benchmark zwischen:

  • Ausführen von MySql auf einem kleinen EC2 + EBS
  • Ausführen von MySql auf einem kleinen EC2 + EBS + angepasst MySql-Parameter
  • Ein kleines RDS

Der Benchmark ist sehr gut, da er sich nicht nur auf ideale Bedingungen (nur einen Thread) konzentriert, sondern auch auf realistischere Szenarien: 50 Threads treffen auf die Datenbank.

24
Andres

RDS ist eigentlich kein Hochverfügbarkeitssystem. Lesen Sie das Kleingedruckte in der RDS-FAQ. Während eines Failover-Ereignisses kann das Failover bis zu 3 Minuten dauern. Zusätzlich entscheidet Amazon, dass eine Aktualisierung Ihrer RDS-Instanz und ein Failover an diesem Punkt erforderlich sind, wodurch Ihre Datenbank für "bis zu 3 Minuten" heruntergefahren wird (nach unserer Erfahrung kann dies länger dauern).

Die RDS-Hochverfügbarkeit unterscheidet sich stark von der Master-Master- oder Master-Slave-Replikation und ist viel langsamer. Sie verwenden keine MySQL-Replikation, sondern eine Art EBS-Replikation. In einer Failover-Situation wird das ebs auf dem Backup-Rechner gemountet, mysql gestartet, darauf gewartet, dass mysql eine Fehlerkorrektur durchführt (hoffentlich wurde nichts zu sehr beschädigt) und dann ein DNS-Wechsel durchgeführt.

Ich hoffe das hilft dir bei deiner Bewertung.

12
Jeff Whiting

Wir haben uns für die Verwendung von EC2-MySQL-Instanzen entschieden, da wir ein hohes Lesevolumen haben und eine Master-Slave-Replikation benötigen. Natürlich können Sie mehrere RDS-Instanzen hochfahren und die MySQL-Replikation zwischen ihnen selbst einrichten, aber wir verwenden Scalr.net, das dies für Sie mithilfe von EC2-Instanzen verwaltet.

Grundsätzlich teilen wir Scalr einfach mit, wie viele MySQL-Instanzen wir wollen, um sie am Laufen zu halten, automatisieren die Einrichtung der Replikation, übernehmen das automatische Failover der Slave-Heraufstufung zum Master, wenn der Master beendet wird usw. Es werden sowohl SQL-Dump-Backups als auch EBS-Volume-Snapshots von erstellt der Meister. Wenn ein neuer Slave erstellt werden muss, wird automatisch vorübergehend ein EBS-Volume des letzten Master-Snapshots bereitgestellt, um die Slave-DB zu initialisieren. Anschließend wird die Replikation an dem entsprechenden Punkt gestartet. Alle zeigen und klicken :) (und nein, ich arbeite nicht für Scalr oder so. Scalr ist als Open Source verfügbar, wenn Sie ihren Service nicht nutzen möchten.)

6
DavidJ

Bezüglich des Wartungsfensters Frage. Wenn Sie Multi-AZ verwenden, erstellt RDS ein Standby-Replikat in einer anderen Verfügbarkeitszone, sodass keine Wartungszeiten anfallen und Sie sich vor einem Zonenausfall schützen können.

Das ist, was ich vorhabe, in der nächsten Woche oder so. Natürlich wird es dich mehr kosten, aber ich habe das noch nicht herausgefunden.

5
Shin

Ich habe RDS einige Monate lang ausprobiert und hier sind einige Probleme, die ich habe:

  1. Die Verwendung von SQL Profiler ist schwierig. Da Sie den Profiler nicht direkt mit dem Server verbinden können, müssen Sie einige gespeicherte Prozeduren ausführen, um eine Protokolldatei zu erstellen, die Sie analysieren können. Obwohl sie einige Vorschläge dazu machen, ist dies alles andere als benutzerfreundlich. Ich würde nur empfehlen, dass Sie einen zertifizierten SQL-Experten für diese Art von Arbeit beauftragen.

  2. während Amazon Ihre Instanz sichert, können Sie keine einzelne Datenbank wiederherstellen. Ich habe eine Web-App mit mehreren separaten kundenspezifischen Datenbanken und meine Lösung bestand darin, eine EC2-Instanz mit SQL zu starten, um eine Verbindung zur RDB-Produktionsdatenbank herzustellen, die Daten zu importieren und dann auf der EC2-Instanz zu sichern. Die andere Lösung bestand darin, ein Drittanbieter-Tool zu verwenden, das ein umfangreiches SQL-Skript (auf dem App-Server) erstellt, mit dem das Schema neu erstellt und die Daten wieder in einen Wiederherstellungspunkt eingefügt werden.

4
Eccountable

MySQL auf EC2 vs RDS MySQL

Vorteile von MySQL unter EC2 Amazon EC2 Inter Region Replication

Kopieren Sie Snapshots in Amazon EC2-Regionen

RAID 0 mit EBS Striping in MySQL EC2

Mehr als 3 TB Festplattenspeicher (für Ihre Größe wird dies nicht benötigt) können unter MySQL auf EC2 angehängt werden.

Nachteile von MySQL auf EC2

Konfiguration, Überwachung und Wartung im Vergleich zu RDS

Zeitpunkt-Backups in RDS verfügbar

IOPS niedriger als RDS MySQL (auch nach RAID 0) derzeit 10800 mit 6 Festplatten für MySQL auf EC2, während 12500 IOPS 16 KB für RDS MySQL

4
Harish Ganesan

Ich hatte dieses Wochenende die gleiche Frage. Es gibt ein Ausfallzeitfenster von 4 Stunden pro Woche für RDS, in dem Wartungsarbeiten durchgeführt werden. RDS schien teurer, wenn Sie mit einer Mikro-Instanz von EC2 davonkommen können. (Dies gilt für Testinstanzen mit minimalem Datenverkehr.) Ich konnte auch die Zeitzone der RDS-Instanz nicht ändern, da ich keine Berechtigung habe.

Ich schaue jetzt tatsächlich auf http://xeround.com/ das ist MySQL auf EC2 von einer anderen Firma. Sie verwenden keine InnoDB, sondern haben eine eigene Engine namens IDG. Ich fange gerade an, das zu untersuchen, aber sie sind in BETA und geben 500 MB Speicherplatz.

1
Tihom