Automatisieren von AMI-Lebenszyklen - Amazon Elastic Compute Cloud

Automatisieren von AMI-Lebenszyklen

Das folgende Verfahren zeigt, wie Sie Amazon Data Lifecycle Manager verwenden, um EBS-AMI-Lebenszyklen zu automatisieren.

Erstellen einer AMI-Lebenszyklusrichtlinie

Verwenden Sie eines der folgenden Verfahren, um eine AMI-Lebenszyklusrichtlinie zu erstellen.

Console

So erstellen Sie eine AMI-Richtlinie

  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Elastic Block Store und Lifecycle Manager aus. Wählen Sie dann Create lifecycle policy (Lebenszyklusrichtlinie erstellen) aus.

  3. Wählen Sie auf dem Bildschirm Richtlinientyp auswählen die Option EBS-unterstützte AMI-Richtlinie und dann Weiter aus.

  4. Wählen Sie im Abschnitt Zielressourcen für Zielressourcen-Tags die Ressourcen-Tags aus, die die zu sichernden Volumes oder Instances identifizieren. Die Richtlinie sichert nur die Ressourcen mit den angegebenen Tag (Markierung)-Schlüssel-Wert-Paaren.

  5. Geben Sie unter Description (Beschreibung) eine kurze Beschreibung der Richtlinie ein.

  6. Wählen Sie für IAM-Rolle die IAM-Rolle aus, die über Berechtigungen zum Verwalten von AMIs und Snapshots sowie zum Beschreiben von Instances verfügt. Um die von Amazon Data Lifecycle Manager bereitgestellte Standardrolle zu verwenden, wählen Sie Standardrolle. Um alternativ eine benutzerdefinierte IAM-Rolle zu verwenden, die Sie zuvor erstellt haben, wählen Sie Andere Rolle auswählen und dann die zu verwendende Rolle aus.

  7. Fügen Sie für Richtlinien-Tags die Tags hinzu, die auf die Lebenszyklusrichtlinie angewendet werden sollen. Sie können diese Tags (Markierungen) verwenden, um Ihre Richtlinien zu identifizieren und zu kategorisieren.

  8. Wählen Sie für Richtlinienstatus nach der Erstellung die Option Richtlinie aktivieren, um die Ausführungen der Richtlinie zum nächsten eingeplanten Zeitpunkt zu starten, oder Richtlinie deaktivieren, um zu verhindern, dass die Richtlinie ausgeführt wird. Wenn Sie die Richtlinie jetzt nicht aktivieren, beginnt sie erst mit der Erstellung von AMIs, wenn Sie sie nach der Erstellung manuell aktivieren.

  9. Geben Sie im Abschnitt Instance-Neustart an, ob Instances vor der AMI-Erstellung neu gestartet werden sollen. Um zu verhindern, dass die Zielinstances neu gestartet werden, wählen Sie Nein. Die Auswahl von Nein kann zu Problemen mit der Datenkonsistenz führen. Um Instances vor der AMI-Erstellung neu zu starten, wählen Sie Ja. Die Wahl dieser Option gewährleistet die Datenkonsistenz, könnte jedoch dazu führen, dass mehrere abgezielte Instances gleichzeitig neu gestartet werden.

  10. Wählen Sie Next (Weiter).

  11. Konfigurieren Sie auf dem Bildschirm Zeitplan konfigurieren die Richtlinienzeitpläne. Eine Richtlinie kann bis zu vier Zeitpläne aufweisen. Zeitplan 1 ist obligatorisch. Die Zeitpläne 2, 3 und 4 sind optional. Gehen Sie für jeden Richtlinienzeitplan, den Sie hinzufügen, wie folgt vor:

    1. Gehen Sie im Abschnitt Zeitplandetails wie folgt vor:

      1. Geben Sie für Zeitplanname einen beschreibenden Namen für den Zeitplan an.

      2. Konfigurieren Sie für Häufigkeit und die zugehörigen Felder das Intervall zwischen Richtlinienausführungen. Sie können Richtlinienausführungen nach einem täglichen, wöchentlichen, monatlichen oder jährlichen Zeitplan konfigurieren. Alternativ können Sie Custom cron expression (Benutzerdefinierter Cron-Ausdruck) wählen, um ein Intervall von bis zu 1 Jahr anzugeben. Weitere Informationen finden Sie unter Cron-Ausdrücke im Benutzerhandbuch für Amazon CloudWatch Events.

      3. Geben Sie für Starten um die Zeit an, zu der die Richtlinienausführungen gestartet werden sollen. Die erste Richtlinienausführung beginnt innerhalb einer Stunde nach der geplanten Zeit. Die Uhrzeit muss im hh:mm UTC-Format eingegeben werden.

      4. Geben Sie für Aufbewahrungstyp die Aufbewahrungsrichtlinie für AMIs an, die vom Zeitplan erstellt wurden. Sie können AMIs basierend auf ihrer Gesamtzahl oder ihrem Alter aufbewahren.

        Für die anzahlbasierte Aufbewahrung liegt der Bereich zwischen 1 und 1000. Nach Erreichen der maximalen Anzahl wird die Registrierung des ältesten Snapshotes oder des ältesten AMIs aufgehoben, wenn ein neuer oder ein neues erstellt wird.

        Für die auf dem Alter basierende Aufbewahrung reicht die Spanne von 1 Tag bis 100 Jahre. Nach Ablauf des Aufbewahrungszeitraums des Snapshots oder AMI wird die Registrierung aufgehoben.

        Anmerkung

        Alle Zeitpläne müssen denselben Aufbewahrungstyp haben. Sie können den Aufbewahrungstyp nur für Zeitplan 1 angeben. Die Zeitpläne 2, 3 und 4 erben den Aufbewahrungstyp aus Plan 1. Jeder Zeitplan kann über eine eigene Aufbewahrungsanzahl oder einen eigenen Zeitraum verfügen.

    2. Gehen Sie im Abschnitt Tag (Markierung) wie folgt vor:

      1. Um alle benutzerdefinierten Tags aus der Quell-Instance in die vom Zeitplan erstellten AMIs zu kopieren, wählen Sie Tags aus Quelle kopieren aus.

      2. Standardmäßig werden AMIs, die durch den Zeitplan erstellt wurden, automatisch mit der ID der Quell-Instance gekennzeichnet. Um dieses automatische Markieren zu verhindern, entfernen Sie bei Variablen-Tags (Markierungen) die instance-id:$(instance-id)-Kachel.

      3. Um zusätzliche Tags anzugeben, die den von diesem Zeitplan erstellten AMIs zugewiesen werden sollen, wählen Sie Tags hinzufügen.

    3. Um AMIs zu verwerfen, wenn sie nicht mehr verwendet werden sollten, wählen Sie im Abschnitt AMI-Veraltung den AMI-Veraltung für diesen Zeitplan und geben Sie dann die AMI-Veraltungsregel an. Die AMI-Veraltungsregel gibt an, wann AMIs veraltet werden sollen.

      Wenn der Zeitplan eine zahlbasierte AMI-Aufbewahrung verwendet, müssen Sie die Anzahl der ältesten AMIs angeben, die veraltet werden soll. Die Anzahl der Veraltungszeiten muss kleiner oder gleich der AMI-Aufbewahrungsanzahl des Zeitplans sein und darf nicht größer als 1000 sein. Wenn der Zeitplan beispielsweise so konfiguriert ist, dass maximal 5 AMIs beibehalten werden, können Sie die geplanten bis zu alten 5 ältesten AMIs konfigurieren.

      Wenn der Zeitplan eine altersbasierte AMI-Aufbewahrung verwendet, müssen Sie den Zeitraum angeben, nach dem AMIs veraltet werden sollen. Die Anzahl der Veraltungszeiten muss kleiner oder gleich dem AMI-Aufbewahrungszeitraum des Zeitplans sein und darf nicht größer als 10 Jahre sein (120 Monate, 520 Wochen oder 3650 Tage). Wenn der Zeitplan beispielsweise so konfiguriert ist, dass AMIs 10 Tage lang beibehalten werden, können Sie die geplanten AMIs so konfigurieren, dass sie nach Zeiträumen bis zu 10 Tage nach der Erstellung veraltet sind.

    4. Um vom Zeitplan erstellte AMIs in verschiedene Regionen zu kopieren, wählen Sie im Abschnitt Regionsübergreifendes Kopieren die Option Regionsübergreifendes Kopieren aktivieren aus. Sie können AMIs in bis zu drei zusätzliche Regionen in Ihrem Konto kopieren. Sie müssen für jede Zielregion eine separate regionsübergreifende Kopierregel angeben.

      Sie können für jede Zielregion Folgendes angeben:

      • Eine Aufbewahrungsregel für die AMI-Kopie. Wenn der Aufbewahrungszeitraum abgläuft, wird die Kopie in der Zielregion automatisch aufgehoben.

      • Verschlüsselungsstatus für die AMI Kopie. Wenn das Quell-AMI verschlüsselt ist oder die standardmäßige Verschlüsselung aktiviert ist, werden die kopierten AMIs stets verschlüsselt. Wenn der Quell-AMI unverschlüsselt ist und die Verschlüsselung standardmäßig deaktiviert ist, können Sie optional die Verschlüsselung aktivieren. Wenn Sie keinen Verschlüsselung angeben, werden die AMIs mit dem Standard-Verschlüsselung für die EBS-Verschlüsselung in jeder Zielregion verschlüsselt. Wenn Sie einen Verschlüsselung für die Zielregion angeben, muss die ausgewählte IAM-Rolle Zugriff auf das Verschlüsselung haben.

      • Eine Veraltungsregel für die AMI Kopie. Wenn die Veraltungsperiode abgelaufen ist, wird die AMI-Kopie automatisch veraltet. Die Veraltungsfrist muss kleiner oder gleich dem Kopieraufbewahrungszeitraum sein und darf nicht länger als 10 Jahre sein.

      • Ob alle Tags oder keine Tags aus dem Quell-AMI kopiert werden sollen.

      Anmerkung

      Überschreiten Sie nicht die Anzahl gleichzeitiger AMI-Kopien pro Region.

    5. Um weitere Zeitpläne hinzuzufügen, wählen Sie die Option Weiteren Zeitplan hinzufügen, die sich oben auf dem Bildschirm befindet. Füllen Sie für jeden zusätzlichen Zeitplan die Felder wie oben in diesem Thema beschrieben aus.

    6. Nachdem Sie die erforderlichen Zeitpläne hinzugefügt haben, wählen Sie Richtlinie überprüfen aus.

  12. Überprüfen Sie die Richtlinienzusammenfassung und wählen Sie dann Richtlinie erstellen aus.

