Amazon EC2-Terminologie - AMI vs. EBS vs. Snapshot vs. Volume

127

Ich habe mich in Amazon EC2 umgesehen und bin bei einigen Begriffen ein wenig verwirrt. Insbesondere in Bezug auf AMI, Snapshots und Volumes sowie ein EBS

Bitte korrigieren Sie mich, wenn ich falsch liege, oder füllen Sie schwerwiegende Lücken in meinen folgenden Aussagen aus:

  • Ein AMI (Amazon Machine Image) ist eine vollständige 'Festplatten'-Erfassung eines Betriebssystems und einer Konfiguration. Wenn Sie eine Instanz starten, starten Sie sie von einem AMI aus

  • Ein EBS (Elastic Block Storage) ist eine Möglichkeit, den Status aller Änderungen, die Sie beim Booten von einem bestimmten AMI vorgenommen haben, beizubehalten. In meinen Augen ist dies ein Unterschied zwischen dem Endzustand Ihrer Instanz und dem AMI.

  • Ein Schnappschuss ist ... naja, ich bin mir nicht sicher. Ich kann nur annehmen, dass es sich um eine Momentaufnahme einer bestimmten Instanz handelt, mir ist jedoch nicht klar, inwiefern sich diese von dem in einem EBS gespeicherten Status unterscheidet. Inwiefern unterscheidet sich ein Snapshot von der Erstellung eines EBS-AMI aus einer vorhandenen Instanz?

  • Ein Volume ist ... es scheint, als wäre Festplattenspeicher gemountet, in den ein AMI / EBS-Paar geladen ist? Da bin ich mir auch nicht sicher. Ich kann (von der AWS-Konsole aus) sehen, dass Sie ein Volume aus einem Snapshot erstellen und Volumes anhängen / entfernen können, aber mir ist nicht klar, warum oder wann Sie das tun würden.

Matt
quelle

Antworten:

150

Wie Sie bemerken, ist ein AMI ein Maschinenbild. Es ist eine vollständige Momentaufnahme eines Systems, das als Image gespeichert ist und als Instanz gestartet werden kann. Wir werden in einer Sekunde auf AMIs zurückkommen.

Schauen wir uns EBS an. Ihre beiden anderen Gegenstände sind Untergegenstände davon. EBS ist ein virtuelles Blockgerät. Sie können es sich wie eine Festplatte vorstellen, obwohl es wirklich ein Haufen von Software-Magie ist, sich mit einer anderen Art von Speichergerät zu verbinden, aber es so aussehen zu lassen, als wäre es eine Festplatte für eine Instanz.

EBS ist nur der Name für den gesamten Service. Innerhalb von EBS haben Sie sogenannte Volumes. Dies sind die "Einheiten", die Amazon Ihnen verkauft. Sie erstellen ein Volume, das Ihnen X Gigabyte zuweist, und Sie verwenden es wie eine Festplatte, die Sie an jeden Ihrer laufenden Computer (Instanzen) anschließen können. Volumes können entweder leer oder aus einer Snapshot-Kopie des vorherigen Volumes erstellt werden, wodurch wir zum nächsten Thema gelangen.

Schnappschüsse sind ... nun ... Schnappschüsse von Volumes: eine genaue Erfassung, wie ein Volume zu einem bestimmten Zeitpunkt aussah, einschließlich aller seiner Daten. Sie könnten ein Volume haben, es an Ihre Instanz anhängen, es mit Dingen füllen und dann einen Snapshot erstellen, aber es weiterhin verwenden. Der Inhalt des Volumes würde sich ständig ändern, während Sie es als Dateisystem verwendeten, aber der Schnappschuss würde in der Zeit eingefroren. Sie können ein neues Volume erstellen, indem Sie diesen Snapshot als Basis verwenden. Das neue Volume würde genau so aussehen wie Ihre erste Festplatte, als Sie den Snapshot aufgenommen haben. Sie können das neue Volume anstelle des alten verwenden, um ein Rollback Ihrer Daten durchzuführen, oder den gleichen Datensatz an einen zweiten Computer anhängen. Sie können jederzeit Momentaufnahmen von Volumes machen. Es ist wie ein Freeze-Frame-Instance-Backup, das jederzeit auf einfache Weise in ein neues Live-Laufwerk (Volume) umgewandelt werden kann.

