Amazon SNS-Benachrichtigungsoptionen für Amazon EC2 Auto Scaling - 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.

Amazon SNS-Benachrichtigungsoptionen für Amazon EC2 Auto Scaling

Sie können Ihre Auto Scaling-Gruppe so konfigurieren, dass Sie über wichtige Ereignisse informiert werden, die sich auf Ihre Anwendung auswirken. Mit Benachrichtigungen können Sie auch Abfragen eliminieren, und Sie werden nicht auf den RequestLimitExceeded Fehler stoßen, der sich manchmal aus der Abfrage ergibt.

Es gibt zwei Möglichkeiten, Benachrichtigungen über Amazon EC2 Auto Scaling zu erhalten:

  • Amazon Simple Notification Service – Amazon SNS kann Sie benachrichtigen, wenn Ihre Auto Scaling-Gruppe Instances startet oder beendet. Sie können Amazon SNS-Benachrichtigungen lediglich aktivieren oder deaktivieren. Weitere Informationen finden Sie unter Amazon SNS und Amazon EC2 Auto Scaling.

  • Amazon EventBridge – EventBridge stellt erweiterte, ereignisgesteuerte Benachrichtigungen bereit, die bestimmten Kriterien entsprechen und an eine Vielzahl von Zielen gesendet werden, einschließlich Amazon SNS . EventBridge kann auch eine breitere Palette von Auto Scaling-Ereignissen überwachen, um eine genauere Überwachung zu ermöglichen. Weitere Informationen finden Sie unter Verwenden Sie EventBridge, um Auto-Scaling-Ereignisse zu behandeln.

Sie können auch eine benutzerdefinierte Aktion ausführen, wenn eine Instance beim Start oder Beenden in den Status „Ausstehend“ wechselt, indem Sie Lebenszyklus-Hooks und Services wie EventBridge, Amazon SNS und Amazon SQS verwenden. Lebenszyklus-Hooks können einer neuen Instance auch zusätzliche Zeit geben, um ein in den Benutzerdaten angegebenes Skript abzuschließen, bevor Amazon EC2 Auto Scaling die Instance zur Gruppe hinzufügt. Weitere Informationen finden Sie unter Lebenszyklus-Hooks bei Amazon EC2 Auto Scaling.

Amazon SNS und Amazon EC2 Auto Scaling

In diesem Abschnitt wird gezeigt, wie Sie Amazon SNS verwenden, um zu überwachen, wann Ihre Auto Scaling-Gruppe Instances startet oder beendet.

Wenn Sie zum Beispiel Ihre Auto Scaling-Gruppe konfigurieren, die autoscaling: EC2_INSTANCE_TERMINATE-Benachrichtigungsweise zu benutzen, und Ihre Auto Scaling-Gruppe beendet eine Instance, sendet es eine Benachrichtigung per Mail. Diese E-Mail enthält die Details der beendeten Instance, z. B. die Instance-ID und den Grund für die Beendigung.

Beachten Sie, dass während Amazon EC2 Auto Scaling Instances zur Gruppe hinzufügt oder daraus entfernt, Benachrichtigungen über diese Änderungen an Sie gesendet werden, wobei eine Benachrichtigung pro Instance gesendet wird. Die Zustellung dieser Benachrichtigungen erfolgt jedoch nach bestem Wissen und Gewissen, und Ihre Instances könnten auch nach der ersten Benachrichtigung fehlschlagen, z. B. wenn eine spätere Zustandsprüfung fehlschlägt. Auch wenn Amazon EC2 Auto Scaling Sie zunächst benachrichtigt, könnte eine Instance später trotzdem ausfallen. Beachten Sie, dass Sie konfigurieren können, wie lange nach dem Start einer Instance Amazon EC2 Auto Scaling wartet, bevor die erste Zustandsprüfung durchgeführt wird. Weitere Informationen finden Sie unter Legen Sie die Wartefrist für die Zustandsprüfung einer Auto-Scaling-Gruppe fest.

Weitere Informationen zu Amazon SNS im Allgemeinen finden Sie im Amazon Simple Notification Service-Entwicklerhandbuch.

SNS-Benachrichtigungen

Amazon EC2 Auto Scaling unterstützt das Senden von Amazon SNS-Benachrichtigungen bei folgenden Ereignissen.

Ereignis Beschreibung

autoscaling:EC2_INSTANCE_LAUNCH

Erfolgreiches Starten einer Instance

autoscaling:EC2_INSTANCE_LAUNCH_ERROR

Fehlgeschlagenes Starten einer Instance

autoscaling:EC2_INSTANCE_TERMINATE

Erfolgreiches Beenden einer Instance