Command line

Verwenden Sie den Befehl create-lifecycle-policy, um eine AMI-Lebenszyklus-Richtlinie zu erstellen. Legen Sie für PolicyType die Option IMAGE_MANAGEMENT fest.

Anmerkung

Zur Vereinfachung der Syntax wird in den folgenden Beispielen eine JSON-Datei policyDetails.json verwendet, die die Richtliniendetails enthält.

Beispiel 1: Altersbasierte Aufbewahrung und AMI Ablehnung

In diesem Beispiel wird eine AMI-Lebenszyklusrichtlinie erstellt, die AMIs aller Instances erstellt, die einen Tag (Markierung)-Schlüssel purpose mit einem Wert von production haben, ohne die Ziel-Instances neu zu starten. Die Richtlinie enthält einen Zeitplan, der jeden Tag um 01:00 Uhr UTC ein AMI erstellt. Die Richtlinie behält AMIs für 2 Tage und veraltet sie nach 1 Tagen. Sie kopiert die Tags (Markierungen) auch von der Quell-Instance in die AMIs, die sie erstellt.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

Das folgende Beispiel zeigt eine policyDetails.json-Datei.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, RetainRule":{ "Interval" : 2, "IntervalUnit" : "DAYS" }, DeprecateRule": { "Interval" : 1, "IntervalUnit" : "DAYS" }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

