Ich verfüge über einen Lastenausgleich mit zwei Instanzen. Ich wollte eine Anwendung für diese elastische Skalierungsgruppe bereitstellen. Ich hörte von Codedeply und versuchte es. Ich habe diesbezüglich einige Fragen. Wenn ich eine neue Bereitstellung erstelle, bekomme ich immer wieder Verbindung zu GitHub. Ich kann das nicht lösen. Zweitens, wenn ich versuche zu deploy ich bekam diesen Fehler "Bereitstellung konnte nicht fortgesetzt werden: Constraint 'Standard' erfordert mindestens 1 gesunden Hosts, um fortzufahren. Verbleibende Hosts werden übersprungen.". So überprüfe ich meine elastische Belastungsbalance und ich fand, dass ich eine Konfiguration von 2 gewünschten Instanzen und 2 minimalen gesunden Instanzen habe. Also habe ich versucht, diese minimalen fehlerfreien Instanzen auf 1 zu ändern und eine Instanz automatisch zu beenden. Ich weiß nicht, wo ich Fehler mache. Bitte helfen Sie mir, dieses Problem zu lösen.AWS-Codebereitstellung Bereitstellung fehlgeschlagen
Antwort
Wenn Sie beim ersten Problem versuchen, eine Bereitstellung über Ihr Github-Repository durchzuführen, müssen Sie vor dem Start der Bereitstellung den Authentifizierungsprozess mit Github abschließen.
Für das zweite Problem geben Sie die Instanzen an, für die Sie eine Bereitstellung durchführen möchten, indem Sie Tags in Ihrer Bereitstellungsgruppe hinzufügen. Stellen Sie sicher, dass Ihre Instanzen richtig gekennzeichnet sind, damit CodeDeploy die Instanzen während der Bereitstellung finden kann.
Ich denke, verwenden Sie CodeDeployDefault.OneAtATime (MinimumHealthyHosts: 99%)
100Instances läuft, können Sie den Erfolg.
Wie wäre es mit CodeDeployDefault.AllAtOnce (MinimumHealthyHosts: 0%) oder CodeDeployDefault.HalfAtATime (MinimumHealthyHosts: 50%)
gelang es mir, beide AllAtOnce und HalfAtATime.
※ mit der Auto-Skalierungsgruppe und 1Instance bei AZ1a und 1Instance bei AZ1c.
Dieses Ding hat Kopfschmerzen für mich auch. So habe ich es behoben. Dies passiert, weil der CodeDeploy den Zustand der ec2-Instanzen überprüft, indem er standardmäßig auf Port 80 schlägt. Vor der Bereitstellung müssen Sie das Bash-Skript auf den Instanzen ausführen und prüfen, ob das Skript funktioniert. Der httpd-Dienst muss gestartet sein. Starten Sie die Instanz neu.
#!/bin/bash
sudo su
yum update -y
yum install httpd -y
yum install ruby
yum install aws-cli
cd ~
aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
chmod +x ./install
./install
echo 'hello world' > /var/www/html/index.html
hostname >> /var/www/html/index.html
chkconfig httpd on
service httpd start
Stellen Sie sicher, dass Sie über gesunde Hosts verfügen. Wenn nicht, dann ändern Sie den Deployment-Konfigurationstyp vorübergehend auf AllAtOnce, da dies vor der Bereitstellung keine fehlerfreien Hosts erfordert. Sobald die Bereitstellung abgeschlossen ist, können Sie sie auf die ursprüngliche Einstellung zurücksetzen.
Überprüfen Sie auch, ob das Auto Scaling Group-Ziel in der CodeDeploy-Anwendungskonfiguration gültig ist. Eine Blue-Green-Bereitstellung kopiert und ersetzt die Auto Scaling-Gruppe. Stellen Sie daher zunächst sicher, dass die Anwendungskonfiguration eine gültige Auto Scaling-Quellgruppe verwendet.
Ich konnte dieses Problem nicht lösen, möglicherweise ein Skript Problem., So versuchte ich Elastik Bohnenstange und es funktioniert, wie ich es erwartet hatte. Und es ist sehr einfach zu konfigurieren – ponraj