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.)