5

Ich versuche, meine elastischen Bohnen (Test) -Umgebungen über Nacht herunterzufahren/zu starten, um Ressourcen zu sparen, wenn die Server nicht benötigt werden. Auf der Webkonsole von EB kann ich zeitbasierte Skalierungen eingeben, die ausgelöst werden.Zeitbasierte Skalierung auf Elastic Beanstalk

Aber wenn ich eine Konfigurationsdatei im .exerxtensions-Ordner hinzufügen, die das gleiche tun sollte, skalieren die Server überhaupt nicht.

Nach der documentation (Suche nach „Beispielen für Zeitbasierte Skalierung Option Einstellungsdateien“) von Elastic Beanstalk ist es möglich, eine .ebextension Datei mit der zeitbasierten Skalierung Konfiguration hinzuzufügen.

So eingestellt ich das Beispiel und hinzugefügt, um die nach Definition des Projekts:

{ [ { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "MinSize", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "MaxSize", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "DesiredCapacity", "Value": "0" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "StartTime", "Value": "2015-11-18T16:50:00Z" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "OvernightShutdown", "OptionName": "Recurrence", "Value": "00 21 * * 1-5" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "MinSize", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "MaxSize", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "DesiredCapacity", "Value": "1" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "StartTime", "Value": "2015-11-19T05:00:00Z" }, { "Namespace": "aws:autoscaling:scheduledaction", "ResourceName": "MorningStartup", "OptionName": "Recurrence", "Value": "00 07 * * 1-5" } ] }

Im Grunde ist dies nach meinen Bedürfnissen & geklebt und leicht angepasst kopieren. Ich habe es in die Datei .ebxtensions/autoscaling.config in meinem Projekt eingefügt und es in EB implementiert.

Die Server sollten nun um 21:00 Uhr UTC auf 0 ("OvernightShutdown") herunterskalieren und um 7 Uhr UTC ("MorningStartup") hochskalieren.

Aber die "OvernightShutdown" und die "MorningStartup" werden nicht ausgelöst, wenn sie sollten.

Ich hatte auch einmal einen Tippfehler in der Datei, dann EB sagte mir, dass es nicht parsen kann, also weiß ich, dass ich die Datei liest, aber offensichtlich nicht die Konfigurationen auf die Umgebung anwenden.

Jemand hat eine Ahnung, was könnte das Problem sein? Ist meine Konfiguration falsch? Da gibt es nicht viel sind Beispiele, wie die Datei, wie ich aus dem EB documentation

+0

Ich möchte es in meiner Codebasis haben und es für andere Projekte bei Bedarf wiederverwenden. Dies spart etwas Zeit im Vergleich zur Ausführung über die Website (wenn es ohne weiteres funktionieren würde) – kadoga

+0

Ist 0 ein gültiger Wert für die minimale und maximale Größe? Ich denke, der minimal gültige Wert ist 1, es sei denn, etwas hat sich seit der letzten Einrichtung einer Elastic Beanstalk App geändert. –

+0

Ja, 0 ist eine gültige Nummer. Wenn ich die Konfiguration über die Website mache, skaliert EB min/max/sinted-Instanzen auf 0 und beendet es im Grunde. – kadoga

Antwort

2

Ich stellte auch diese Frage in dem AWS/EB Bord, sie mit einer hilfreichen Antwort in Bezug auf dieses Problem reagiert:

Link to AWS board

Die Lösung ist die yaml Konfiguration anstelle dem Json zu verwenden, da EB scheint ein Problem mit der json-config zu haben. Aber sie reparieren es entsprechend der Antwort.

1

denken keine richtigen Referenzen außer dem einen haben aussehen könnte ich Ihnen von den Vorrang Klauseln leiden kann: configuration options precedence. Das hat mich neulich erwischt. Wenn Sie die Werte manuell über die Webschnittstelle konfiguriert haben, ersetzt Ihre Konfigurationsdatei diese Werte nicht.

dieses Ich zu beheben:

  1. die Datei .ebextensions Config erstellt, wie Sie haben, sorgte dafür, dass es in der Umwelt eingesetzt und bereit war.
  2. lief eb config die aktuelle Konfiguration bringen (das die alte Config zeigen sollte)
  3. die Konfigurationswerte gelöscht, die
  4. Ausfahrt in ‚Konflikt‘ waren und speichern Sie die Konfiguration

Dieses eine Umgebung auslöst Aktualisieren Sie, als ob Sie es in der Webschnittstelle geändert hatten.

oder wie @MBaird sagte in den Kommentaren, 0 möglicherweise nicht ein gültiger Mindest- und Höchstwert.

+0

Ich löschte die Konfiguration auf Website-Ebene, bevor ich meine Anwendung an EB veröffentlichte. Ich habe Ihre Lösung ausprobiert, aber es zeigt keine meiner Konfigurationen oben an, noch erscheint die Konfiguration von der Website-Ebene (wie erwartet, da ich sie gelöscht habe). Es scheint, dass meine Konfiguration von EB überhaupt nicht berücksichtigt wird. – kadoga