htmlAWS: Starten Sie EC2 bei einem Fehler neu — Bernd Kuhlen
BK BERND KUHLENAlle Notizen ↗
← Zurück zu den Feldnotizen

AWS: Starten Sie EC2 bei einem Fehler neu

Hinweis zum Archiv: Dieser Artikel von 2019 enthält historische Hinweise, einschließlich einer Python-Version, die nicht mehr unterstützt wird.

Dieser Blog lief auf einer EC2-Instance. Um die Kosten niedrig zu halten, habe ich keinen Load Balancer verwendet. Stattdessen habe ich eine Auto Scaling-Gruppe mit der gewünschten Kapazität von einer Instance verwendet. Die Datenbankverbindung wurde gelegentlich unzuverlässig. In diesem Fall bestand die einfachste automatische Abhilfe darin, die Instanz neu zu starten. Ohne einen Load Balancer war das nicht ganz einfach, also habe ich den Prozess hier dokumentiert.

  • Erstellen Sie einen Route 53-Gesundheitscheck.
  • Wählen Sie den resultierenden CloudWatch-Alarm aus und hängen Sie ein SNS-Thema an.
  • Konfigurieren Sie das Thema so, dass es Ihnen eine E-Mail sendet und eine Lambda-Funktion aufruft.
  • Stellen Sie sicher, dass die IAM-Rolle der Lambda-Funktion es ihr ermöglicht, die EC2-Instance neu zu starten.

Hier ist der Lambda-Code, den ich online gefunden habe. Zu der Zeit, als dieser Artikel geschrieben wurde, benötigte er Python 2.7 und nicht Python 3.x.

Boot-3 importieren

Region = 'US-West-1'

Instanzen = ['i-12345cb6de4f78g9h', 'i-08ce9b2d7eccf6d26']

def lambda_handler (Ereignis, Kontext):

ec2 = boto3.client ('ec2', region_name=region)

ec2.stop_instances (instanceIds=Instanzen)

print 'hat Ihre Instanzen gestoppt: '+ str (Instanzen)

BERND KUHLEN · FELDNOTIZEN ZUM CLOUD-ENGINEERING
DE
EnglishENDeutschDEEspañolES中文ZH