Tutorial: Protokollieren des Status Auto Scaling Gruppe mit CloudWatch Events - Amazon CloudWatch Events

Tutorial: Protokollieren des Status Auto Scaling Gruppe mit CloudWatch Events

Anmerkung

Amazon EventBridge ist die bevorzugte Methode zum Verwalten Ihrer Ereignisse. Amazon CloudWatch Events und EventBridge liegen der gleiche Service und die gleiche API zugrunde, EventBridge bietet jedoch mehr Funktionen. Änderungen, die Sie in CloudWatch oder EventBridge vornehmen, werden in allen Konsolen angezeigt. Weitere Informationen finden Sie unter Amazon EventBridge.

Sie können eine AWS Lambda-Funktion ausführen, die ein Ereignis protokolliert, sobald eine Auto Scaling-Gruppe eine Amazon EC2-Instance startet oder beendet, und anzeigt, ob das Ereignis erfolgreich war.

Weitere Informationen zu zusätzlichen CloudWatch Events-Szenarien mit Amazon EC2 Auto Scaling Ereignissen finden Sie unterAbrufen von Amazon CloudWatch Events, wenn Ihre Auto Scaling-Gruppe skaliert wirdimBenutzerhandbuch für Amazon EC2 Auto Scalingaus.

Schritt 1: Erstellen einer AWS Lambda-Funktion

Erstellen Sie eine Lambda-Funktion, um die Skalierungsereignisse für die Auto Scaling-Gruppe zu protokollieren. Geben Sie diese Funktion beim Erstellen der Regel an.

So erstellen Sie eine Lambda-Funktion:
  1. Öffnen Sie die AWS Lambda-Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wenn Sie noch nicht mit Lambda gearbeitet haben, wird Ihnen eine Willkommensseite angezeigt. Wählen Sie Get Started Now. Wählen Sie andernfalls Create a Lambda Function (Eine Lambda-Funktion erstellen) aus.

  3. Geben Sie auf der Seite Select blueprint für das Filter hello ein und wählen Sie dann den Plan hello-world aus.

  4. Wählen Sie auf der Seite Configure Triggers (Auslöser konfigurieren) die Option Next (Weiter) aus.

  5. Führen Sie auf der Seite Configure function (Funktion konfigurieren) die folgenden Schritte aus:

    1. Geben Sie einen Namen und eine Beschreibung für die Lambda-Funktion ein. Z. B. Name der Funktion "LogAutoScalingEvent".

    2. Bearbeiten Sie den Beispiel-Code für die Lambda-Funktion. Beispiel:

      'use strict'; exports.handler = (event, context, callback) => { console.log('LogAutoScalingEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. Wählen Sie für Role die Option Choose an existing role. Wählen Sie in Existing role (Vorhandene Rolle) Ihre Basis-Ausführungsrolle aus. Andernfalls erstellen Sie eine neue grundlegende Ausführungsrolle.

    4. Wählen Sie Next.

  6. Wählen Sie Create function (Funktion erstellen).

Schritt 2: Erstellen einer Regel

Erstellen Sie eine Regel, damit die Lambda-Funktion ausgeführt wird, wenn die Auto Scaling-Gruppe eine Instance startet oder beendet.

So erstellen Sie eine Regel
  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Events und die Option Create rule aus.

  3. Führen Sie für Ereignisquelle folgende Schritte aus:

    1. Wählen Sie Event Pattern aus.

    2. Wählen Sie Build event pattern to match events by service aus.

    3. Klicken Sie aufAuto Scaling,Instance starten und beendenaus.

    4. Wählen Sie Any instance event (Beliebiges Instance-Ereignis) aus, um alle erfolgreichen und fehlgeschlagenen Ereignisse zum Starten und Beenden einer Instance zu erfassen.

  4. Standardmäßig stimmt die Regel mit jeder Auto Scaling-Gruppe in der Region überein. Damit die Regel mit einer bestimmten Auto Scaling-Gruppe übereinstimmt, wählen Sie Specific group name(s) und dann eine oder mehrere Auto Scaling-Gruppen aus.

  5. Wählen Sie für Targets (Ziele) Add target (Ziel hinzufügen), Lambda-Funktion.

  6. Wählen Sie für Function (Funktion) die Lambda-Funktion, die Sie erstellt haben.

  7. Wählen Sie Configure details.

  8. Geben Sie für Rule definition einen Namen und eine Beschreibung für die Regel ein. Z. B. Beschreibung der Regel mit "Protokollieren, sobald eine Auto Scaling-Gruppe skaliert wird".

  9. Wählen Sie Create rule aus.

Schritt 3: Testen der Regel

Sie können die Regel durch manuelle Skalierung einer to Auto Scaling-Gruppe testen, sodass eine Instance gestartet wird. Warten Sie einige Minuten, damit das Skalierungsereignis eintritt. Dann können überprüfen, ob die Lambda-Funktion aufgerufen wurde.

So testen Sie die Regel mit einer Auto Scaling-Gruppe
  1. So erhöhen Sie die Größe der Auto Scaling-Gruppe:

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

    2. Wählen Sie im Navigationsbereich die Option Auto Scaling und Auto Scaling Groups aus.

    3. Aktivieren Sie das Kontrollkästchen für die Auto Scaling-Gruppe.

    4. Wählen Sie auf der Registerkarte Details die Option Edit (Bearbeiten) aus. Erhöhen Sie für Desired die gewünschte Kapazität um eine Einheit. Wenn der aktuelle Wert beispielsweise 2 ist, geben Sie 3 ein. Die gewünschte Kapazität darf maximal so groß wie die Höchstgröße der Gruppe sein. Wenn Ihr neuer Wert für Desired größer ist als Max, müssen Sie Max aktualisieren. Klicken Sie auf Save , sobald Sie fertig sind.

  2. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  3. Wählen Sie im Navigationsbereich Events und Rules aus, wählen Sie den Namen der Regel aus, die Sie erstellt haben, und wählen Sie dann Show metrics for the rule aus.

  4. So zeigen Sie die Ausgabe aus der Lambda-Funktion an:

    1. Wählen Sie im Navigationsbereich Logs aus.

    2. Wählen Sie den Namen der Protokollgruppe für die Lambda-Funktion aus (/aws/lambda/function-name).

    3. Wählen Sie den Namen des Protokoll-Streams aus, um die von der Funktion für die gestartete Instance bereitgestellten Daten anzuzeigen.

  5. (Optional) Wenn Sie fertig sind, können Sie die gewünschte Kapazität verringern, sodass die Auto Scaling-Gruppe auf die vorherige Größe zurückgesetzt wird.