Führen Sie das EC2 Rescue-Tool auf nicht erreichbaren Instanzen aus - AWS Systems Manager

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.

Führen Sie das EC2 Rescue-Tool auf nicht erreichbaren Instanzen aus

EC2Rescue kann Ihnen bei der Diagnose und Behebung von Problemen auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances für Linux und Windows Server. Sie können das Tool manuell ausführen, wie unter EC2 Rescue für Linux Server verwenden und EC2Rescue für Windows Server verwenden beschrieben. Sie können das Tool auch automatisch mit der Systems Manager Automation und dem AWSSupport-ExecuteEC2Rescue-Runbook ausführen. Automatisierung ist ein Tool in AWS Systems Manager. Das AWSSupport-ExecuteEC2RescueRunbook ist für die Ausführung einer Kombination von Systems Manager Manager-Aktionen, AWS CloudFormation Aktionen und Lambda-Funktionen konzipiert, mit denen die Schritte automatisiert werden, die normalerweise für die Verwendung EC2 von Rescue erforderlich sind.

Sie können das AWSSupport-ExecuteEC2Rescue-Runbook verwenden, um verschiedene Arten von Problemen bei Betriebssystemen (OS) zu behandeln und möglicherweise zu lösen. Instances mit verschlüsselten Root-Volumes werden nicht unterstützt. Eine vollständige Liste finden Sie in den folgenden Themen:

Windows: Weitere Informationen finden Sie unter EC2 Rescue für Windows Server über die Befehlszeile verwenden.

Linux und macOS: Einige Module von EC2 Rescue für Linux erkennen Probleme und versuchen, sie zu beheben. Weitere Informationen finden Sie in der aws-ec2rescue-linuxDokumentation zu den einzelnen Modulen unter GitHub.

Funktionsweise

Die Fehlerbehebung bei einer Instance mit Automation und dem AWSSupport-ExecuteEC2Rescue-Runbook funktioniert folgendermaßen:

  • Sie geben die ID der nicht erreichbaren Instance an und starten das Runbook.

  • Das System erstellt eine temporäre VPC und führt dann eine Reihe von Lambda-Funktionen aus, um die VPC zu konfigurieren.

  • Das System identifiziert ein Subnetz für Ihre temporäre VPC in derselben Availability Zone wie die ursprüngliche Instance.

  • Das System startet eine temporäre, SSM-fähige Helferobjekt-Instance.

  • Das System stoppt Ihre ursprüngliche Instance und erstellt einen Backup. Anschließend fügt es das ursprüngliche Stamm-Volume an die Helferobjekt-Instance an.

  • Das System verwendet Run Command um EC2 Rescue auf der Helper-Instanz auszuführen. EC2Rescue identifiziert Probleme auf dem angehängten, ursprünglichen Root-Volume und versucht, diese zu beheben. Wenn der Vorgang abgeschlossen ist, fügt EC2 Rescue das Root-Volume wieder der ursprünglichen Instanz hinzu.

  • Das System startet die ursprüngliche Instance neu und beendet die temporäre Instance. Das System beendet ebenso die temporäre VPC und die Lambda-Funktionen, die zu Beginn der Automatisierung erstellt wurden.

Bevor Sie beginnen

Bevor Sie die folgende Automation ausführen, führen Sie die folgenden Schritte aus:

  • Kopieren Sie die Instance-ID der nicht erreichbaren Instance. Sie legen diese ID im Verfahren fest.

  • Erfassen Sie optional die ID eines Subnetzes in derselben Availability Zone wie Ihre unerreichbare Instance. Die EC2 Rescue-Instanz wird in diesem Subnetz erstellt. Wenn Sie kein Subnetz angeben, erstellt Automation eine neue temporäre VPC in Ihrem. AWS-Konto Stellen Sie sicher, AWS-Konto dass mindestens eine VPC verfügbar ist. Standardmäßig können Sie fünf VPCs in einer Region erstellen. Wenn Sie VPCs in der Region bereits fünf erstellt haben, schlägt die Automatisierung fehl, ohne dass Änderungen an Ihrer Instanz vorgenommen werden. Weitere Informationen zu Amazon VPC-Kontingenten finden Sie unter VPC und Subnetze im Amazon VPC-Benutzerhandbuch.

  • Optional können Sie eine AWS Identity and Access Management (IAM-) Rolle für die Automatisierung erstellen und angeben. Falls Sie diese Rolle nicht festlegen, wird die Automatisierung im Kontext des Benutzers ausgeführt, der die Automatisierung ausgeführt hat.

