Tags: Amazon EC2, Linux
Im Gegensatz zur Server-Virtualisierung mit ESXi oder Hyper-V kann man in AWS keinen nackten virtuellen Server ohne Betriebssystem erzeugen. Vielmehr beruht eine VM immer auf einem Amazon Machine Image (AMI) mit einem darin enthaltenen Linux oder Windows. Ein AMI kann man auch selbst erstellen.
AMIs stammen entweder aus dem Angebot von AWS (Quick Start), aus dem eigenen Fundus (My AMIs), der Community (Community AMIs) oder dem kommerziellen AMI-Marktplatz (AWS Marketplace).
AMIs instanziieren
Aus dem AMI wird, sobald man daraus eine Instanz bootet ("Instanziieren"), ein (oder mehrere) virtuelle(r) Server, wobei man den gewünschten physikalischen Instanztyp angibt (also die Server-Hardware auf Basis der Hypervisor-Knoten im AWS-DC).
Wurde eine neue Instanz aus einem AMI erzeugt, dann muss sie im Rahmen ihren Lebenszyklus gepflegt werden, was etwa das Überwachen operativer Daten oder das Einspielen von Software-Patches meint.
Mittels cloudinit (Linux) oder ec2 config service (Windows) kann man im Verlauf der Instanziierung Patches oder Pakete installieren, und sofern gewünscht, ein Key Pair generieren, um sich nach dem Deployment sicher per SSH oder RDP auf den virtuellen Server verbinden zu können.
Zudem wird erst durch das Installieren zusätzlicher Software-Pakete aus einem mehr oder weniger nackten Windows- oder Linux-Server eine komplexere (Web)-Anwendung. Abhängig davon, welche Pakete per cloudinit installiert wurden oder was bereits im AMI steckt (Marketplace AMIs), kann man auch von einen Anwendungs-Server reden.
Metadaten von AMIs
Ein AMI liegt etwa bei Maschinen, die auf dem persistenten Storage der Elastic Block Volumes (EBS) basieren, als Volume-Snapshot vor. AWS speichert diesen in S3, zusammen mit der AMI-Beschreibung, welche im Wesentlichen das Volume-Mapping im Gastsystem und Startberechtigungen enthält.
Die Beschreibung zeigt außerdem an, welches Betriebssystem jeweils die Basis bildet und liefert einige Informationen zu den wichtigsten vorinstallierten Paketen oder verfügbaren Paketquellen, von welchem Typ das Root-Device ist (meist EBS), für welchen Hypervisor es gedacht ist (meist HVM) sowie die AMI-ID selbst.
Zwei Varianten von Amazon Linux
Derzeit unterstützt AWS zwei Versionen von Amazon Linux, Amazon Linux und das relativ neue Amazon Linux 2. Die dafür vorgesehenen AMIs enthalten Pakete und die erforderliche Konfiguration, um eine nahtlose Integration der Instanz mit Amazon Web Services zu ermöglichen.
Dazu sind im Amazon Linux AMI die wichtigsten AWS-API-Tools sowie cloudinit vorinstalliert. AWS API-Tools machen etwa das Scripting wichtiger Bereitstellungsaufgaben aus einer Amazon EC2-Instance heraus möglich.
Dagegen übergibt cloudinit zum Startzeitpunkt Aktionen für die Instance-Konfiguration. Dies erlaubt unter anderem auch eine Fernkonfiguration von Amazon EC2-Instances, indem zum Beispiel der SSM-Agent für den neuen AWS Systems Manager installiert wird.
Das Amazon Linux AMI ist in allen AWS-Regionen verfügbar. Folgende von AWS bereitgestellte Übersicht zeigt, welche Varianten des Linux AMI Amazon für die einzelnen EC2-Instance-Typen empfiehlt.
Im Dezember letzten Jahres hat AWS Amazon Linux 2 eingeführt, nach Einschätzung von AWS die nächste Generation seines Linux-Server-Betriebssystems. Es ist als Amazon Machine Image (AMI) für Amazon EC2, aber auch als Docker-Container-Image und sogar als virtuelle Maschine für die Verwendung auf kernelbasierter virtueller Maschine (KVM), Oracle VM VirtualBox, Microsoft Hyper-V und VMware ESXi verfügbar.
Amazon Linux 2 unterstützt auch die neuesten Amazon EC2-Funktionen, bietet ebenfalls Long Term Support (LTS), basiert auf einem Linux-Kernel 4.9 und unterstützt erstmals systemd.
Eigene AMIs erstellen
Ein AMI wird über EC2-Management-Konsole erstellt, und zwar bei markierter Instanz im Menü Actions => Image => Create Image. Das fertige Image ist nach einiger Zeit im EC2-Dashboard unter Images => AMIs zu sehen.
Dort kann man im Menü Actions darüber hinaus AMIs kopieren, neue Instanzen aus ihnen erzeugen (Launch), die Zugriffsberechtigungen auf das AMI ändern (eigene AMIs sind immer per Default privat) oder AMIs wieder entfernen.
Der Vorgang des Hinzufügens/Entfernens von AMIs in der betreffenden Region heißt offiziell Registrieren bzw. Deregistrieren.
AMI aus laufender Instanz ableiten
Zwar kann man ein Image jederzeit aus einer laufenden Instanz erzeugen, genau genommen wird es aber aus eines Snapshot des Boot-Volumes generiert. In der Praxis wird man die Instanz also erst stoppen, dann zur Volume-Ansicht wechseln, dort einen Snapshot anlegen und aus diesem in der Snapshot-Ansicht das dann das eigentliche AMI erstellen.
Genau das passiert auch im Hintergrund, wenn man ein AMI aus einer Instanz erzeugt, um einen konsistenten Zustand zu garantieren.
Ist man sich hingegen sicher, dass sich die Instanz in einem für die AMI-Erstellung geeigneten Zustand befindet, kann man EC2 auch anweisen, die Instance nicht herunterzufahren und neu zu starten. Bei einigen Dateisystemen wie XFS lassen sich Aktivitäten vorübergehend einfrieren (fsfreeze), damit das Abbild ohne Neustart der Instance auf sichere Weise erstellt werden kann.
Im Detail unterscheiden sich die Verfahren zum Erzeugen und Verwalten von Abbildern sowie zum Wiederherstellen von Instanzen bestehender Abbilder, je nachdem ob das Boot-Volume via EBS oder Instance-Store angeschlossen ist.
Täglich Know-how für IT-Pros mit unserem Newsletter
Thomas Drilling arbeitet ist seit fast 30 Jahren selbständig in der IT-Welt sowohl als Consultant, als auch als Redakteur, Buchautor und Journalist für viele ehemalige und aktuelle IT-Magazine sowie Blogs.
Aktuell bestätigt sich Thomas schwerpunktmäßig als IT-Trainer für Cloud-Computing in den Bereichen Microsoft Azure, Amazon Web Services und VMware.
Thomas ist zertifizierter Microsoft-Trainer für nahe das gesamte Portfolio an Microsoft Azure Trainings. Thomas ist außerdem zertifizierter Microsoft Azure Solutions Architect Expert sowie VMware Certified Professional und wurde von VMware in den Jahren 2016 bis 2022 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas führt aktuell jeden Monat zwei selbstkonziperte 4-tägigen Grundlagenkurse in Cloud Computing mit Azure durch, die sich inhaltlich bewusst von den Microsft-Kursen abheben und vorzuweise als Bootcamp in eine besonderen Lokation stattfinden. Optional kann aber aber auch remote via Microsoft Teams teilgenommen werden.
Das aktuelle Trainingsprogramm findet sich unter Azure-Trainings. Weitere Informationen und Anmeldung über sein Azure-Blog.
Verwandte Beiträge
- AWS EC2: Patches für Amazon Linux einspielen mit yum
- AWS EC2: Benutzer und Netzwerk in Amazon Linux konfigurieren
- Red Hat für Amazon Web Services, Konfiguration von Hyper-V prüfen, kostenloses Performance-Tool für ESX
- WSL 2.0.0: Gleiche Netzwerkkonfiguration für Windows und Linux, Verkleinern der VHDX, RAM-Zurückgewinnung
- Container auf Proxmox bereitstellen
Weitere Links