2014-01-22 3 views
18

Ich habe die Application Healthcheck-URL (aws: elasticbeanstalk: application) für meine Elasticbeanstalk-Anwendung festgelegt, und in der Nacht haben die beiden Server diese Prüfung nicht bestanden.So legen Sie den Typ der automatischen Skalierungsprüfung mit elasticbeanstalk fest

Es scheint, dass die von elasticbeanstalk eingerichtete Autoscaling-Gruppe über einen Integritätsprüfungs-Typ von ec2 verfügt. Dies bedeutet, dass die Server nicht terminiert und ersetzt wurden, sodass zwei Out-of-Service-Server an den Load Balancer angeschlossen bleiben.

Wie kann ich den Health-Check-Typ der Autoscaling-Gruppe mithilfe der Konfigurationseinstellungen von Elasticbeanstalk ändern? Ich kann keinen dokumentierten Weg finden, diesen Wert zu ändern, aber es muss eine ziemlich häufige Anforderung sein.

Dank

+4

"Ich kann keinen dokumentierten Weg finden, diesen Wert zu ändern ...". Ich habe nicht ausdrücklich erklärt, dass ich Stunden damit verbracht habe, die AWS-EB-Dokumentation und Google zu durchforsten, aber mir war nicht bewusst, dass eine Art Detailaufwand erforderlich war. – user1207727

Antwort

21

Es stellt sich heraus, die Antwort liegt in dem Hinzufügen einer Konfigurationsdatei zu dem Verzeichnis .exextensions.

Die AWS-Dokumentation scheint nicht korrekt oder zumindest nicht aktuell zu sein.

Hier erfahren Sie, dass Sie EB-Ressourcen unter Verwendung einer Konfigurationsdatei konfigurieren: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html

Aber es ist Ihnen nicht sagen, wo diese Konfigurationsdatei zu setzen. Um das herauszufinden, müssen Sie einem Link folgen: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

Der erste Link teilt Ihnen hilfreich den Namen der verschiedenen Ressourcen mit, die Sie konfigurieren können. In meinem Fall brauchte ich 'AWSEBAutoScalingGroup'. Aber es sagt Ihnen nicht, was der Ressourcentyp-Bezeichner (Typ) oder die verfügbaren Eigenschaften sind. Es hat einen Link zu den 'Ressourcentyp-Identifizierern' (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/aws-template-resource-type-ref-aeb.html), aber dort wird kein Autoscaling oder elastisches Bohnenranking erwähnt.

Zum Glück eine Art Seele auf den AWS-Foren hat mir einen Link zu einem gewissen hilfreichen Dokumentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html

So endlich konnte ich meine Config-Datei erstellen, die wie folgt aussieht:

Resources: 
    AWSEBAutoScalingGroup: 
     Type: "AWS::AutoScaling::AutoScalingGroup" 
     Properties: 
      HealthCheckType: ELB 
      HealthCheckGracePeriod: 600 

Diese funktioniert jetzt wie ein Charme!

+0

Awesome, genau das, was ich gesucht habe. Getestet und 100% korrekt. Vielen Dank. – robertomarin

1

Sie können Ihre eigene AutoScaling Gruppe und verwenden Sie es zum Startkonfiguration erstellen.

Sie können auch AutoScaling mit Elastic Beanstalk-Konfigurationsdatei konfigurieren:

AWS Elastic Beanstalk: Customizing Environment Resources

UPDATE:

Ich wusste Sie die ASG mit der Datei EB Config konfigurieren kann, aber es gibt keine Option, um den Health-Check-Typ zu ändern

Schauen Sie sich Configure the Health State of An Instance an, es heißt, Sie können den Elastic Load Balancer Health Check mit AutoScaling verwenden.

Standardmäßig ermittelt Ihre Auto Scaling-Gruppe den Funktionszustand jeder Instanz, indem sie regelmäßig die Ergebnisse der Amazon EC2-Instanzstatusprüfungen überprüft. Wenn Sie Ihre Auto Scaling-Gruppe einem Elastic Load Balancing-Lastenausgleich zugeordnet haben und die Elastic Load Balancing-Statusüberprüfung ausgewählt haben, ermittelt Auto Scaling den Status der Instanzen, indem die Ergebnisse der Amazon EC2-Instanzstatusüberprüfungen überprüft werden die Elastic Load Balancing-Instanzen-Systemdiagnosen.

Es ist eine Option ELB holen als Kontrolltyp Gesundheit, wenn Sie AutoScaling Gruppe erstellen:

enter image description here

Oder wenn Sie verwenden CreateAutoScalingGroup API-Aufruf:

HealthCheckType
Der Service Sie möchten die Gesundheitschecks von, Amazon EC2 oder Elastic Load Balancer. Gültige Werte sind EC2 oder ELB.

Standardmäßig verwendet der Auto Scaling-Systemdiagnosetest die Ergebnisse von EC2-Instanzenstatusprüfungen von Amazon , um den Status einer Instanz zu ermitteln. Für Weitere Informationen finden Sie unter Health Check.

+0

Danke. Ich werde einen Blick auf eine benutzerdefinierte ASG werfen. Ich habe erkannt, dass Sie die ASG mit der EB-Konfigurationsdatei konfigurieren können, aber es gibt keine Option zum Ändern des Systemdiagnosetyps – user1207727

+0

Die Antwort wurde mit zwei verfügbaren Optionen zur Änderung des Systemdiagnosetyps aktualisiert. – kukido

+0

Danke. Während dies zwei gültige Methoden sind, um die ASG-Einstellungen zu aktualisieren, habe ich nach einer Möglichkeit gefragt, dies über Elastic Beanstalk zu tun. Ich wollte die ASG nicht manuell ändern oder ein anderes Skript ausführen, nachdem ich jedes Mal eine neue Version der Anwendung bereitgestellt habe. – user1207727

Verwandte Themen