autoscaling:EC2_INSTANCE_TERMINATE_ERROR

Fehlgeschlagenes Beenden einer Instance

Die Nachricht enthält die folgenden Informationen:

  • Event – Das Ereignis

  • AccountId – Die Konto-ID von Amazon Web Services.

  • AutoScalingGroupName – Der Name der Auto Scaling-Gruppe.

  • AutoScalingGroupARN – Der ARN der Auto Scaling-Gruppe.

  • EC2InstanceId – Die ID der EC2-Instance.

Beispiel:

Service: AWS Auto Scaling Time: 2016-09-30T19:00:36.414Z RequestId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Event: autoscaling:EC2_INSTANCE_LAUNCH AccountId: 123456789012 AutoScalingGroupName: my-asg AutoScalingGroupARN: arn:aws:autoscaling:region:123456789012:autoScalingGroup... ActivityId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Description: Launching a new EC2 instance: i-0598c7d356eba48d7 Cause: At 2016-09-30T18:59:38Z a user request update of AutoScalingGroup constraints to ... StartTime: 2016-09-30T19:00:04.445Z EndTime: 2016-09-30T19:00:36.414Z StatusCode: InProgress StatusMessage: Progress: 50 EC2InstanceId: i-0598c7d356eba48d7 Details: {"Subnet ID":"subnet-id","Availability Zone":"zone"} Origin: AutoScalingGroup Destination: EC2

Konfigurieren von Amazon SNS-Benachrichtigungen für Amazon EC2 Auto Scaling

Damit Sie Amazon SNS zum Versenden von E-Mail-Benachrichtigungen verwenden können, müssen Sie zunächst ein Thema erstellen und es mit Ihren E-Mail-Adressen abonnieren.

Erstellen Sie ein Amazon SNS-Thema.

Ein SNS-Thema ist ein logischer Zugriffspunkt, ein Kommunikationskanal der Auto Scaling-Gruppe zum Versenden von Benachrichtigungen. Sie erstellen ein Thema, indem Sie einen Namen dafür angeben.

Wenn Sie einen Themanamen vergeben, muss der Name folgende Anforderungen erfüllen:

  • Er muss zwischen 1 und 256 Zeichen lang sein.

  • Er muss ASCII-Buchstaben mit Groß- und Kleinschreibung, Zahlen, Unterstriche oder Bindestriche enthalten.

Weitere Informationen finden Sie unter Amazon SNS-Thema anlegen im Amazon Simple Notification Service-Entwicklerhandbuch.

Amazon SNS-Thema abonnieren

Zum Empfangen der Benachrichtigungen, die die Auto-Scaling-Gruppe an das Thema sendet, müssen Sie einen Endpunkt für das Thema abonnieren. In diesem Verfahren, für Endpoint, geben Sie die E-Mailadresse an, unter der Sie die Benachrichtigungen von Amazon EC2 Auto Scaling erhalten möchten.

Weitere Informationen finden Sie unter Amazon SNS-Thema abonnieren im Amazon Simple Notification Service-Entwicklerhandbuch.

Bestätigen Ihres Amazon SNS-Abonnements

Amazon SNS sendet eine Bestätigungs-E-Mail an die E-Mail-Adresse, die Sie im vorherigen Schritt angegeben haben.

Öffnen Sie die E-Mail von AWS Notifications und klicken Sie auf den Link zur Bestätigung des Abonnements, bevor Sie mit dem nächsten Schritt fortfahren.

Sie erhalten eine Bestätigungsnachricht von AWS. Amazon SNS ist jetzt so konfiguriert, dass Benachrichtigungen empfangen und als E-Mail an die angegebene E-Mail-Adresse gesendet werden.

Konfigurieren Ihrer Auto Scaling-Gruppe zum Senden von Benachrichtigungen

Sie können die Auto Scaling-Gruppe so konfigurieren, dass im Falle von Skalierungsereignissen (z. B. Starten oder Beenden von Instances) Benachrichtigungen an Amazon SNS gesendet werden. Amazon SNS sendet eine Benachrichtigung mit Informationen zu den Instances an die E-Mail-Adresse, die Sie angegeben haben.

So konfigurieren Sie Amazon SNS-Benachrichtigungen für Ihre Auto Scaling-Gruppe (Konsole)
  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 Ihrer Auto-Scaling-Gruppe.

    Im unteren Teil der Seite wird ein geteilter Bereich geöffnet, in dem Informationen über die ausgewählte Gruppe angezeigt werden.

  3. Klicken Sie auf der Registerkarte Aktivität Benachrichtigungen über Aktivitäten, Benachrichtigung erstellen.

  4. Führen Sie im Bereich Create notifications die folgenden Schritte aus:

    1. Wählen Sie unter SNS-Thema das SNS-Thema aus.

    2. Wählen Sie unter Event types die Ereignisse aus, zu denen Benachrichtigungen gesendet werden sollen.

    3. Wählen Sie Erstellen.