Wenn die Anforderung erfolgreich ist, gibt der Befehl die ID der neu erstellten Richtlinie zurück. Es folgt eine Beispielausgabe.

{ "PolicyId": "policy-9876543210abcdef0" }

Beispiel 2: Zählbasierte Aufbewahrung und AMI-Veraltung mit regionsübergreifender Kopie

In diesem Beispiel wird eine AMI-Lebenszyklusrichtlinie erstellt, die AMIs aller Instances erstellt, die einen Tag (Markierung)-Schlüssel purpose mit einem Wert von production haben und startet die Ziel-Instances neu. Die Richtlinie enthält einen Zeitplan, der täglich alle 6 Stunden, beginnend um 17:30 Uhr UTC, ein AMI erstellt. Die Richtlinie behält 3-AMIs und veraltet automatisch die 2 ältesten AMIs. Es verfügt auch über eine regionsübergreifende Kopierregel, die AMIs nach us-east-1 kopiert, 2-AMI-Kopien behält und automatisch das älteste AMI veraltet.

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

Das folgende Beispiel zeigt eine policyDetails.json-Datei.

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes" : [ "INSTANCE" ], "TargetTags": [{ "Key":"purpose", "Value":"production" }], "Parameters" : { "NoReboot": true }, "Schedules" : [{ "Name" : "Schedule1", "CopyTags": true, "CreateRule" : { "Interval": 6, "IntervalUnit": "HOURS", "Times" : ["17:30"] }, "RetainRule":{ "Count" : 3 }, "DeprecateRule":{ "Count" : 2 }, "CrossRegionCopyRules": [{ "TargetRegion": "us-east-1", "Encrypted": true, "RetainRule":{ "IntervalUnit": "DAYS", "Interval": 2 }, "DeprecateRule":{ "IntervalUnit": "DAYS", "Interval": 1 }, "CopyTags": true }] }] }

