Kündigungsrichtlinien für Amazon EC2 Auto Scaling konfigurieren - Amazon EC2 Auto Scaling

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kündigungsrichtlinien für Amazon EC2 Auto Scaling konfigurieren

Eine Kündigungsrichtlinie legt die Kriterien fest, nach denen Amazon EC2 Auto Scaling Instances in einer bestimmten Reihenfolge beendet.

Standardmäßig verwendet Amazon EC2 Auto Scaling eine Kündigungsrichtlinie, die darauf ausgelegt ist, zuerst Instances zu beenden, die veraltete Konfigurationen verwenden. Sie können die Kündigungsrichtlinie ändern, um zu kontrollieren, welche Instances am wichtigsten zuerst beendet werden müssen.

Wenn Amazon EC2 Auto Scaling Instances beendet, versucht es, das Gleichgewicht zwischen den Availability Zones aufrechtzuerhalten, die für Ihre Auto Scaling Scaling-Gruppe aktiviert sind. Die Aufrechterhaltung des zonalen Gleichgewichts hat Vorrang vor der Kündigungsrichtlinie. Wenn eine Availability Zone mehr Instances als andere hat, wendet Amazon EC2 Auto Scaling die Kündigungsrichtlinie zuerst auf die unausgeglichene Zone an. Wenn die Availability Zones ausgeglichen sind, wendet es die Kündigungsrichtlinie auf alle Zonen an.

So funktioniert die standardmäßige Kündigungsrichtlinie

Wenn Amazon EC2 Auto Scaling eine Instance beenden muss, identifiziert es zunächst, welche Availability Zone (oder Zonen) die meisten Instances und mindestens eine Instance hat, die nicht vor einer Skalierung geschützt ist. Anschließend bewertet es ungeschützte Instances innerhalb der identifizierten Availability Zone wie folgt:

Instanzen, die veraltete Konfigurationen verwenden
  • Für Gruppen, die eine Startvorlage verwenden — Stellen Sie fest, ob eine der Instances veraltete Konfigurationen verwendet, und priorisieren Sie dabei in dieser Reihenfolge:

    1. Suchen Sie zunächst nach Instances, die mit einer Startkonfiguration gestartet wurden.

    2. Suchen Sie dann nach Instances, die mit einer anderen Startvorlage als mit der aktuellen Startvorlage gestartet wurden.

    3. Suchen Sie abschließend nach Instances, die die älteste Version der aktuellen Startvorlage verwenden.

  • Für Gruppen, die eine Startkonfiguration verwenden — Stellen Sie fest, ob eine der Instances die älteste Startkonfiguration verwendet.

Wenn keine Instances mit veralteten Konfigurationen gefunden werden oder mehrere Instances zur Auswahl stehen, berücksichtigt Amazon EC2 Auto Scaling die nächsten Kriterien für Instances, die sich ihrer nächsten Abrechnungsstunde nähern.

Instances, die sich der nächsten Abrechnungsstunde nähern

Stellen Sie fest, ob eine der Instanzen, die die vorherigen Kriterien erfüllen, der nächsten Abrechnungsstunde am nächsten kommt. Wenn mehrere Instanzen gleich nah beieinander liegen, beenden Sie eine nach dem Zufallsprinzip. Auf diese Weise können Sie die Nutzung Ihrer Instances, die stündlich abgerechnet werden, maximieren. Der Großteil der EC2-Nutzung wird jetzt jedoch pro Sekunde abgerechnet, sodass diese Optimierung weniger Vorteile bietet. Weitere Informationen dazu finden Sie unter Amazon EC2 – Preise.

Das folgende Flussdiagramm zeigt, wie die standardmäßige Kündigungsrichtlinie für Gruppen funktioniert, die eine Startvorlage verwenden.

Ein Flussdiagramm, das zeigt, wie eine Auto Scaling Scaling-Gruppe die Standard-Terminierungsrichtlinie verwendet, um Instances zu beenden.

Standard-Beendigungsrichtlinie und Gruppe mit gemischten Instances

Amazon EC2 Auto Scaling wendet beim Beenden von Instances in gemischten Instance-Gruppen zusätzliche Kriterien an.

Wenn Amazon EC2 Auto Scaling eine Instance beenden muss, wird zunächst anhand der Gruppeneinstellungen ermittelt, welche Kaufoption (Spot oder On-Demand) beendet werden soll. Dadurch wird sichergestellt, dass sich die Gruppe im Laufe der Zeit dem angegebenen Verhältnis von Spot- und On-Demand-Instances nähert.

