Wie funktionieren Amazon Machine Images?


9

Ich habe viele Tutorials und ähnliches über das Erstellen von AMIs gesehen, aber ich habe das vollständige Konzept eines AMI nie wirklich verstanden. Ist ein Link zur Instanz oder wird er gespeichert und nie geändert? Enthält ein Image auch den lokalen Speicher und alle auf dieser Instanz installierten Pakete usw. oder ist es einfach nur eine Kopie der Konfiguration einer bestimmten Instanz. Vielen Dank

Antworten:


10

In seiner einfachsten Form ist ein AMI eine Beschreibung einer virtuellen Maschine - der Art der Virtualisierung, der Architektur (32/64 Bit), des Kernels und des Root-Geräts. In Amazonas Worten:

Ein AMI ist eine Vorlage, die eine Softwarekonfiguration (Betriebssystem, Anwendungsserver und Anwendungen) enthält, die Sie in der bewährten Computerumgebung von Amazon ausführen können.

EC2-Instanzen sind virtuelle Maschinen, die auf der Hardware von Amazon ausgeführt werden. Damit die Instanz gestartet werden kann, ist eine Mindestmenge an Informationen erforderlich. Darüber hinaus unterstützen verschiedene Instanztypen unterschiedliche Konfigurationen (z. B. unterstützen einige keine 32-Bit-AMIs).

Jedes AMI hat eine Kennung (z. B. ami-a1b2c3d4), und die Konfiguration dieses AMI kann nach der Erstellung nicht geändert werden. (Sie können jedoch viele Einstellungen zum Startzeitpunkt oder in einigen Fällen sogar nach dem Start einer Instanz überschreiben.)

In Bezug auf das Root-Volume enthalten AMIs einen Verweis auf ein vorhandenes Volume (z. B. einen Snapshot für von EBS unterstützte Instanzen oder auf die Image-Teile bei einer von S3 unterstützten Instanz).

AMIs enthalten auch ein gewisses Maß an Fehlerprüfung - normalerweise eine Benutzer-ID zur Angabe des Eigentums, Verschlüsselungsschlüssel (die das Bild verschlüsseln) und eine Signatur (zur Überprüfung der Bildintegrität). Sie können sich eine gute Vorstellung davon machen, was ein AMI ist, indem Sie sich die Manifestdatei ansehen, die beim Erstellen einer S3-unterstützten Instanz erstellt wurde. Es handelt sich lediglich um eine Datei, die Daten und Verweise auf andere Elemente (Speicher, Kernel usw.) enthält.

Ein Bild verweist auf eine Blockgerätezuordnung - es gibt das Gerät (z. B. / dev / sda1) und die Datenquelle (kurzlebig (und die S3-Teile, falls relevant) oder den ebs-Snapshot an). Da S3-Teile signiert sind und ebs-Snapshots nicht geändert (nur gelöscht) werden können, sollte das Starten einer Instanz von einem AMI (ohne die Einstellungen zu überschreiben) immer zu einer Instanz mit demselben Software-Setup führen. (Beachten Sie, dass Instanzen, die von derselben AMI gestartet wurden, aufgrund von Benutzerdaten oder unterschiedlichen Blockgerätezuordnungen in ihren Betriebszuständen unterschiedlich sein können (z. B. haben Mikroinstanzen keinen kurzlebigen Speicher, während andere Instanztypen dies tun). Nur um klar zu sein Hier werden die angehängten Volumes getrennt vom AMI gespeichert, aber vom AMI so referenziert, dass die Volumes nicht geändert werden können.

Bevor Sie eine Instanz von einem AMI aus starten, können Sie die Blockgerätezuordnung überschreiben (z. B. um ein zusätzliches EBS-Volume oder ein anderes kurzlebiges Volume hinzuzufügen, wenn der Instanztyp dies unterstützt). Bei EBS-Volumes können Sie nach dem Start der Instanz das Root-Volume trennen und insgesamt ein anderes EBS-Volume anhängen.

Um Ihre Fragen kurz zu beantworten: Ist ein Link zur Instanz oder wird er gespeichert und nie geändert? Es wird gespeichert und nie geändert.

Enthält ein Image auch den lokalen Speicher und alle auf dieser Instanz installierten Pakete usw. oder ist es einfach nur eine Kopie der Konfiguration einer bestimmten Instanz. Das Image enthält den lokalen Speicher und alle auf dieser Instanz installierten Pakete usw. (In der Regel ist dies nur das Root-Volume. Es kann jedoch ein AMI eingerichtet werden, um eine Instanz mit mehreren aufgefüllten Volumes zu starten.)


Es handelt sich also um Verweise auf das EBS der Instanz. Wenn sich also der EBS-Status nach der AMI-Erstellung ändert, ändert sich auch der AMI-Status.
Wiz

Nein, sie verweisen auf EBS-Snapshots, nicht auf die EBS-Volumes selbst. EBS-Snapshots können sich nicht ändern, selbst wenn sich das EBS-Volume ändert. Wenn Sie eine bestimmte AMI starten, wird der EBS-Snapshot geladen, auf den sie verweist. Wenn Sie möchten, können Sie einen anderen EBS-Snapshot angeben, der beim Starten der Instanz verwendet werden soll, oder Sie können das nach dem Start der Instanz verwendete EBS-Volume ersetzen.
Cyberx86

3

Ein AMI ist effektiv die Masterkopie eines Root-Dateisystems, mit dem neue EC2-Instanzen zusammen mit einigen Metadaten wie der Architektur gestartet werden. Es enthält das vollständige Betriebssystem und die Softwarepakete, die Sie normalerweise finden würden, wenn Sie eine neue Kopie dieser Distribution starten, sowie alles, was der AMI-Ersteller zum Hinzufügen für geeignet hielt.

Wenn Sie eine AMI aus einer Instanz erstellen, erstellen Sie im Grunde eine Kopie des Root-Dateisystems dieser Instanz, die später zum Erstellen neuer Instanzen verwendet werden kann.

Meine Antwort hier könnte auch helfen: /programming//a/7895489/111286

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.