So konfigurieren Sie Amazon SNS-Benachrichtigungen für Ihre Auto Scaling-Gruppe (AWS CLI)

Verwenden Sie den folgenden put-notification-configuration-Befehl.

aws autoscaling put-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn --notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"

Testen der Benachrichtigung

Aktualisieren Sie die Auto Scaling-Gruppe, indem Sie die gewünschte Kapazität der Auto Scaling-Gruppe um 1 erhöhen, um eine Benachrichtigung für ein Startereignis zu generieren. Sie erhalten innerhalb weniger Minuten nach dem Start der Instance eine Benachrichtigung.

So ändern Sie die gewünschte Kapazität (Konsole)
  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 Ihrer Auto-Scaling-Gruppe.

    Im unteren Teil der Seite Auto-Scaling-Gruppen wird ein geteilter Bereich geöffnet, in dem Informationen über die ausgewählte Gruppe angezeigt werden.

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

  4. Erhöhen Sie für Desired capacity (Gewünschte Kapazität den aktuellen Wert um 1. Wenn dieser Wert die Maximum capacity (Maximalkapazität) überschreitet, müssen Sie auch den Wert der Maximum capacity (Maximalkapazität) um 1 erhöhen.

  5. Wählen Sie Aktualisieren.

  6. Nach einigen Minuten erhalten Sie eine Benachrichtigung über das Ereignis. Wenn Sie die zusätzliche Instance, die Sie für diesen Test gestartet haben, nicht benötigen, können Sie Desired capacity (Gewünschte Kapazität) um 1 reduzieren. Nach einigen Minuten erhalten Sie eine Benachrichtigung über das Ereignis.

Löschen der Benachrichtigungskonfiguration

Sie können Ihre Amazon EC2 Auto Scaling-Benachrichtigungskonfiguration löschen, wenn sie nicht mehr verwendet wird.

So löschen Sie die Amazon EC2 Auto Scaling-Benachrichtigungskonfiguration (Konsole)
  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. Wählen Sie Ihre Auto Scaling-Gruppe aus.

  3. Klicken Sie auf der Registerkarte Aktivität auf das Kontrollkästchen neben der Benachrichtigung, die Sie löschen möchten, und wählen Sie dann Aktionen, Löschenaus.

So löschen Sie die Amazon EC2 Auto Scaling-Benachrichtigungskonfiguration (AWS CLI)

Verwenden Sie den folgenden delete-notification-configuration-Befehl.

aws autoscaling delete-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn

Informationen über die Löschung des Amazon SNS -Themas und aller mit Ihrer Auto Scaling-Gruppe verbundenen Abonnements finden Sie unter Löschen eines Amazon SNS-Abonnements und -Themas im Amazon Simple Notification Service-Entwicklerhandbuch.

Schlüsselrichtlinie für ein verschlüsseltes Amazon-SNS-Thema

Das von Ihnen angegebene Amazon-SNS-Thema ist möglicherweise mit einem vom Kunden verwalteten Schlüssel verschlüsselt, der mit dem AWS Key Management Service erstellt wurde. Um Amazon EC2 Auto Scaling die Berechtigung zu erteilen, in verschlüsselten Themen zu veröffentlichen, müssen Sie zuerst Ihren KMS-Schlüssel erstellen und dann die folgende Anweisung zur Richtlinie für den KMS-Schlüssel hinzufügen. Ersetzen Sie den Beispiel-ARN durch den ARN der entsprechenden serviceverknüpften Rolle, der Zugriff auf den Schlüssel gewährt wird. Weitere Informationen erhalten Sie unter AWS KMS -Berechtigungen konfigurieren im Entwicklerhandbuch für Amazon Simple Notification Service.

In diesem Beispiel erteilt die Richtlinienanweisung der serviceverknüpften Rolle mit dem Namen AWSServiceRoleForAutoScaling Berechtigungen zur Verwendung des vom Kunden verwalteten Schlüssels. Weitere Informationen zur serviceverknüpften Rolle für Amazon EC2 Auto Scaling finden Sie unter Serviceverknüpfte Rollen für Amazon EC2 Auto Scaling.

{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }

Die Bedingungsschlüssel aws:SourceArn und aws:SourceAccount werden in Schlüsselrichtlinien nicht unterstützt, die es Amazon EC2 Auto Scaling ermöglichen, in verschlüsselten Themen zu veröffentlichen.