Ich führe eine Anwendung auf AWS Elastic Beanstalk aus und es sieht so aus, als müsste eine neue Umgebung erstellt werden, wenn ich das neueste AMI verwenden möchte.
Wenn ich die neueste AMI-ID kenne, kann ich sie in der Umgebungskonfiguration aktualisieren.
Gibt es eine Stelle, an der ich die ID der neuesten AMIs von Elastic Beanstalk finden kann, oder ist es sogar möglich, die Instanzen automatisch durch die neue Version zu ersetzen, wenn eine neue Version eingeführt wird?
amazon-web-services
elastic-beanstalk
Benjamin
quelle
quelle
Antworten:
Die empfohlene und unterstützte Methode zum Aktualisieren Ihrer AWS Beanstalk-Umgebung wird hier dokumentiert und verwaltete Plattformaktualisierungen werden hier besprochen. Ich würde mich ehrlich daran halten, wenn Sie möchten, dass die Dinge einfach sind (und genau darum geht es bei Beanstalk), werden Sie es theoretisch tun Erhalten Sie nur die aktuellen Updates, und AWS verwaltet den Prozess, sodass keine Ausfallzeiten entstehen.
Ich möchte noch einmal darauf hinweisen, dass Updates für verwaltete Plattformen wahrscheinlich genau das sind, was Sie oder andere, die von Google hierher kommen, wollen. Wenn Sie jedoch wissen möchten, ob das neueste AWS-AMI für Ihre Beanstalk-Umgebung verfügbar ist, können Sie dies mit AWS CLI relativ einfach tun (vielen Dank) zu vernünftigen Namenskonventionen von Amazon auf ihren AMIs).
Beschreiben Sie ausgehend von einer Instanz aus Ihrer Umgebung die Instanz, um die aktuelle AMI abzurufen (überspringen Sie, wenn Sie die aktuelle AMI bereits kennen).
Nimm die resultierende AMI ID und beschreibe sie.
Wir können die oben genannten Ausgaben als Eingabe für eine neue, sortierte Ausgabe verwenden,
describe-images
aber dieses Mal ersetzen wir die Zeitstempel durch*
Platzhaltersymbole wie folgt:Aufgrund der Leistungsfähigkeit der lexikalischen Sortierung und von ISO 8601 erhalten wir die neueste AMI, wie in meinem Beispiel
ami-1be5de78
.Auch hier würde ich nicht empfehlen, dass Sie versuchen, von Hand auf dieses AMI umzusteigen. Beanstalk hat Vorkehrungen getroffen, um dies alles für Sie zu erledigen!
quelle
Es scheint so, als ob Sie, selbst wenn Sie den AMI ändern, einen ordnungsgemäßen AMI ElasticBeanstalk verwenden. Es scheint nicht richtig zu funktionieren. Es fehlen alle Dateien. Es funktioniert nicht richtig.
Ich denke, Sie müssen eine neue Elastic Beanstalk-Umgebung mit dem aktualisierten AMI starten. Stellen Sie sicher, dass alles funktioniert, und tauschen Sie dann die Umgebungs-URLs aus.
quelle
Sie können die Funktionen für verwaltete Updates verwenden, die mit eb geliefert werden. Dafür müssen Sie jedoch für eine verbesserte Berichterstellung zahlen. Oder verwenden Sie den Befehl 'eb platform show'. In einer Worker-App gibt es einen Cron, der CURRENT =
eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]'
LATEST = ausführt.eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]'
Dann vergleiche sie und falls anders, kannst du eb clone (Standard auf neue Version) und dann cname swap verwenden.quelle
Navigieren Sie zum Dashboard Ihrer Anwendung, suchen Sie "Konfiguration" und klicken Sie auf "Ändern".
Sie sollten eine Liste sehen, in der Sie eine Plattform auswählen können. Die neueste Version ist in dieser Liste angegeben. Plattform auswählen
AWS EB verwendet spezifische Setups für verschiedene Programmiersprachen. Eine Liste der Setups finden Sie in der Dokumentation http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html
In Tabellen wird angezeigt, welche AMI-Version auf den einzelnen Plattformen verwendet wird.
Ich habe jedoch keine Möglichkeit gefunden, diese Updates automatisch auszuführen. Eigentlich bevorzuge ich es, Änderungen an der Plattform zu überprüfen und zu testen, bevor ich sie bereitstelle.
quelle
Wählen Sie Ihren Dienst in Elastic Beanstalk aus. Sie sehen die Übersicht im Dashboard. Im Dashboard auf der rechten Seite sehen Sie die Konfiguration Ihres AMI. Wählen Sie Upgrade ändern oder beeinträchtigen Sie Ihren AMI. An diesem Punkt werden Sie Ihre Instanz ersetzen. Machen Sie also das Backup oder den Klon.
quelle
Ich konnte meine aktuelle auf Beanstalk gehostete Anwendung mithilfe der folgenden Schritte auf das neueste Amazon Linux AMI aktualisieren.
1- Melden Sie sich bei der AWS Console an und navigieren Sie zum Beanstalk-Portal.
2- Navigieren Sie zur Konfigurationsseite Ihrer Anwendung und klicken Sie auf "Instances".
3- Suchen Sie die AMI-ID, die lauten sollte, also AMI-xxxxxx.
4- Nehmen Sie die AMI-ID, navigieren Sie zurück zur EC2-Konsole und klicken Sie auf AMI.
5- Ändern Sie die Ansicht in "Öffentliche Bilder" und suchen Sie nach der AMI-ID, die Sie zuvor aus der Beanstalk-Konfiguration abgerufen haben.
6- Starten Sie AMI als neue Instanz.
7- Melden Sie sich nach dem Start bei der Instanz an und passen Sie sie gemäß Ihren Anwendungsanforderungen an.
8- Sobald Sie mit dem Ergebnis zufrieden sind, erstellen Sie ein AMI-Image dieser neuen Instanz.
9- Nehmen Sie die neue Instanz-AMI-ID, die in Schritt 8 erstellt wurde, und wenden Sie diese auf Ihre Beanstalk-Anwendungskonfiguration an.
10- Die alte Instanz wird nicht gelöscht und die neue Instanz wird nicht mit Ihrer benutzerdefinierten AMI erstellt. Außerdem wird Ihre neueste Anwendung auf den neuen Instanzen bereitgestellt.
quelle