Volumes können also auf einer neuen Leerstelle oder einem Snapshot basieren. Verstanden? Volumes können an beliebige Instanzen angehängt und von diesen getrennt werden, jedoch jeweils nur mit einer Instanz verbunden, genau wie die physische Festplatte, von der sie eine virtuelle Abstraktion sind.

Nun zurück zu AMIs. Diese sind schwierig, weil es zwei Arten gibt. Man schafft eine kurzlebige Situation, in der das Root-Dateisystem wie ein Laufwerk für den Computer aussieht, sich aber tatsächlich irgendwo im Speicher befindet und die Minute verdampft, in der es nicht mehr verwendet wird. Die andere Art wird als EBS-gestützte Instanz bezeichnet. Dies bedeutet, dass beim Laden Ihrer Instanzen das Root-Dateisystem auf ein neues EBS-Volume geladen wird, wobei die EC2-Technologie der virtuellen Maschine auf die EBS-Technologie aufgeschichtet wird. Ein reguläres EBS-Volume befindet sich neben EC2 und kann angehängt werden. Eine von EBS unterstützte Instanz ist jedoch auch ein Volume.

Ein regulärer AMI ist nur ein großer Datenblock, der als Maschine geladen wird. Ein von EBS unterstütztes AMI wird auf ein EBS-Volume geladen, sodass Sie es herunterfahren können, und es wird an der Stelle wiederhergestellt, an der Sie aufgehört haben, wie es bei einer echten Festplatte der Fall wäre.

Nun füge alles zusammen. Wenn eine Instanz von EBS unterstützt wird, können Sie auch einen Snapshot erstellen. Im Grunde ist dies genau das, was ein normaler Schnappschuss tun würde ... ein Standbild der Root-Festplatte Ihres Computers zu einem bestimmten Zeitpunkt. In der Praxis macht es zwei Dinge anders. Zum einen wird Ihre Instanz heruntergefahren, sodass Sie eine Kopie der Festplatte erhalten, die für einen AUS-Computer und nicht für einen EIN-Computer aussieht. Dies erleichtert das Booten :) Wenn Sie also einen Snapshot einer Instanz erstellen, wird diese heruntergefahren, das Festplattenbild aufgenommen und dann erneut gestartet. Zweitens werden diese Bilder als AMI statt als regulärer Festplattenschnappschuss gespeichert. Grundsätzlich ist es ein bootfähiger Schnappschuss eines Volumes.

Caleb
quelle
1
Danke für die tollen Infos, ich denke es kommt für mich zusammen. Eine weitere Frage: Was ist der Unterschied zwischen dem Erstellen eines Snapshots eines EBS AMI und dem Klicken mit der rechten Maustaste und dem Auswählen von "Image erstellen (EBS AMI)" in der EC2-Webkonsole? Basierend auf Ihrer obigen Beschreibung scheinen sie identisch zu sein, außer wie Sie sie verwenden. Sie können ein Volume aus einem Snapshot erstellen und dieses Volume dann an ein AMI anhängen. Wo, wie das EBS AMI-Image nur ... Ich weiß nicht, entfällt dieser Schritt des Anhängens an ein Volume?
Matt
Eigentlich macht das Konsolen-Tool zum Snapshoting eines AMIs das Gleiche wie die Webkonsole. Wo Ihre Beschreibung Fehler ist das bisschen über Anhänge. Wenn Sie einen Snapshot einer Instanz erstellen, wird zwar ein Snapshot des Root-Volumes erstellt, der Snapshot wird jedoch zu einem AMI. Ein regulärer Schnappschuss, den Sie in ein Volume einfügen und an eine Instanz anhängen. Ein Snapshot einer Instanz, die Sie in eine Instanz verwandeln (Sie hängen das Volume nicht an eine Instanz an, es IST die Instanz). Ist das sinnvoll?
Caleb
Wann immer ich Konsole sagte, wollte ich Web-Konsole sagen. Ich habe noch nicht mit Kommandozeilen-APIs oder Ähnlichem gespielt. Ich denke , was ich bin verwirrt ist, können Sie einen EBS AMI von einer Instanz erstellen, und Sie einen Schnappschuss von einem Volume erstellen, aber es scheint , dass das Volumen ist der EBS AMI. Um dann eine neue Instanz zu erstellen, können Sie entweder 1) eine von einem erstellten AMI starten oder 2) den Snapshot auf ein Volume kopieren und ein AMI starten, das an dieses Volume angehängt ist. Letztendlich ist das Ergebnis jedoch dasselbe. Ist das korrekt?
Matt
Sie waren in Ordnung, bis der Teil "es scheint wie", dann hört es auf, mit der Realität übereinzustimmen. Besonders der letzte Teil (deine 2) ist Quatsch. Sie hängen AMIs nicht an Volumes an. Von EBS unterstützte AMIs sind speziell gekennzeichnete Volumes, die bootfähig sind. Volumes werden an Instanzen angehängt, nicht umgekehrt.
Caleb
2
Wenn Sie einen anderen Snapshot als die Root-Festplatte erstellen. Ich habe viele Datenträger, auf denen Datensätze gespeichert werden, die nicht zu einem bestimmten Computer gehören. Wenn Sie ein Snapshot des Systemlaufwerks erstellen, verwenden Sie die EBS AMI-Erstellungstools. Aber manchmal haben Sie andere Volumes mit anderen Datensätzen, die möglicherweise an ein bestimmtes System angeschlossen sind oder nicht. Die können Sie in Ihrer eigenen Zeit fotografieren. Ein automatischer Snapshot wird erstellt, wenn sie an eine Instanz angehängt sind, die Sie gerade erstellt haben. Sie können jedoch auch manchmal einen eigenen Snapshot erstellen, um beispielsweise eine Festplatte zu duplizieren und mit einer anderen Instanz zu verknüpfen.
Caleb
9

