Bereitstellen einer Webanwendung auf AWS Elastic Beanstalk

LEITFADEN „ERSTE SCHRITTE“

Modul 3: Webanwendung bereitstellen

In diesem Modul werden wir Ihre Anwendung in der Cloud bereitstellen.

Einführung

In diesem Modul lernen Sie, wie Sie Ihre NodeJS-Anwendung verpacken, damit sie bereitgestellt werden kann. Sie werden auch lernen, wie Sie alle AWS-Elastic-Beanstalk-Ressourcen, die Sie in Modul 2 erstellt haben, mit AWS CDK bereitstellen.

Lerninhalte

  • Verpacken Sie Ihre NodeJS-Anwendung
  • Erstellen und Bereitstellen Ihrer CDK-Anwendung
  • Aktualisieren Sie die NodeJS-Anwendungsbereitstellung

 Veranschlagte Zeit

10 Minuten

 Voraussetzungen für das Modul

  • AWS-Konto mit Administratorzugriff**
  • Empfohlener Browser: aktuelle Version von Chrome oder Firefox

[**] Innerhalb der letzten 24 Stunden erstellte Konten haben möglicherweise noch keinen Zugriff auf alle für dieses Tutorial erforderlichen Services.

Implementierung

Verpacken Sie Ihre NodeJS-Anwendung

In Modul 2 haben Sie gelernt, dass wir die Anwendung in einer Zip-Datei auf S3 hochladen werden, indem wir das S3-Asset-Modul von AWS CDK verwenden.

Dazu müssen Sie eine Zip-Datei Ihrer NodeJS-Anwendung erstellen und diese im Stammverzeichnis Ihrer AWS-CDK-Anwendung ablegen.  Nennen Sie die Zip-Datei „app.zip". Führen Sie dazu den folgenden Befehl aus:

