Ich erkenne ein paar grundlegende Unterschiede zwischen den beiden, dh
EC2 wird billiger
RDS Ich müsste keine Wartung durchführen
Abgesehen von diesen beiden gibt es Vorteile beim Ausführen meiner Datenbank über RDS im Gegensatz zu einem separaten EC2-Server, der als MySQL-Server fungiert. Werden beide unter der Annahme ähnlicher Instanzgrößen dieselben Einschränkungen hinsichtlich der Fähigkeit haben, eine Last zu bewältigen?
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.
mysql
amazon-ec2
amazon-rds
Macgyver
quelle
quelle
Antworten:
Dies ist eine einfache Frage mit einer sehr komplizierten Antwort!
Kurz gesagt: EC2 bietet maximale Leistung, wenn Sie sich für ein RAID0-EBS entscheiden. 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 beschissene E / A-Leistung, daher ist dies nicht einmal 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ügbarkeit und schreibgeschützte 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 gerne Kopfschmerzen haben und sich auf maximale Leistung einstellen, können Sie EC2 + EBS RAID 0 in Betracht ziehen. Vanilla EC2 ist eine schreckliche Option für MySQL-Hosting.
quelle
In diesem Beitrag gibt es einen hervorragenden Benchmark zwischen:
Der Benchmark ist sehr gut, da er nicht nur unter idealen Bedingungen (nur ein Thread), sondern auch in realistischeren Szenarien mit 50 Threads in der Datenbank fokussiert ist.
quelle
RDS ist 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ätzliches Amazon entscheidet, dass es Ihre rds-Instanz "aktualisieren" und an diesem Punkt ein Failover durchführen muss, wodurch Ihre Datenbank für "bis zu 3 Minuten" heruntergefahren wird (unserer Erfahrung nach kann dies länger dauern).
Die Hochverfügbarkeit von RDS 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 werden die EBS auf dem Backup-Computer bereitgestellt, MySQL gestartet, darauf gewartet, dass MySQL die Fehlerbehebung durchführt (hoffentlich wurde nichts zu stark beschädigt), und dann ein DNS-Switch ausgeführt.
Ich hoffe das hilft dir bei deiner Bewertung.
quelle
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 mithilfe von EC2-Instanzen für Sie verwaltet.
Grundsätzlich teilen wir Scalr nur mit, wie viele MySQL-Instanzen wir benötigen, um sie aufrechtzuerhalten, die Einrichtung der Replikation zu automatisieren, das automatische Failover der Slave-Heraufstufung zum Master durchzuführen, wenn der Master beendet wird usw. Es werden sowohl SQL-Dump-Backups als auch EBS-Volume-Snapshots von ausgeführt der Meister. Wenn ein neuer Slave erstellt werden muss, wird automatisch vorübergehend ein EBS-Volume des letzten Master-Snapshots bereitgestellt, um die Slave-Datenbank zu initialisieren, und anschließend wird die Replikation an der entsprechenden Stelle 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)
quelle
Bezüglich der Frage zum Wartungsfenster. Wenn Sie Multi-AZ verwenden, erstellt RDS ein Standby-Replikat in einer anderen Verfügbarkeitszone, sodass keine Ausfallzeiten für die Wartung anfallen und Sie sich vor einem Zonenausfall schützen.
Das habe ich in der nächsten Woche vor. Natürlich wird es dich mehr kosten, aber ich habe das noch nicht herausgefunden.
quelle
MySQL auf EC2 gegen RDS MySQL
Vorteile von MySQL bei der EC2 Amazon EC2 Inter Region Replication
Kopieren Sie Snapshots in Amazon EC2-Regionen
RAID 0 mit EBS Striping in MySQL EC2
Auf MySQL unter EC2 können mehr als 3 TB Festplattenspeicher (Sie benötigen diesen für Ihre Größe nicht) angeschlossen werden.
Nachteile von MySQL auf EC2
Konfiguration, Überwachung und Wartung im Vergleich zu RDS
In RDS verfügbare Zeitpunktsicherungen
IOPS kleiner als RDS MySQL (auch nach RAID 0) derzeit 10800 mit 6 Festplatten für MySQL unter EC2, während 12500 IOPS 16 KB unter RDS MySQL
quelle
Ich habe RDS einige Monate lang ausprobiert und hier sind einige Probleme, die ich habe:
Die Verwendung des SQL-Profilers 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. Sie bieten zwar einige Vorschläge dazu, sind aber alles andere als benutzerfreundlich. Ich würde nur empfehlen, dass Sie einen zertifizierten SQL-Experten für diese Art von Arbeit beauftragen.
Während Amazon Ihre Instanz sichert, können Sie keine einzelne Datenbank wiederherstellen. Ich habe eine Web-App mit mehreren separaten kundenspezifischen Datenbanken. Meine Lösung bestand darin, eine EC2-Instanz mit darauf ausgeführtem SQL zu starten, um sie an die RDB-Produktionsdatenbank anzuhängen, die Daten zu importieren und sie 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 an einem Wiederherstellungspunkt gespeichert werden.
quelle
Ich hatte dieses Wochenende die gleiche Frage. Für RDS gibt es ein Ausfallzeitfenster von 4 Stunden pro Woche, in dem Wartungsarbeiten durchgeführt werden. RDS schien teurer zu sein, wenn Sie mit einer Mikroinstanz 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 MySQL auf EC2 von einem anderen Unternehmen ist. Sie verwenden InnoDB nicht, sondern haben eine eigene Engine namens IDG. Ich fange gerade an, das zu untersuchen, aber sie befinden sich in BETA und werden 500 MB Speicherplatz bieten.
quelle