Anschließend wendet sie die Kündigungsrichtlinie unabhängig innerhalb jeder Availability Zone an. Sie bestimmt, welche Spot- oder On-Demand-Instance in welcher Availability Zone beendet werden soll, um die Availability Zones im Gleichgewicht zu halten. Dieselbe Logik gilt für eine gemischte Instance-Gruppe mit definierten Gewichtungen für die Instance-Typen.

In jeder Zone funktioniert die standardmäßige Kündigungsrichtlinie wie folgt, um zu bestimmen, welche ungeschützte Instance innerhalb der identifizierten Kaufoption gekündigt werden kann:

  1. Ermitteln Sie, ob eine der Instances beendet werden kann, um die Abstimmung mit der angegebenen Zuweisungsstrategie für die Auto Scaling Scaling-Gruppe zu verbessern. Wenn keine Instanzen für die Optimierung identifiziert wurden oder mehrere Instanzen zur Auswahl stehen, wird die Bewertung fortgesetzt.

  2. Stellen Sie fest, ob eine der Instanzen veraltete Konfigurationen verwendet, und priorisieren Sie dabei in dieser Reihenfolge:

    1. Suchen Sie zunächst nach Instances, die mit einer Startkonfiguration gestartet wurden.

    2. Suchen Sie dann nach Instances, die mit einer anderen Startvorlage als mit der aktuellen Startvorlage gestartet wurden.

    3. Suchen Sie abschließend nach Instances, die die älteste Version der aktuellen Startvorlage verwenden.

    Wenn keine Instanzen mit veralteten Konfigurationen gefunden werden oder mehrere Instanzen zur Auswahl stehen, wird die Bewertung fortgesetzt.

  3. Stellen Sie fest, ob eine der Instanzen der nächsten Abrechnungsstunde am nächsten ist. Wenn mehrere Instanzen gleich nah beieinander liegen, wählen Sie nach dem Zufallsprinzip eine aus.

Vordefinierte Kündigungsrichtlinien

Sie wählen aus den folgenden vordefinierten Kündigungsrichtlinien:

  • Default— Beenden Sie Instances gemäß der Standard-Kündigungsrichtlinie.

  • AllocationStrategy— Beenden Sie Instances in der Auto Scaling Scaling-Gruppe, um die verbleibenden Instances an der Zuweisungsstrategie für den Instance-Typ auszurichten, der beendet wird (entweder eine Spot-Instance oder eine On-Demand-Instance). Diese Richtlinie ist nützlich, wenn Ihre bevorzugte Instance-Typen sich geändert haben. Wenn die Spot-Zuweisungsstrategie lowest-price lautet, können Sie Spot-Instances allmählich auf die N günstigsten Spot-Instance-Pools neu verteilen. Wenn die Spot-Zuweisungsstrategie capacity-optimized lautet, können Sie Spot-Instances allmählich auf mehrere Spot-Pools verteilen, in denen mehr Spot-Kapazität verfügbar ist. Sie können auch schrittweise On-Demand-Instances einer niedrigeren Priorität durch On-Demand-Instances einer höheren Priorität ersetzen.

  • OldestLaunchTemplate— Beendet Instances mit der ältesten Startvorlage. Mit dieser Richtlinie werden Instances, die eine langfristige Startvorlage verwenden, zuerst beendet, gefolgt von Instances, die eine älteste Version der aktuellen Startvorlage verwenden. Diese Richtlinie ist nützlich, wenn Sie eine Gruppe aktualisieren und die Instances einer früheren Konfiguration auslaufen lassen.

  • OldestLaunchConfiguration— Beendet Instances mit der ältesten Startkonfiguration. Diese Richtlinie ist nützlich, wenn Sie eine Gruppe aktualisieren und die Instances einer früheren Konfiguration auslaufen lassen. Mit dieser Richtlinie werden Instances, welche die nicht aktuelle Startkonfiguration verwenden, zuerst beendet.

  • ClosestToNextInstanceHour— Beendet Instances, die der nächsten Abrechnungsstunde am nächsten sind. Diese Richtlinie hilft Ihnen, die Nutzung Ihrer Instances mit Stundengebühr zu maximieren.

  • NewestInstance— Beendet die neueste Instanz in der Gruppe. Diese Richtlinie ist nützlich, wenn Sie eine neue Startkonfiguration testen, sie aber in der Produktionsumgebung nicht weiter verwenden möchten.

  • OldestInstance— Beendet die älteste Instanz in der Gruppe. Diese Option ist nützlich, wenn Sie die Instances in der Auto-Scaling-Gruppe auf einen neuen EC2-Instance-Typ upgraden. Sie können nach und nach Instances des alten Typs durch Instances des neuen Typs ersetzen.

    Anmerkung

    Amazon EC2 Auto Scaling gleicht Instances immer zuerst über Availability Zones aus, unabhängig davon, welche Beendigungsrichtlinie verwendet wird. Daher können Situationen auftreten, in denen neuere Instances vor älteren Instances beendet werden. Beispielsweise, wenn eine kürzlich hinzugefügte Availability Zone vorhanden ist oder eine Availability Zone über mehr Instances verfügt als die anderen Availability Zones, die von der Gruppe verwendet werden.

