Gibt es eine Möglichkeit, dass Amazon Web Services EC2-Instanzen sich selbst beenden können? Hat Amazon etwas, das es einer Instanz ermöglicht, sich selbst zu beenden ("Hara-Kiri"), nachdem sie länger als eine Stunde ausgeführt wurde? Ich könnte die Skripte auf der laufenden Instanz ändern, um dies selbst zu tun, aber das könnte fehlschlagen und ich möchte das Bild nicht bearbeiten, daher möchte ich, dass Amazon die Instanz beendet.
amazon-ec2
amazon-web-services
terminate
Steve3p0
quelle
quelle
Antworten:
Führen Sie beide Schritte aus, damit sich eine Instanz selbst beendet:
--instance-initiated-shutdown-behavior terminate
oder einer entsprechenden Instanz in der AWS-Konsole oder im API-Aufruf.Führen Sie
shutdown -h now
als root. Unter Ubuntu können Sie dies in 55 Minuten einrichten, indem Sie Folgendes verwenden:Ich habe vor einiger Zeit einen Artikel über andere Optionen geschrieben, um das gleiche Ziel "In einer Stunde beenden" zu erreichen:
Der Artikel, der ursprünglich geschrieben
instance-initiated-shutdown-behavior
wurde, war verfügbar, aber Updates und andere Juwelen finden Sie in den Kommentaren.quelle
Du kannst das
Der ec2 erhält seine aktuelle Instanz-ID und beendet sich selbst.
quelle
Hoffentlich funktioniert das
Hoffe das hilft dir !!!
quelle
Hier ist mein Skript für Self-Terminating
Wenn Sie es als zuweisen möchten Selbst Stoppen auf Self-Terminating , können Sie es nur einmal tun.
Gehen Sie in Ihrer EC2-Konsole zu Instanzeinstellungen und ändern Sie das Abschaltverhalten in Stopp . Wenn Sie /etc/cloud/cloud.cfg
konfigurieren, erfahren Sie, wie Sie ein Startskript mit Cloud-Init ausführen .
Folgen Sie der Antwort von Eric Hammond , fügen Sie den Befehl in eine Datei ein und suchen Sie ihn im Skript-pro-Boot- Pfad:
Starten Sie Ihre Instanz neu und prüfen Sie, ob das Skript ausgeführt wird:
Wenn dies der Fall ist, wird für den Fall, dass Sie vergessen haben, Ihre Instanz zu stoppen, sichergestellt, dass die Instanz selbst beendet wird, wenn sie 55 Minuten lang ausgeführt wird oder zu welcher Zeit auch immer Sie sie im Skript festgelegt haben.
PS: Für alle, die Self-Stop verwenden möchten, sollten Sie beachten, dass nicht alle EC2-Typen beim Neustart selbst wiederhergestellt werden. Ich empfehle die Verwendung von EC2-VPC / EBS mit Ein / Aus-Zeitplan .
quelle
Ich hatte einen ähnlichen Bedarf, bei dem Webanwendungen EC2-Instanzen auslösten. Ich konnte der Webanwendung nicht vertrauen, dass sie die Instanzen stoppt / beendet, daher habe ich ein Skript erstellt, das in einem separaten Prozess namens "Feeder" ausgeführt wird. Der Feeder ist dafür verantwortlich, die Instanz zu stoppen / zu beenden. Die Webanwendung muss regelmäßig anfordern, dass der Feeder die Instanz "füttert". Wenn eine Instanz "verhungert" (nicht innerhalb eines Timeout-Zeitraums gespeist wird), stoppt / beendet der Feeder sie. Zwei Feeder können gleichzeitig auf verschiedenen Maschinen ausgeführt werden, um Probleme mit einem Feeder-Prozess zu vermeiden. Mit anderen Worten, die Instanz wird auf einem Druckschalter ausgeführt. Wenn der Druck abgelassen wird, wird die Instanz gestoppt / beendet. Dadurch kann ich auch eine Instanz für mehrere Benutzer freigeben.
Bei der ursprünglichen Frage macht der Feeder, der in der EC2-Instanz selbst ausgeführt werden könnte, die Notwendigkeit überflüssig, a priori zu wissen, wie lange die Aufgabe ausgeführt wird, belastet jedoch die Anwendung, regelmäßige Feedings bereitzustellen. Wenn der Laptop geschlossen ist, fällt die Instanz aus.
Der Feeder lebt hier: https://github.com/alessandrocomodi/fpga-webserver und verfügt über eine zulässige Open-Source-Lizenz.
quelle