Überlegungen zu AMI-Lebenszyklusrichtlinien

Die folgenden Überlegungen gelten beim Erstellen von AMI-Lebenzyklusrichtlinien:

  • Der erste AMI-Erstellungsvorgang beginnt innerhalb einer Stunde nach der angegebenen Startzeit. Nachfolgende AMI-Erstellungsvorgänge beginnen innerhalb einer Stunde nach ihrer geplanten Zeit.

  • Wenn Amazon Data Lifecycle Manager ein AMI abmeldet, löscht er es automatisch mit Snapshots zum Backup.

  • Bei Zielressourcen-Tags muss die Groß-/Kleinschreibung beachtet werden.

  • Sie können mehrere Richtlinien zum Sichern einer Instance erstellen. Wenn eine Instance zwei Tags hat, wobei Tag A das Ziel für Richtlinie A ist, alle 12 Stunden ein AMI zu erstellen, und Tag B das Ziel für Richtlinie B, alle 24 Stunden ein AMI zu erstellen, erstellt Amazon Data Lifecycle Manager AMIs gemäß den Zeitplänen für beide Richtlinien. Alternativ können Sie dasselbe Ergebnis erzielen, indem Sie eine einzelne Richtlinie mit mehreren Zeitplänen erstellen. Sie können beispielsweise eine einzelne Richtlinie erstellen, die nur auf Tag (Markierung) Aabzielt, und zwei Zeitpläne angeben – einen für alle 12 Stunden und einen für alle 24 Stunden.

  • Neue Volumes, die an eine Ziel-Instance angehängt werden, nachdem die Richtlinie erstellt wurde, werden bei der nächsten Richtlinienausführung automatisch in das Backup einbezogen. Alle Volumes, die zum Zeitpunkt der Richtlinienausführung mit der Instance verbunden sind, sind enthalten.

  • Wenn Sie eine Richtlinie mit einem benutzerdefinierten Cron-basierten Zeitplan so erstellen und konfigurieren, dass nur ein AMI erstellt wird, wird die Richtlinie dieses AMI nicht automatisch abmelden, wenn der Aufbewahrungsschwellenwert erreicht ist. Sie müssen das AMI manuell abmelden, wenn es nicht mehr benötigt wird.