Gewähren von AWSSupport-EC2Rescue-Berechtigungen zum Durchführen von Aktionen auf Ihren Instances

EC2Rescue benötigt die Erlaubnis, während der Automatisierung eine Reihe von Aktionen auf Ihren Instances durchzuführen. Diese Aktionen rufen die EC2 Services AWS Lambda, IAM und Amazon auf, um sicher und geschützt zu versuchen, Probleme mit Ihren Instances zu beheben. Wenn Sie in Ihrer AWS-Konto und/oder Ihrer VPC über Administratorberechtigungen verfügen, können Sie die Automatisierung möglicherweise ausführen, ohne Berechtigungen zu konfigurieren, wie in diesem Abschnitt beschrieben. Falls Sie keine Administratorberechtigungen besitzen, müssen Sie oder ein Administrator Berechtigungen anhand einer der folgenden Optionen konfigurieren.

Erteilen von Berechtigungen mithilfe von IAM-Richtlinien

Sie können entweder die folgende IAM-Richtlinie als eingebundene Richtlinie an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Sie können aber auch eine neue verwaltete IAM-Richtlinie erstellen und diese an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Weitere Informationen zum Hinzufügen einer eingebundenen Richtlinie zu Ihrem Benutzerkonto, Ihrer Gruppe oder Ihrer Rolle finden Sie unter Verwenden von eingebundenen Richtlinien. Weitere Informationen zum Erstellen einer neuen verwalteten Richtlinien finden Sie unter Verwenden von eingebundenen Richtlinien.

Anmerkung

Wenn Sie eine neue IAM-verwaltete Richtlinie erstellen, müssen Sie ihr auch die verwaltete Amazon SSMAutomation Role Policy hinzufügen, damit Ihre Instances mit der Systems Manager Manager-API kommunizieren können.

IAM-Richtlinie für 2Rescue AWSSupport-EC

Ersetzen Sie es account ID durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*", "autoscaling:DescribeAutoScalingInstances" ], "Resource": "*", "Effect": "Allow" } ] }

Erteilen von Berechtigungen mithilfe einer AWS CloudFormation Vorlage

AWS CloudFormation automatisiert den Prozess der Erstellung von IAM-Rollen und -Richtlinien mithilfe einer vorkonfigurierten Vorlage. Gehen Sie wie folgt vor, um die erforderlichen IAM-Rollen und -Richtlinien für EC2 Rescue Automation zu erstellen, indem Sie AWS CloudFormation

So erstellen Sie die erforderlichen IAM-Rollen und -Richtlinien für Rescue EC2
  1. Laden Sie AWSSupport-EC2RescueRole.zip herunter und extrahieren Sie die AWSSupport-EC2RescueRole.json-Datei in ein Verzeichnis auf Ihrem lokalen Computer.

  2. Wenn Sie AWS-Konto sich in einer speziellen Partition befinden, bearbeiten Sie die Vorlage, um die ARN-Werte in die für Ihre Partition zu ändern.

    Ändern Sie beispielsweise für arn:aws alle Fälle von in arn:aws-cn.

  3. Melden Sie sich bei https://console.aws.amazon.com/cloudformation an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole.

  4. Klicken Sie auf Create stack (Stack erstellen), With new resources (standard) (Mit neuen Ressourcen (Standard)).

  5. Wählen Sie auf der Seite Create stack (Stack erstellen) unter Prerequisite - Prepare template (Voraussetzung – Vorlage vorbereiten) die Option Template is ready (Vorlage ist bereit) aus.

  6. Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.

  7. Wählen Sie Choose file (Datei auswählen) aus, navigieren Sie dann zu der AWSSupport-EC2RescueRole.json-Datei aus dem Verzeichnis, in dem Sie sie extrahiert haben, und wählen Sie sie aus.

  8. Wählen Sie Weiter.

  9. Geben Sie auf der Seite Specify stack details (Stack-Details angeben) für das Feld Stack name (Stack-Name) einen Namen ein, um diesen Stack zu identifizieren. Wählen Sie dann Next (Weiter) aus.

  10. (Optional) Wenden Sie im Bereich Tags ein oder mehrere Tag-Schlüsselname/-wertpaare auf den Stack an.

    Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Beispielsweise können Sie einen Stack kennzeichnen, um den Typ der ausgeführten Aufgaben, die Typen von Zielen oder anderen Ressourcen und die Umgebung zu identifizieren, in der er ausgeführt wird.

  11. Wählen Sie Next (Weiter)

  12. Überprüfen Sie auf der Seite Überprüfen“ die Stack-Details, scrollen Sie dann nach unten und wählen Sie die Option Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt werden.

  13. Wählen Sie Stack erstellen aus.

    AWS CloudFormation zeigt für einige Minuten den Status CREATE_IN_PROGRESS an. Nach dem Erstellen des Stacks ändert sich der Status in CREATE_COMPLETE. Sie können auch auf das Aktualisierungssymbol klicken, um den Status des Erstellungsprozesses zu überprüfen.

  14. Wählen Sie in der Stacks-Liste die Option neben den Stack, den Sie gerade erstellt haben, und wählen Sie dann die Registerkarte Outputs (Ausgaben).

  15. Notieren Sie sich den Wert. Das ist der ARN von AssumeRole. Sie geben diesen ARN an, wenn Sie die Automatisierung in der nächsten Prozedur ausführen, Ausführen der Automation.