Ändern Sie die Kündigungsrichtlinie für eine Auto Scaling Scaling-Gruppe

Verwenden Sie eine der folgenden Methoden, um die Kündigungsrichtlinie für Ihre Auto Scaling Scaling-Gruppe zu ändern.

Console

Sie können die Kündigungsrichtlinie nicht ändern, wenn Sie zum ersten Mal eine Auto Scaling Scaling-Gruppe in der Amazon EC2 Auto Scaling Scaling-Konsole erstellen. Die standardmäßige Beendigungsrichtlinie wird automatisch verwendet. Nachdem Ihre Auto Scaling Scaling-Gruppe erstellt wurde, können Sie die Standardrichtlinie durch eine andere Kündigungsrichtlinie oder durch mehrere Kündigungsrichtlinien ersetzen, die in der Reihenfolge aufgeführt sind, in der sie gelten sollen.

So ändern Sie die Kündigungsrichtlinie für eine Auto Scaling Scaling-Gruppe
  1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/ und wählen Sie im Navigationsbereich Auto Scaling Groups (Auto-Scaling-Gruppen) aus.

  2. Aktivieren Sie das Kontrollkästchen neben der Auto-Scaling-Gruppe.

    Im unteren Teil der Seite wird ein geteilter Bereich geöffnet.

  3. Wählen Sie auf der Registerkarte Details die Option Erweiterte Konfigurationen, Bearbeiten.

  4. Wählen Sie für Beendigungsrichtlinien eine oder mehrere Beendigungsrichtlinien aus. Wenn Sie mehrere Richtlinien auswählen, geben Sie diese in der Reihenfolge an, in der sie ausgewertet werden sollen.

    Sie können optional die Option Benutzerdefinierte Beendigungsrichtlinie wählen und dann eine Lambda-Funktion auswählen, die Ihren Anforderungen entspricht. Wenn Sie Versionen und Aliase für Ihre Lambda-Funktion erstellt haben, können Sie eine Version oder einen Alias aus der Dropdown-Liste Version/Alias auswählen. Um die unveröffentlichte Version Ihrer Lambda-Funktion zu verwenden, lassen Sie Version/Alias auf den Standardwert eingestellt. Weitere Informationen finden Sie unter Eine benutzerdefinierte Beendigungsrichtlinie mit Lambda erstellen.

    Anmerkung

    Wenn Sie mehrere Richtlinien verwenden, muss deren Reihenfolge korrekt festgelegt werden:

    • Wenn Sie die Standardrichtlinie verwenden, muss sie die letzte Richtlinie in der Liste sein.

    • Wenn Sie eine Custom termination policy (benutzerdefinierte Beendigungsrichtlinie) verwenden, muss diese die erste Richtlinie in der Liste sein.

  5. Wählen Sie Aktualisieren.

AWS CLI

Die Standardbeendigungsrichtlinie wird automatisch verwendet, es sei denn, es wird eine andere Richtlinie angegeben.

So ändern Sie die Kündigungsrichtlinie für eine Auto Scaling Scaling-Gruppe

Verwenden Sie einen der folgenden Befehle:

Sie können diese Beendigungsrichtlinien einzeln verwenden oder sie zu einer Liste von Richtlinien zusammenführen. Nutzen Sie z. B. den folgenden Befehl, um eine Auto-Scaling-Gruppe zu aktualisieren, damit sie zuerst die Richtlinie OldestLaunchConfiguration und dann die Richtlinie ClosestToNextInstanceHour verwendet.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --termination-policies "OldestLaunchConfiguration" "ClosestToNextInstanceHour"

Falls Sie die Default-Beendigungsrichtlinie verwenden, setzen Sie sie ans Ende der Liste der Beendigungsrichtlinien. z. B. --termination-policies "OldestLaunchConfiguration" "Default".

Um eine benutzerdefinierte Kündigungsrichtlinie zu verwenden, müssen Sie zunächst Ihre Kündigungsrichtlinie mithilfe von erstellen AWS Lambda. Um die Lambda-Funktion zur Verwendung als Beendigungsrichtlinie anzugeben, setzen Sie sie an die erste Stelle in der Liste der Beendigungsrichtlinien. z. B. --termination-policies "arn:aws:lambda:us-west-2:123456789012:function:HelloFunction:prod" "OldestLaunchConfiguration". Weitere Informationen finden Sie unter Eine benutzerdefinierte Beendigungsrichtlinie mit Lambda erstellen.