Die folgenden Überlegungen gelten für das Beenden von Instances, die Ziel einer Richtlinie sind:

  • Wenn Sie eine Instance beenden, die Ziel einer Richtlinie mit einem anzahlbasierten Aufbewahrungsplan war, verwaltet die Richtlinie die AMIs nicht mehr, die zuvor von der beendeten Instance erstellt wurden. Sie müssen diese früheren AMIs manuell abmelden, wenn sie nicht mehr benötigt werden.

  • Wenn Sie eine Instance beenden, die Ziel einer Richtlinie mit einem altersbasierten Aufbewahrungszeitplan war, meldet die Richtlinie zuvor von der beendeten Instance erstellte AMIs weiterhin nach dem definierten Zeitplan bis zum letzten AMI aber nicht einschließlich des letzten AMI ab. Sie müssen das letzte AMI manuell abmelden, wenn es nicht mehr benötigt wird.

Die folgenden Überlegungen gelten für AMI-Richtlinien und AMI-Veralterung:

  • Wenn Sie die AMI-Veraltungsanzahl für einen Zeitplan mit zählbasierter Aufbewahrung erhöhen, wird die Änderung auf alle AMIs (vorhandene und neue) angewendet, die durch den Zeitplan erstellt wurden.

  • Wenn Sie den AMI-Veraltungszeitraum für einen Zeitplan mit altersbasierter Aufbewahrung erhöhen, wird die Änderung nur auf neue AMIs angewendet. Vorhandene AMIs sind nicht betroffen.

  • Wenn Sie die AMI-Abwärtsregel aus einem Zeitplan entfernen, wird Amazon Data Lifecycle Manager die Veraltungsregel für AMIs, die zuvor durch diesen Zeitplan veraltet waren, nicht abbrechen.

  • Wenn Sie die AMI-Veraltungsanzahl oder -periode für einen Zeitplan verringern, wird Amazon Data Lifecycle Manager die Verwarnung für AMIs, die zuvor durch diesen Zeitplan veraltet waren, nicht abbrechen.

  • Wenn Sie ein AMI, das mit einer AMI-Richtlinie erstellt wurde, manuell verwerfen, überschreibt Amazon Data Lifecycle Manager die Veraltungsphase nicht.

  • Wenn Sie die Veraltung für ein AMI manuell abbrechen, das zuvor durch eine AMI-Richtlinie veraltet wurde, überschreibt Amazon Data Lifecycle Manager die Stornierung nicht.

  • Wenn ein AMI durch mehrere in Konflikt stehende Zeitpläne erstellt wird und für einen oder mehrere dieser Zeitpläne keine AMI-Veraltungsregel vorhanden ist, wird Amazon Data Lifecycle Manager dieses AMI nicht veraltet.

  • Wenn ein AMI durch mehrere in Konflikt stehende Zeitpläne erstellt wird und alle diese Zeitpläne über eine AMI-Ablehnungsregel verfügen, verwendet Amazon Data Lifecycle Manager die Veralterungsregel, die zum letzten Veralterungsdatum führt.

Die folgenden Überlegungen gelten für AMI-Lebenszyklusrichtlinien, die sich im error-Status befinden:

  • Bei Richtlinien mit altersbasierten Aufbewahrungszeitplänen werden AMIs, deren Aufbewahrungszeiträume ablaufen, während sich die Richtlinie im error-Status befindet, auf unbestimmte Zeit aufbewahrt. Die AMIs müssen Sie manuell abmelden. Wenn Sie die Richtlinie erneut aktivieren, setzt Amazon Data Lifecycle Manager das Abmelden von AMIs fort, wenn ihre Aufbewahrungszeiträume ablaufen.

  • Bei Richtlinien mit anzahlbasierten Aufbewahrungszeitplänen stoppt die Richtlinie das Erstellen und Abmelden von AMIs, während sie sich im error-Status befindet. Wenn Sie die Richtlinie erneut aktivieren, setzt Amazon Data Lifecycle Manager das Erstellen von AMIs sowie das Abmelden von AMIs bei Erreichen des Aufbewahrungsschwellenwerts fort.

Weitere Ressourcen

Weitere Informationen finden Sie im AWS-Speicher-Blog zur Automatisierung von Amazon-EBS-Snapshots und AMI-Verwaltung mit Amazon Data Lifecycle Manager.