Ausführen der Automation

Wichtig

Der folgende Automatisierung hält die nicht erreichbare Instance an. Das Anhalten der Instance kann zu Datenverlusten auf den angehängten Instance-Speicher-Volumes (sofern vorhanden) führen. Das Anhalten der Instance kann auch dazu führen, dass die öffentliche IP-Adresse geändert wird, wenn keine elastische IP-Adresse zugeordnet ist.

Führen Sie die AWSSupport-ExecuteEC2Rescue-Automation aus.
  1. Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/.

  2. Klicken Sie im Navigationsbereich auf Automation.

  3. Wählen Sie Automatisierung ausführen.

  4. Wählen Sie im Abschnitt Automation document (Automatisierungsdokument) die Option Owned by Amazon (Im Besitz von Amazon) aus der Liste aus.

  5. Wählen Sie in der Runbooks-Liste die Schaltfläche auf der Karte für AWSSupport-ExecuteEC2Rescue und wählen Sie danach Weiter.

  6. Klicken Sie auf der Seite Execute automation document (Automation-Dokument ausführen) auf Simple execution (Einfache Ausführung).

  7. Überprüfen Sie im Abschnitt Document details (Dokumentdetails), ob Document version (Dokumentversion) auf die höchste Standardversion gesetzt ist. Beispiel: $DEFAULT oder 3 (default) (3 (Standard)).

  8. Geben Sie im Abschnitt Input Parameters die folgenden Parameter an.

    1. Geben Sie für UnreachableInstanceIddie ID der nicht erreichbaren Instanz an.

    2. (Optional) Geben Sie für EC2RescueInstanceTypeeinen Instanztyp für die EC2 Rescue-Instanz an. Der Standard-Instance-Typ lautet t2.medium.

    3. Denn AutomationAssumeRolewenn Sie Rollen für diese Automatisierung mithilfe des weiter oben in diesem Thema beschriebenen AWS CloudFormation Verfahrens erstellt haben, wählen Sie den ARN aus AssumeRole , den Sie in der AWS CloudFormation Konsole erstellt haben.

    4. (Optional) Geben Sie für einen S3-Bucket an LogDestination, wenn Sie bei der Fehlerbehebung für Ihre Instance Protokolle auf Betriebssystemebene sammeln möchten. Protokolle werden automatisch in den angegebenen Bucket hochgeladen.

    5. Geben Sie für SubnetIdein Subnetz in einer vorhandenen VPC in derselben Availability Zone wie die nicht erreichbare Instance an. Standardmäßig erstellt Systems Manager eine neue VPC, aber Sie können ein Subnetz in einer vorhandenen VPC angeben, wenn Sie möchten.

      Anmerkung

      Wenn Sie die Option zum Erstellen eines Buckets oder einer Subnetz-ID nicht sehen, überprüfen Sie, ob Sie die neueste Default-Version des Runbooks verwenden.

  9. (Optional) Wenden Sie im Bereich Tags mindestens ein Tag-Schlüsselname-/-Wert-Paar an, um die Automatisierung zu identifizieren, z. B. Key=Purpose,Value=EC2Rescue.

  10. Wählen Sie Ausführen.

Das Runbook erstellt ein Backup AMI als Teil der Automatisierung. Alle anderen von der Automatisierung erstellten Ressourcen werden automatisch gelöscht, aber dieses AMI verbleibt in Ihrem Konto. Das Tool AMI ist nach der folgenden Konvention benannt:

Backup-AMI: AWSSupport-EC 2Rescue: UnreachableInstanceId

Sie können das finden AMI in der EC2 Amazon-Konsole, indem Sie nach der Automation-Ausführungs-ID suchen.