Hat jemand Erfahrung mit der Geschwindigkeit von Amazon RDS gegenüber MySQL auf einem kleinen Server?

7

EC2 Small vs Amazon RDS - was ist schneller für MySQL?

(Ich habe eine Datenbank, gut indiziert und optimiert. Ungefähr 10.000 Zeilen in jeder Tabelle.)

Wie ist die Leistung?

Alex
quelle
1
RDS wird immer noch nach Instanztyp klassifiziert, sodass Sie in Bezug auf die Datenverarbeitung dasselbe erhalten. Der Unterschied liegt in der Konfiguration: Sie haben viel mehr Kontrolle über eine von Ihnen eingerichtete Instanz als über RDS. Der Reiz von RDS soll darin bestehen, dass weniger Eingriffe erforderlich sind (z. B. werden Aktualisierungen automatisch angewendet usw.). Ich glaube, einige Leute haben festgestellt, dass ein gut abgestimmtes benutzerdefiniertes Setup RDS übertreffen kann - schließlich ist RDS eine allgemeine Lösung - es ist nicht auf den spezifischen Anwendungsfall jedes Einzelnen zugeschnitten
cyberx86
1
@ cyberx86 Vielleicht das oben genannte als Antwort setzen.
gekkz

Antworten:

11

Erstens benutze ich kein RDS - also nimm das nicht als absolut. Wie bei EC2 wird RDS nach Instanztyp klassifiziert, sodass Sie in Bezug auf die Berechnung dasselbe erhalten. Der Unterschied hängt von der Konfiguration und dem Grad der dedizierten Hardware ab.

RDS-Vorteile:

  • Die Hardware ist nur für die Ausführung von RDS vorgesehen - nicht für allgemeine Instanzen
  • Möglicherweise bessere Netzwerk-E / A.
  • Bietet eine gute, sofort einsatzbereite Konfiguration
  • Updates werden für Sie verwaltet
  • Möglicherweise einfacher, die grundlegende Replikation einzurichten
  • Gute Schnittstelle zum Konfigurieren
  • Backup-Speicher ist in den Kosten enthalten

RDS-Nachteile:

  • Höhere Kosten als bei einer entsprechenden EC2-Instanz (~ 40% mehr)
  • Eingeschränkte Anpassung
  • Die Leistung kann sehr unterschiedlich sein (insbesondere Festplatten-E / A).
  • Erforderliche Wartung kann zu Ausfallzeiten führen, wenn eine einzelne RDS-Instanz verwendet wird (vermeidbar bei Bereitstellungen mit mehreren AZ).
  • Es liegt mehr außerhalb Ihrer Kontrolle

EC2 Vorteile:

  • Kann RAID-Arrays einrichten, um die Festplatten-E / A zu erhöhen
  • Mehr Flexibilität in Bezug auf Anpassung (Zugriff auf my.ini) und Wartung
  • Niedrigere Kosten
  • Sollte in der Lage sein, bei guter Abstimmung die gleiche oder eine bessere Leistung zu erzielen
  • Ermöglicht konventionellere Replikation und Failover
  • Kann benutzerdefinierte Überwachung / Analyse einrichten - und Probleme direkt behandeln

EC2 Nachteile:

  • Erfordert mehr Geschick / Aufwand zum Einrichten
  • Die Out-of-the-Box-Leistung ist nicht so gut wie bei RDS
  • Weniger stabile Netzwerk-E / A.

Ich würde folgendes vorschlagen:

  • Wenn Sie sich nicht die Mühe machen möchten und / oder MySQL nicht zufriedenstellend einstellen können, wählen Sie RDS
  • Wenn die Netzwerk-E / A einen großen Unterschied machen (normalerweise Setups mit vielen gleichzeitig verwendeten Threads), bietet RDS eine stabilere Leistung
  • Wenn Sie eine feinkörnige Steuerung benötigen (oder keine bessere Leistung benötigen) oder kostenbewusst sind, entscheiden Sie sich für EC2
  • Wenn Sie während Ihres Wachstums mehr über MySQL erfahren möchten, entscheiden Sie sich für EC2

Für einen bestimmten Anwendungsfall ist es wahrscheinlich die beste Option, jeden einzelnen zu vergleichen und zu sehen, wie sie sich stapeln. Die Leistung variiert schließlich für jedes Setup.

Weiterführende Literatur:

cyberx86
quelle
1

Ich kann die Antwort von @ cyberx86 nicht kommentieren, daher bin ich gezwungen, eine eigene Antwort zu geben. Betreff: Die Leistung von RDS DB liegt nördlich der sofort einsatzbereiten Leistung von EC2 DB ...

Ich habe meine AWS-Ressourcen schrittweise reduziert - wenn möglich auf mittlere bis kleine Instanzen umgestellt, auf Anwendungsebene optimiert usw. Meine derzeitige Anstrengung besteht darin, eine kleine RDS-Instanz von MariaDB gegen eine kleine EC2-Instanz mit MariaDB zu testen (möglicherweise 8 US-Dollar /). mo). Ich habe nicht versucht, MariaDB auf der EC2-Instanz zu optimieren, außer den gewünschten Standardzeichensatz und die gewünschte Sortierung festzulegen und Aria zum Standardtabellentyp zu machen.

Mein Testsatz ist eine Datenbank mit 150 Tabellen, die meisten mit weniger als 1000 Zeilen, eine mit ungefähr 500 KB und eine mit 10 Mil. Die Archivgröße, geteertes und gezipptes SQL mit Drop, falls vorhanden / Boilerplate erstellen, beträgt knapp 90 m. In einer Datenbank installiert, sind es 1,4 GB. Alle unten aufgeführten Vorgänge werden von einer zusätzlichen EC2-Instanz in derselben Region (USA-Ost) ausgeführt, wobei entweder mysqloder mysqldumpentsprechend verwendet wird. Die RDS-Instanz und die aufrufende EC2-Instanz sind us-east-1a und die EC2-MariaDB-Instanz ist us-east-1c.

Export from RDS-small MariaDB to the archival format averaged 51s across 10 tests.
Export from EC2-small with MariaDB to the archival format averaged 40s across 10 tests.
Import to RDS-small MariaDB from the archival format averaged 8:17 across 10 tests.
Import to EC2-small with MariaDB from the archival format averaged 5:33 across 10 tests.

Dies ist kein wissenschaftlicher Test, aber ich habe versucht, in meiner Ausführung konsequent zu sein. Dieses Ergebnis war nicht das, was ich erwartet hatte. Ich würde jedem empfehlen, der die Frage "EC2 mit DB oder RDS?" Finden Sie ein oder zwei Benchmarks aus den Vorgängen und Tests ihrer Anwendung ... und finden Sie dann vielleicht ein anderes Paar, was ich heute tun werde.

Matt Murphy
quelle