Ich denke, machen wir es einfach. Erstellen Sie eine AMI-Vorlage aus einer vorhandenen Instanz (z. B. Instanz Nr. 1). Beachten Sie, dass Sie beim Erstellen einer AMI-Vorlage auch einen Volume-Snapshot in Ihrem Snapshot-Bereich haben. Wenn Sie eine neue Instanz erstellen möchten, wählen Sie die neu erstellte Instanz aus Das AMI-Template wählt dann den Schnappschuss zum Zeitpunkt der Erstellung des AMI-Templates aus.

Wenn Sie Snapshots vom Volume von Instanz 1 erstellt haben, ist dies in Ordnung. Erstellen Sie eine neue Instanz aus der AMI-Vorlage. Trennen Sie dann das Volume, das automatisch für diese Instanz erstellt wurde, und hängen Sie das aus Snapshots erstellte Volume an das Volume von Instanz 1 an.

Goldwynn T
quelle
2

Um die Dinge zusammenzufassen:

  • EBS = der AWS-Service selbst

  • EBS Volume = Stellen Sie es sich wie eine Festplatte vor, die Sie an eine EC2-Instanz anschließen können

  • Schnappschuss = eine Kopie Ihres Volumes zu einem bestimmten Zeitpunkt

  • AMI = eine Kopie einer vollständigen Instanz

TH22
quelle
0

Zusätzlich zu den obigen Erläuterungen ist hier ein Beispiel, um all diese zu verdeutlichen.

Angenommen, an Ihre "EC2-Instanz I1" sind zwei EBS-Volumes angeschlossen - EBS-Volume V1a und EBS-Volume V1b.

Wenn Sie nun ein AMI-Image aus der EC2-Instanz I1 erstellen, erhalten Sie:

ein. Ein AMI-Image der EC2-Instanz I1, nennen wir es AMI1

b. Ein Schnappschuss von EBS Volume V1a, nennen wir es S1

c. Ein Schnappschuss von EBS Volume V1b, nennen wir es S2

Wenn Sie dann eine neue Instanz vom AMI1-Image starten, erhalten Sie:

ein. Eine neue EC2-Instanz nennen wir sie I2

b. Ein neues EBS-Volume, das aus Snapshot S1 generiert wurde, nennen wir es V2a

c. Ein neues EBS-Volume, das aus Snapshot S2 generiert wurde, nennen wir es V2b

Etwas zusammenfassen -

  1. Ein AMI-Image erstellt Snapshots der Volumes, die an die ursprüngliche Instanz angehängt sind (aus der das AMI erstellt wurde).

  2. Eine neue Instanz, die von einem AMI-Image gestartet wird, erstellt Volumes aus den an dieses AMI angehängten Snapshots.

Ich erklärte es ausführlich in http://zilhaz.com/ebs-ami-aws-ec2/

zilhaz
quelle