2017-07-17 3 views
2

Wir verwenden Amazon EC2 Auto Scaling-Gruppen für eine Reihe von Anwendungen - wie Sie alle wissen, während Sie versuchen, keine Speicherlecks und andere "seit einer Weile Probleme" - es ist immer noch möglich.Automatisches Beenden von Auto Scaling-Instanzen nach einem Zeitraum

Wir möchten uns vor solchen Möglichkeiten schützen, indem wir einfach die Server prellen - also sicherstellen, dass eine Instanz beispielsweise 24 Stunden dauert, bevor sie getötet wird. Wir wollen jedoch, dass die Tötung "sicher" ist - zB - selbst wenn es nur eine Instanz in der Gruppe gibt, wollen wir eine andere Instanz in einen Arbeitszustand starten, dann die alte Kiste töten.

Gibt es irgendeine Unterstützung dafür? zB eine Time-to-Live-Eigenschaft für eine Instanz?

Antwort

1

Es gibt keine solche Eigenschaft in Amazon EC2 noch in Auto Scaling.

Sie könnten manuell set the instance health zu Unhealthy, die Auto Scaling zu beenden und die Instanz ersetzen würde. Wenn Sie jedoch nur eine Instanz haben, wird es wahrscheinlich einen Zeitraum geben, in dem es keine Instanzen gibt.

Sie können die Auto Scaling termination policy auf OldestInstance setzen, was bedeutet, dass wenn die automatische Skalierung eine Instanz beenden muss, die älteste Instanz innerhalb der AZ mit den meisten Instanzen beendet wird. Dadurch werden alte Instanzen gelöscht, jedoch nur, wenn die Gruppe skaliert ist.

Daher könnten Sie die Termination-Politik mit einem Skript ergänzen, dass Skalen-out die Gruppe und dann bewirkt, dass es zu schuppen in wieder. Beispielsweise verdoppeln Sie die Anzahl der Instanzen, warten auf deren Start und halbieren dann die Anzahl der Instanzen. Dies sollte dazu führen, dass alle aktualisiert werden (mit einigen Randbedingungen, wenn Ihre Instanzen auf mehrere AZ verteilt sind, was zu nicht geraden Zahlen führt).

Eine andere Option ist Neustart die Instanz (en). Das wird nicht verursachen, damit sie zu Auto Scaling ungesund erscheinen, aber sie werden einem Load Balancer ungesund angezeigt. (Wenn Sie ELB Health Checks innerhalb von Auto Scaling aktiviert haben, beendet Auto Scaling tatsächlich Instanzen, die den Health Check nicht bestehen.) Sie können Scheduled Events for Your Instances verwenden, damit Amazon CloudWatch Events Ihre Instanz (en) in bestimmten Intervallen neu starten oder sogar ein Skript ausführen Informieren Sie das Betriebssystem über die Instanz, dass es in bestimmten Intervallen neu startet.

Allerdings gibt es keine automatische Option genau das zu tun, was Sie gefragt haben.

Verwandte Themen