zip -r ../app.zip ./*
gsg_build_elb_3

CDK in ihrem Konto bootstrappen

Wenn Sie AWS CDK zum ersten Mal in diesem Konto und in dieser Region verwenden, müssen Sie es bootstrappen. Wenn Sie AWS-CDK-Anwendungen in einem AWS-Konto und einer Region bereitstellen, muss CDK die Ressourcen bereitstellen, die es zur Durchführung von Bereitstellungen benötigt. Darunter auch ein Amazon-S3-Bucket zum Speichern der Bereitstellungsdateien und IAM-Rollen, die die erforderlichen Bereitstellungs-Berechtigungen erteilen. Die Bereitstellung dieser Anfangsressourcen wird als Bootstrapping bezeichnet.

Um Ihr AWS-Konto und Ihre Region zu bootstrappen, führen Sie Folgendes aus

cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1

Dies sollte in etwa so aussehen:

cdk bootstrap aws://123456789012/us-east-1

Sie können die Kontonummer von Ihrer AWS-Verwaltungskonsole und den Namen der Region aus dieser Liste abrufen.

Erstellen und Bereitstellen Ihrer CDK-Anwendung

Nachdem Sie Ihre NodeJS-Anwendung verpackt und im Stammverzeichnis Ihres CDK-Anwendungsverzeichnisses abgelegt haben und dann Ihr AWS-Konto und Ihre Region bootgestrappt haben, können Sie Ihre CDK-Anwendung erstellen und bereitstellen.

Der erste Schritt besteht darin, die CDK-Anwendung zu erstellen.

node run build

Wenn keine Fehler in Ihrer Anwendung auftreten, ist dies erfolgreich und Sie können die CDK-Anwendung in der Cloud bereitstellen.

cdk deploy

Sie werden zunächst dazu aufgefordert, zu bestätigen, dass Sie einige Änderungen an der Sicherheitsstufe Ihres Kontos vornehmen möchten, da wir eine neue Rolle erstellt haben.

gsg_build_elb_4

Antworten Sie mit „y", und die Bereitstellung wird gestartet. Dieser Vorgang dauert einige Minuten. Wenn dies geschehen ist, erhalten Sie eine Nachricht mit dem ARN (Amazon Resource Name) des CloudFormation Stacks, den diese Bereitstellung für Sie erstellt hat.

Wenn Sie die CloudFormation Mangementkonsole öffnen, werden Sie sehen, dass es dort 2 neue Stacks gibt.

gsg_build_elb_5

Der Stack namens CdkEbInfraStack enthält alle Elastic-Beanstalk-Ressourcen, die wir im vorherigen Modul erstellt haben: Elastic-Beanstalk-Anwendung, Anwendungsversion, Instance-Profil und Umgebung.

Der andere Stack (mit der zufälligen Zeichenfolge) wurde von Elastic Beanstalk erstellt und enthält alle Ressourcen, die die Elastic-Beanstalk-Anwendung zum Ausführen benötigt - Auto-Scaling-Gruppen, Instances, Amazon-CloudWatch-Alarme und -Metriken, Load Balancer und Sicherheitsgruppen.

Ansicht Ihrer Anwendung in der Cloud

Wenn Sie sehen möchten, wie Ihre Anwendung in der Cloud bereitgestellt wird, müssen Sie zunächst die URL der Webanwendung ermitteln. Sie finden diese URL, indem Sie den Elastic-Beanstalk-Service in der AWS-Konsole aufrufen und nach der Umgebung namens MyWebAppEnvironment suchen.

gsg_build_elb_6

Dort sehen Sie die URL. Klicken Sie darauf und die Webanwendung sollte starten.

Aktualisieren Sie die NodeJS-Anwendungsbereitstellung

Wenn Sie eine Änderung an Ihrer Webanwendung vornehmen und sie erneut in der Cloud bereitstellen möchten, können Sie die folgenden Schritte ausführen:

  • Nehmen Sie die Änderung in der Webanwendung vor
  • Verpacken Sie es in eine app.zip-Datei
  • Fügen Sie die Datei app.zip in das Stammverzeichnis Ihrer CDK-Anwendung ein
  • Erstellen Sie das CDK-Projekt - npm run build
  • Bereitstellen des CDK-Projekts - cdk deploy

Jetzt können Sie überprüfen, ob eine neue Version der Elastic-Beanstalk-Anwendung bereitgestellt wurde. Und wenn Sie die URL der Webanwendung aufrufen, wird die neue Version bereitgestellt - dies dauert ein wenig, bitte beobachten Sie die Konsole, um zu sehen, wann der Vorgang abgeschlossen ist.

gsg_build_elb_7

Häufige Fehler

Zippen der Anwendung

Wenn Sie diese Fehlermeldung erhalten, wenn Ihre NodeJS-Anwendung auf Elastic Beanstalk hochgeladen wird.

Failed to find package.json. Node.js may have issues starting. Verify package.json is valid or place code in a file named server.js or app.js.

Ein Problem kann die Art und Weise sein, wie Sie Ihre Anwendung verpacken. Entfernen Sie das Verzeichnis package-lock.json und node_modules und führen Sie diesen Befehl im Webanwendungs-Verzeichnis aus.

zip -r app.zip .

Dadurch werden die Dateien für Elastic Beanstalk korrekt verpackt.

Node-Module bei der Verpackung Ihrer Anwendung

Sie können Ihr node_modules-Verzeichnis mit allen heruntergeladenen Abhängigkeiten in die Zip-Datei Ihrer Webanwendung verpacken.

Wenn Sie dieses Verzeichnis haben, geht Elastic Beanstalk davon aus, dass keine Abhängigkeiten heruntergeladen werden müssen.

Lesen Sie mehr über die Anweisungen zur Handhabung von NodeJS-Abhängigkeiten in Elastic--Beanstalk-Paketen.

Abschluss

In diesem Leitfaden haben Sie gelernt, wie man eine NodeJS-Webanwendung verpackt und mit Elastic Beanstalk bereitstellt und wie man die gesamte Infrastruktur als CDK-Anwendung bereitstellt.

Nächstes Thema: Ressourcen bereinigen

Lassen Sie uns wissen, wie wir abgeschnitten haben.

Vielen Dank für Ihr Feedback
Wir freuen uns, dass diese Seite Ihnen geholfen hat. Würden Sie uns weitere Details mitteilen, damit wir uns weiter verbessern können?
Schließen
Vielen Dank für Ihr Feedback
Es tut uns leid, dass diese Seite Ihnen nicht weiterhelfen konnte. Würden Sie uns weitere Details mitteilen, damit wir uns weiter verbessern können?
Schließen