Ich bin mir nicht sicher, welche Vorteile EBS gegenüber Instance Store für meine Instanzen auf Amazon EC2 bietet. Wenn überhaupt, scheint EBS bei relativ geringen Kostenunterschieden viel nützlicher zu sein (Stopp, Start, Fortbestehen + bessere Geschwindigkeit) ...? Gibt es auch eine Metrik, ob mehr Menschen EBS verwenden, sobald es verfügbar ist, wenn man bedenkt, dass es noch relativ neu ist?
amazon-ec2
amazon-web-services
amazon-ebs
Hallo Welt
quelle
quelle
Antworten:
Unter dem Strich sollten Sie fast immer EBS-gestützte Instanzen verwenden.
Hier ist der Grund
Ich bin ein starker Benutzer von Amazon und habe alle meine Instanzen auf EBS-gestützten Speicher umgestellt, sobald die Technologie aus der Beta herausgekommen ist. Ich war sehr zufrieden mit dem Ergebnis.
EBS kann immer noch scheitern - keine Silberkugel
Beachten Sie, dass jede Cloud-basierte Infrastruktur jederzeit ausfallen kann. Planen Sie Ihre Infrastruktur entsprechend. EBS-gestützte Instanzen bieten im Vergleich zu kurzlebigen Speicherinstanzen zwar eine gewisse Haltbarkeit, können jedoch fehlschlagen. Verfügen Sie über ein AMI, von dem aus Sie nach Bedarf in jeder Verfügbarkeitszone neue Instanzen starten, Ihre wichtigen Daten (z. B. Datenbanken) sichern und, wenn Ihr Budget dies zulässt, mehrere Serverinstanzen für Lastausgleich und Redundanz ausführen können (idealerweise in mehreren Verfügbarkeitszonen) ).
Wenn nicht
Zu bestimmten Zeitpunkten kann es billiger sein, schnellere E / A auf Instance Store-Instanzen zu erzielen. Es gab eine Zeit, in der es sicherlich wahr war. Jetzt gibt es viele Optionen für die EBS-Speicherung, die vielen Anforderungen gerecht werden. Die Optionen und ihre Preisgestaltung ändern sich ständig, wenn sich die Technologie ändert. Wenn Sie über eine erhebliche Anzahl von Instanzen verfügen, die wirklich verfügbar sind (sie wirken sich nicht wesentlich auf Ihr Unternehmen aus, wenn sie einfach verschwinden), rechnen Sie über Kosten und Leistung. EBS-gestützte Instanzen können auch zu jedem Zeitpunkt sterben, aber meine praktische Erfahrung ist, dass EBS dauerhafter ist.
quelle
99% unserer AWS-Einstellungen sind recycelbar. Für mich ist es also nicht wirklich wichtig, ob ich eine Instanz beende - nichts geht jemals verloren. Wenn meine Anwendung beispielsweise automatisch auf einer Instanz von SVN bereitgestellt wird, werden unsere Protokolle auf einen zentralen Syslog-Server geschrieben.
Der einzige Vorteil des Instanzspeichers, den ich sehe, sind Kosteneinsparungen. Andernfalls gewinnen EBS-gestützte Instanzen. Eric erwähnte alle Vorteile.
[2012-07-16] Ich würde diese Antwort heute ganz anders formulieren.
Ich habe im letzten Jahr oder so keine guten Erfahrungen mit EBS-gestützten Instanzen gemacht. Die letzten Ausfallzeiten bei AWS haben auch EBS ziemlich ruiniert.
Ich vermute, dass ein Dienst wie RDS auch eine Art EBS verwendet, und das scheint größtenteils zu funktionieren. In den Fällen, in denen wir uns selbst verwalten, haben wir EBS nach Möglichkeit entfernt.
In einem Ausmaß loswerden, in dem wir einen Datenbankcluster zurück auf iron (= echte Hardware) verschoben haben. Das einzige verbleibende Teil unserer Infrastruktur ist ein DB-Server, auf dem mehrere EBS-Volumes in ein Software-RAID integriert und zweimal täglich gesichert werden. Was auch immer zwischen den Backups verloren gehen würde, wir können damit leben.
EBS ist eine etwas flockige Technologie, da es sich im Wesentlichen um ein Netzwerk-Volume handelt: ein Volume, das von einem Remote-Server an Ihren Server angeschlossen ist. Ich negiere nicht die damit geleistete Arbeit - es ist ein erstaunliches Produkt, da im Wesentlichen unbegrenzter dauerhafter Speicher nur einen API-Aufruf entfernt ist. Es ist jedoch kaum für Szenarien geeignet, in denen die E / A-Leistung entscheidend ist.
Zusätzlich zum Verhalten des Netzwerkspeichers wird das gesamte Netzwerk auf EC2-Instanzen gemeinsam genutzt. Je kleiner eine Instanz (z. B. t1.micro, m1.small) ist, desto schlechter wird sie, da Ihre Netzwerkschnittstellen auf dem tatsächlichen Hostsystem von mehreren VMs (= Ihrer EC2-Instanz) gemeinsam genutzt werden, die darauf ausgeführt werden.
Je größer die Instanz, desto besser wird es natürlich. Besser hier heißt im Rahmen der Vernunft .
Wenn Persistenz erforderlich ist, würde ich den Leuten immer raten, etwas wie S3 zu verwenden, um zwischen Instanzen zu zentralisieren. S3 ist ein sehr stabiler Dienst. Automatisieren Sie dann Ihr Instanz-Setup bis zu einem Punkt, an dem Sie einen neuen Server starten können und dieser sich von selbst fertig macht. Dann ist kein Netzwerkspeicher erforderlich, der länger als die Instanz lebt.
Alles in allem sehe ich keinen Nutzen für EBS-gestützte Instanzen. Ich füge dem Bootstrap lieber eine Minute hinzu und starte dann mit einem potenziellen SPOF.
quelle
Wir mögen Instance-Store. Dies zwingt uns dazu, unsere Instanzen vollständig recycelbar zu machen, und wir können den Prozess des Aufbaus eines Servers auf einem bestimmten AMI auf einfache Weise automatisieren. Dies bedeutet auch, dass wir AMIs problemlos austauschen können. Außerdem hat EBS von Zeit zu Zeit immer noch Leistungsprobleme.
quelle
Eric hat es ziemlich genau getroffen. Wir ( Bitnami ) sind ein beliebter Anbieter von kostenlosen AMIs für beliebte Anwendungen und Entwicklungsframeworks (PHP, Joomla, Drupal, Sie haben die Idee). Ich kann Ihnen sagen, dass EBS-gestützte AMIs wesentlich beliebter sind als S3-gestützte. Im Allgemeinen denke ich, dass s3-gestützte Instanzen für verteilte, zeitlich begrenzte Jobs (z. B. die Verarbeitung von Daten in großem Maßstab) verwendet werden. Wenn ein Computer ausfällt, wird ein anderer einfach hochgefahren. EBS-gestütztes AMIS wird in der Regel für "herkömmliche" Serveraufgaben verwendet, z. B. für Web- oder Datenbankserver, die den Status lokal beibehalten und daher im Falle eines Absturzes die Verfügbarkeit der Daten erfordern.
Ein Aspekt, den ich nicht erwähnt habe, ist die Tatsache, dass Sie während der Ausführung Snapshots einer EBS-gestützten Instanz erstellen können, wodurch Sie sehr kostengünstige Backups Ihrer Infrastruktur erstellen können (die Snapshots sind blockbasiert und inkrementell).
quelle
Ich habe genau die gleiche Erfahrung gemacht wie Eric an meiner letzten Position. Jetzt in meinem neuen Job mache ich den gleichen Prozess durch, den ich bei meinem letzten Job ausgeführt habe ... alle AMIs für EBS-gestützte Instanzen neu zu erstellen - und möglicherweise als 32-Bit-Maschinen (billiger - kann aber nicht denselben AMI auf 32 und verwenden 64 Maschinen).
Von EBS unterstützte Instanzen werden schnell genug gestartet, sodass Sie die Amazon AutoScaling-API verwenden können, mit der Sie CloudWatch-Metriken verwenden können, um den Start zusätzlicher Instanzen auszulösen und diese beim ELB (Elastic Load Balancer) zu registrieren und sie auch herunterzufahren, wenn nicht mehr benötigt.
Bei dieser Art der dynamischen automatischen Skalierung geht es bei AWS darum, wo die tatsächlichen Einsparungen bei der IT-Infrastruktur zum Tragen kommen können. Mit den alten s3-Instanzen, die von "InstanceStore" unterstützt werden, ist es so gut wie unmöglich, die automatische Skalierung richtig durchzuführen.
quelle
Ich fange gerade erst an, EC2 selbst zu verwenden, also kein Experte, aber in der Dokumentation von Amazon heißt es:
Hervorhebung von mir.
Ich mache mehr Datenanalysen als Webhosting, daher ist mir die Persistenz nicht so wichtig wie für eine Website. Angesichts der Unterscheidung von Amazon selbst würde ich nicht davon ausgehen, dass EBS für alle geeignet ist.
Ich werde versuchen, mich daran zu erinnern, wieder zu wiegen, nachdem ich beide benutzt habe.
quelle
EBS ist wie die virtuelle Festplatte einer VM:
Instanzspeicher ist:
Hier ist, wo jeder verwendet werden kann:
quelle
Die meisten Benutzer verwenden eine von EBS unterstützte Instanz, da diese zustandsbehaftet ist. Es ist sicherer, weil alles, was Sie ausgeführt und installiert haben, Stop / Stop oder Instanzfehler überlebt.
Der Instanzspeicher ist zustandslos. Sie verlieren ihn mit allen darin enthaltenen Daten, falls eine Instanz ausfällt. Es ist jedoch kostenlos und schneller, da das Instanzvolume an den physischen Server gebunden ist, auf dem die VM ausgeführt wird.
quelle
Für jemanden, der neu in all dem ist und versehentlich hier gelandet ist
Ab sofort sind alle AMIs im Schnellstartbereich von EBS unterstützt
Außerdem gibt es im offiziellen Dokument eine gute Erklärung für den Unterschied zwischen EBS und Instance Store
& dieses Bild fasst es ziemlich gut zusammen
quelle
Wenn Sie mehrere Instanzen ausführen und einen geplanten Dienst der AWS-Instanz als eine Ihrer Prioritäten für die Vermeidung unerwarteter Gebühren zuweisen , würde ich empfehlen , den Instanzspeicher nicht zu verwenden .
Darüber hinaus bietet die Verwendung von EBS Backed on Elastic Beanstalk für diese Art von Schema keinen Vorteil, da sichergestellt werden soll, dass alle benötigten Ressourcen weiterhin ausgeführt werden . Es werden immer automatisch alle Dienste neu gestartet, die Sie beenden. Überprüfen Sie den Rest der Gesamtkosten für die Verwendung von VPC , EBS und ELB , die zu EC2-Classic , der EC2-VPC mit ELB , hinzugefügt wurden meistens die beste Wahl, wenn eine gestoppte Instanz im Gegensatz zu EC2-Classic ihre zugehörige Elastic beibehält IP-Adressenund das EBS-Volume wird automatisch gespeichert .
Nehmen wir zum Schluss den Hauptteil Ihrer Frage:
Die Antwort lautet Ja, aber wenn Ihre Instanz EBS-basiert ist, kann sie gestoppt werden. Es bleibt in Ihrem Konto, Sie werden nicht dafür belastet . Ihnen wird nur das Volumen berechnet , EBS wird jedoch stündlich berechnet . Sie können auch berücksichtigen, dass Sie unter allen verfügbaren Typen die Flexibilität haben, die Größe des EBS-Volumes zu ändern .
Neben den bereits von Eric aufgeführten Vorteilen muss auch beachtet werden, dass S3 in Bezug auf die Kosten möglicherweise billiger als EBS ist oder nicht . Ich bin damit einverstanden, dass es relativ wenig Kostenunterschied gibt, wenn Sie beide Instanztypen immer auf derselben Plattform und Architektur der Anwendung ausführen.
Wenn es jedoch ein Szenario gibt, in dem die Anwendung auf einem kostengünstigeren Dienst ausgeführt werden kann, ziehen Sie alle nicht behandelten Aufgaben ab und übertragen Sie sie innerhalb kurzer Zeit über eine Pipeline oder ein Lambda an die VPC / EBS. Sagen Sie <1 Stunde pro Tag, was bei Ihnen nicht möglich ist Verwenden Sie einen Instanzspeicher , dann wird es eine andere Geschichte sein.
quelle