Erste Schritte mit AWS Bereitstellen einer

Transcription

Erste Schritte mit AWS Bereitstellen einer
Erste Schritte mit AWS
Bereitstellen einer Webanwendung
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Erste Schritte mit AWS: Bereitstellen einer Webanwendung
Copyright © 2015 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
The following are trademarks of Amazon Web Services, Inc.: Amazon, Amazon Web Services Design, AWS, Amazon CloudFront,
AWS CloudTrail, AWS CodeDeploy, Amazon Cognito, Amazon DevPay, DynamoDB, ElastiCache, Amazon EC2, Amazon Elastic
Compute Cloud, Amazon Glacier, Amazon Kinesis, Kindle, Kindle Fire, AWS Marketplace Design, Mechanical Turk, Amazon Redshift,
Amazon Route 53, Amazon S3, Amazon VPC, and Amazon WorkDocs. In addition, Amazon.com graphics, logos, page headers, button
icons, scripts, and service names are trademarks, or trade dress of Amazon in the U.S. and/or other countries. Amazon's trademarks
and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause
confusion among customers, or in any manner that disparages or discredits Amazon.
All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected
to, or sponsored by Amazon.
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Table of Contents
Bereitstellen einer Webanwendung ................................................................................................... 1
AWS Elastic Beanstalk ........................................................................................................... 1
Die Anmeldeanwendung ......................................................................................................... 2
Amazon DynamoDB .............................................................................................................. 2
Amazon Simple Notification Service .......................................................................................... 2
Einrichten .................................................................................................................................... 3
Sign Up for AWS ................................................................................................................... 3
Laden Sie den Code für die Anwendung herunter ....................................................................... 3
Erstellen einer IAM-Rolle ........................................................................................................ 4
Schritt 1: Erstellen einer DynamoDB-Tabelle ...................................................................................... 5
Schritt 2: Erstellen eines SNS-Themas .............................................................................................. 7
Schritt 3: Bereitstellen der Anwendung .............................................................................................. 9
Vorbereiten des Quell-Bundles ................................................................................................ 9
Erstellen einer Anwendung .................................................................................................... 10
Testen der Anwendung ......................................................................................................... 11
Beheben von Bereitstellungsproblemen ................................................................................... 12
Schritt 4: Ändern der Konfiguration der Anwendung (Optional) ............................................................. 14
Schritt 5: Bereinigen ..................................................................................................................... 16
Weitere AWS-Bereitstellungsoptionen ............................................................................................. 17
Verwandte Ressourcen ................................................................................................................. 18
iii
Erste Schritte mit AWS Bereitstellen einer Webanwendung
AWS Elastic Beanstalk
Bereitstellen einer Webanwendung
mit Elastic Beanstalk
Mit AWS können Sie Webanwendungen schnell entwickeln und dann in einer Cloud-Umgebung
bereitstellen, die bei Bedarf skaliert wird: Und da Sie aus mehreren AWS-Bereitstellungsservices wählen
können, können Sie eine Bereitstellungslösung erstellen, mit der Sie Automatisierung und Steuerung
kombinieren können.
In diesem Tutorial wird davon ausgegangen, dass Sie an einer neuen Webanwendung arbeiten, die noch
nicht zur Produktion bereit ist. In der Zwischenzeit planen Sie jedoch eine kleinere Anwendung als
Platzhalter bereitzustellen, mit der Informationen von den Besuchern der Website erfasst werden, die
sich anmelden, um weitere Informationen zu erhalten. Mithilfe der Anwendung für die Anmeldung können
Sie potenzielle Kunden erreichen, die die Anwendung möglicherweise schon früh kennenlernen und an
privaten Betatests teilnehmen möchten.
Es folgt eine kurze Einführung in AWS Elastic Beanstalk und weitere Technologien, die verwendet werden.
(Wenn Sie direkt zum praktischen Teil des Tutorials übergehen möchten, überspringen Sie den nächsten
Abschnitt.)
AWS Elastic Beanstalk
Elastic Beanstalk ist ein ausgereiftes Bereitstellungstool, mit dem Sie eine auf dem Desktop verfügbare
Anwendung in wenigen Minuten im Internet bereitstellen können. Elastic Beanstalk übernimmt für Sie
die Details Ihrer Hostingumgebung von der Kapazitätsbereitstellung, Lastverteilung, Skalierung bis zur
Statusüberwachung der Anwendung.
Elastic Beanstalk unterstützt Anwendung, die in Java, PHP, .NET, Node.js, Python und Ruby entwickelt
wurden, sowie unterschiedliche Containertypen für die einzelnen Sprachen. Ein Container definiert die
Infrastruktur und den Softwarestack, die für ein bestimmte Umgebung verwendet werden sollen. Bei der
Entwicklung der Anwendung stellt Elastic Beanstalk eine oder mehrere AWS-Ressourcen wie
EC2-Instances bereit. Welcher Softwarestack auf Ihrer EC2-Instance ausgeführt wird, hängt vom
Containertyp ab. Elastic Beanstalk unterstützt z. B. zwei Containertypen für Node.js: Ein Amazon
Linux-Abbild für 32-Bit-Umgebungen und ein Amazon Linux-Abbild für 64-Bit-Umgebungen. Beide führen
einen Softwarestack aus, der für das Hosting einer Node.js-Anwendung konzipiert ist.
1
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Die Anmeldeanwendung
Über die AWS Management Console, die AWS Command Line Interface (AWS CLI) oder eb, einer CLI
auf höchster Ebene, die speziell für Elastic Beanstalk entwickelt wurde, können Sie mit Elastic Beanstalk
interagieren. In diesem Tutorial wird die AWS Management Console verwendet.
Die Anmeldeanwendung
In diesem Tutorial wird eine Beispielanwendung entwickelt, mit der Kunden Kontaktinformationen
übermitteln und ihr Interesse an einer Vorschau einer hypothetischen Webanwendung bekunden können,
die Sie entwickeln.
Die Anwendung basiert auf Node.js, einer Plattform, die serverseitiges JavaScript zum Erstellen von
Netzwerkanwendungen verwendet. Node.js besteht aus einer Bibliothek und einer Laufzeit. Die Laufzeit
wird durch V8 JavaScript Engine bereitgestellt.
Node.js basiert auf einem blockierungsfreien, ereignisgesteuerten E/A-Modell und eignet sich daher für
die Erstellung hoch skalierbarer Webserver. In unserer Anwendung werden zwei externe Node-Module
verwendet: Express, ein Framework für Webanwendungen, und Jade, eine Template-Engine in Node.js,
mit der HTML-Dokumente erstellt werden können.
AWS stellt ein SDK für Node.js bereit, mit dem die Codierung dank der Bereitstellung von
JavaScript-Objekten für AWS weniger komplex wird. Wir haben unsere Beispielanwendung mit dem SDK
für Node.js erstellt. Weitere Informationen zum SDK für Node.js SDK finden Sie unter AWS SDK für
JavaScript in Node.js.
Damit die Anwendung ein gutes Erscheinungsbild bekommt, verwenden wir Bootstrap ein
Frontend-Framework für mobile Anwendungen, das als Twitter-Projekt gestartet wurde.
Amazon DynamoDB
Zum Speichern der vom Benutzer übermittelten Kontaktinformationen verwenden wir Amazon DynamoDB,
einen NoSQL-Datenbankservice. DynamoDB ist eine schemafreie Datenbank, weshalb Sie nur ein
primäres Schlüsselattribut angeben müssen. Für unsere Anwendung verwenden wir ein email-Feld als
Schlüssel.
Amazon Simple Notification Service
Wenn Kunden ein Formular übermitteln, soll eine Benachrichtigung gesendet werden. Daher verwenden
wir Amazon Simple Notification Service (Amazon SNS), einen Push Notification Service, mit dem
Benachrichtigungen über unterschiedliche Protokolle gesendet werden können. In unserer Anwendungen
werden Benachrichtigungen an eine E-Mail-Adresse übertragen.
2
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Sign Up for AWS
Einrichten
Bevor Sie mit diesem Tutorial beginnen, führen Sie die folgenden Schritte durch.
Aufgaben
• Sign Up for AWS (p. 3)
• Laden Sie den Code für die Anwendung herunter (p. 3)
• Erstellen einer IAM-Rolle (p. 4)
Sign Up for AWS
When you sign up for Amazon Web Services (AWS), your AWS account is automatically signed up for
all services in AWS and you can start using them immediately. You are charged only for the services that
you use.
If you created your AWS account less than 12 months ago, you can get started with AWS for free. For
more information, see AWS Free Tier.
If you have an AWS account already, skip to the next step. If you don't have an AWS account, use the
following procedure to create one.
To create an AWS account
1.
Wechseln Sie zu http://aws.amazon.com/ und klicken Sie dann auf Anmelden.
2.
Folgen Sie den Anweisungen auf dem Bildschirm.
Der Anmeldeprozess beinhaltet auch einen Telefonanruf und die Eingabe einer PIN über die
Telefontastatur.
Laden Sie den Code für die Anwendung herunter
Sie können den Code für die Anwendung von dem AWS Labs GitHub-Repository herunterladen. Öffnen
Sie eb-node-express-signup repo und klicken Sie dann auf Download ZIP.
Sie werden im Laufe des Tutorials einige Änderungen an dem Code vornehmen, daher müssen Sie die
Datei eb-node-express-signup-master.zip entpacken. Der Code für die Anwendung ist im
Verzeichnis eb-node-express-signup-master gespeichert.
3
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Erstellen einer IAM-Rolle
Erstellen einer IAM-Rolle
Als nächstes müssen Sie eine IAM-Rolle erstellen, die Ihre Anwendung dazu berechtigt, Amazon
SNS-Benachrichtigungen zu veröffentlichen und Einträge in Ihrer DynamoDB-Tabelle vorzunehmen.
Erstellen Sie eine IAM-Rolle mit der erforderlichen Richtlinie wie folgt:
1.
Öffnen Sie die IAM-Konsole.
2.
3.
Klicken Sie im Navigationsbereich auf Roles.
Klicken Sie auf Create New Role.
4.
Geben Sie auf der Seite Set Role Name einen Namen für die Rolle ein (zum Beispiel my-iam-role)
und klicken Sie dann auf Next Step.
5.
6.
7.
Wählen Sie unter AWS Service Roles die Option Select für Amazon EC2 aus.
Klicken Sie auf der Seite Set Permissions auf das Optionsfeld Custom Policy und dann auf Select.
Geben Sie my-startup-policy in Policy Name ein.
8.
Öffnen Sie die Datei iam_policy.json im Verzeichnis eb-node-express-signup-master und
kopieren Sie ihren Inhalt. Fügen Sie den Inhalt in das Feld Policy Document ein und klicken Sie auf
Next Step.
Klicken Sie auf Create Role.
9.
4
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Schritt 1: Erstellen einer
DynamoDB-Tabelle
In der Anmeldeanwendung wird eine DynamoDB-Tabelle zum Speichern der vom Benutzer übermittelten
Kontaktinformationen verwendet.
Sie erstellen eine DynamoDB-Tabelle wie folgt:
1.
2.
3.
Öffnen Sie die DynamoDB-Konsole.
Wählen Sie in der Menüleiste die Region aus, für die die Anwendung bereitgestellt werden soll.
Wählen Sie für dieses Tutorial US West (Oregon) aus.
Fügen Sie die ausgewählte Region wie folgt der Konfigurationsdatei für die Anwendung hinzu:
a.
Öffnen Sie die Datei app_config.json in einem Text-Editor.
b.
Der Wert "AWS_REGION" ist eine leere Zeichenfolge, mit der Sie beginnen.
"AWS_REGION": "",
Fügen Sie den API-Namen für US West (Oregon) region wie folgt ein.
"AWS_REGION": "us-west-2",
c.
Speichern Sie die bearbeitete Datei. Da Sie in Kürze weitere Änderungen an der Datei vornehmen,
können Sie sie geöffnet lassen.
4.
5.
Kehren Sie zu Dynamo DB zurück und klicken Sie auf Create Table.
Geben Sie im Feld Table Name einen Namen für die Tabelle ein, z. B. my-signup-table.
6.
Wählen Sie als primären Schlüsseltyp den Wert Hash aus.
7.
Wählen Sie als Hash Attribute Name den Wert String aus. Geben Sie im entsprechenden Feld die
E-Mail-Adresse ein und klicken Sie dann auf Fortfahren.
8.
Da Sie keine weiteren Indizes benötigen, klicken Sie auf der Seite Add Indexes auf Fortfahren.
9.
Für die Beispielanwendung können Sie die minimal bereitgestellte Durchsatzkapazität für die Tabelle
verwenden. Vergewissern Sie sich, dass auf der Seite Bereitgestellte Durchsatzkapazität das
5
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Kontrollkästchen Help me calculate how much throughput capacity I need to provision deaktiviert ist
und sowohl die Lese- als auch die Schreibkapazität auf "1" gesetzt sind. Klicken Sie auf Weiter.
10. Da Sie für die Beispielanwendung keine Durchsatzwarnungen benötigen, können Sie das
Kontrollkästchen Use Basic Alarms deaktivieren. Klicken Sie auf Weiter.
11. Klicken Sie auf der Seite "Review" auf Create. Nach Abschluss des Erstellungsvorgangs lautet der
Status der Tabelle ACTIVE.
12. Fügen Sie den Tabellennamen wie folgt der Konfigurationsdatei für die Anwendung hinzu:
a.
Öffnen Sie die Datei app_config.json in einem Text-Editor, falls sie noch nicht geöffnet ist.
b.
Der Wert "STARTUP_SIGNUP_TABLE" ist eine leere Zeichenfolge, mit der Sie beginnen.
"STARTUP_SIGNUP_TABLE": "",
Fügen Sie den Namen der neuen Datenbank wie folgt ein.
"STARTUP_SIGNUP_TABLE": "my-signup-table",
c.
Speichern Sie die bearbeitete Datei. Da Sie im nächsten Schritt eine weitere Änderungen an
der Datei vornehmen, können Sie sie geöffnet lassen.
6
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Schritt 2: Erstellen eines
SNS-Themas
Unsere Anmeldeanwendung benachrichtigt Sie jedes Mal, wenn sich ein Benutzer anmeldet. Wenn die
Daten aus dem Anmeldeformular in die DynamoDB-Tabelle geschrieben werden, sendet Ihnen die
Anwendung eine SNS-Benachrichtigung. Zunächst müssen Sie ein SNS-Thema erstellen, das ist ein
Stream für Benachrichtigungen. Dann müssen Sie ein Abonnement erstellen, damit SNS weiß, wohin
und wie die Benachrichtigungen zu senden sind.
Richten Sie SNS-Benachrichtigungen ein
1.
2.
3.
4.
Öffnen Sie die Amazon SNS-Konsole.
Sie müssen für das SNS-Thema die gleiche Region verwenden wie für die DynamoDB-Tabelle.
Stellen Sie sicher, dass US West (Oregon) immer noch ausgewählt ist, klicken Sie dann auf Create
New Topic.
Geben Sie in das Dialogfeld Create New Topic my-sns-topic als Name des Themas ein. Sie
können den Anzeigenamen leer lassen. Klicken Sie auf Create Topic.
Fügen Sie die eindeutige Kennung für das SNS-Thema der Konfigurationsdatei für die Anwendung
wie folgt hinzu:
a.
Kopieren Sie auf der Seite mit den Details des Themas die Zeichenfolge von Topic ARN. Beachten
Sie, dass jeder Amazon Resource Name (ARN, Amazon-Ressourcenname) die folgende Syntax
hat:
arn:aws:[service]:[region]:[account]:resourceType/resourcePath
b.
Öffnen Sie die Datei app_config.json in einem Text-Editor, falls sie noch nicht geöffnet ist.
c.
Der Wert für "NEW_SIGNUP_TOPIC" ist eine leere Zeichenfolge, mit der Sie beginnen.
"NEW_SIGNUP_TOPIC": "",
Fügen Sie den Namen des neuen SNS-Themas wie folgt ein.
"NEW_SIGNUP_TOPIC": "arn:aws:sns:us-west-2:123456789012:my-sns-topic",
7
Erste Schritte mit AWS Bereitstellen einer Webanwendung
d.
Ihre abschließende Konfigurationsdatei sollte ähnlich aussehen wie die folgende. Speichern Sie
Ihre Änderungen an der Datei und schließen Sie die Datei.
{
"AWS_REGION": "us-west-2",
"STARTUP_SIGNUP_TABLE": "my-signup-table",
"NEW_SIGNUP_TOPIC": "arn:aws:sns:us-west-2:123456789012:my-sns-topic"
}
5.
Klicken Sie auf Create Subscription.
6.
Wählen Sie im Dialogfeld Create Subscription als Protokoll Email aus. Geben Sie in das Feld Endpoint
eine E-Mail-Adresse ein, um die Benachrichtigung zu empfangen. (Geben Sie für dieses Tutorial
Ihre eigene E-Mail-Adresse ein, da Sie auf eine Bestätigungsnachricht antworten müssen.) Klicken
Sie auf Subscribe. Klicken Sie im Bestätigungsdialogfeld auf Close.
7.
Gehen Sie zu Ihrer E-Mail-Anwendung. Sie werden eine Nachricht mit dem Titel „AWS Notification
— Subscription Confirmation“ erhalten. Öffnen Sie die Nachricht und klicken Sie auf den Link, um
Ihr Abonnement zu bestätigen. Um zu überprüfen, ob Ihr Abonnement bestätigt wurde, aktualisieren
Sie die Seite in der SNS-Konsole.
8
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Vorbereiten des Quell-Bundles
Schritt 3: Bereitstellen der Anwendung
mit Elastic Beanstalk
Mit Elastic Beanstalk können Sie die Anmeldeanwendung auf einfache Weise bereitstellen. Sie laden
eine Anwendungsversion (z. B. eine ZIP-Datei) auf Elastic Beanstalk hoch und stellen anschließend
Informationen zur Anwendung bereit. Elastic Beanstalk startet eine Umgebung und stellt die
AWS-Ressourcen (z. B. eine Amazon EC2-Instance) bereit, die für die Ausführung des Codes erforderlich
sind. Nach dem Start der Umgebung können Sie diese verwalten und neue Anwendungsversionen
implementieren.
Aufgaben
• Vorbereiten des Quell-Bundles (p. 9)
• Erstellen einer Anwendung (p. 10)
• Testen der Anwendung (p. 11)
• Beheben von Bereitstellungsproblemen (p. 12)
Vorbereiten des Quell-Bundles
In Elastic Beanstalk muss die Anwendung in einer einzigen ZIP- oder WAR-Datei gebündelt werden. Ein
Bundle darf keinen übergeordneten Ordner enthalten. Sie müssen also die einzelnen Anwendungsdateien
anstelle des Verzeichnisses komprimieren, in dem sie enthalten sind.
Sie bereiten das Quell-Bundle wie folgt vor:
1.
2.
3.
Öffnen Sie den Anwendungsordner (eb-node-express-signup-master) in einem Tool wie z. B.
Windows Explorer oder Mac OS X Finder.
Wählen Sie alle Elemente in dem Ordner einschließlich der Unterordner aus. Sie dürfen nicht den
übergeordneten Ordner auswählen.
Klicken Sie mit der rechten Maustaste auf die ausgewählten Elemente und wählen Sie die Option
aus, mit der sie komprimiert werden sollen, z. B. Senden an > Komprimierter (gezippter) Ordner
(Windows) oder Elemente komprimieren (Finder).
Weitere Informationen zum Komprimieren von Dateien mit unterschiedlichen Tools finden Sie unter
Erstellen eines Quell-Bundles für die Anwendung im AWS Elastic Beanstalk Developer Guide.
9
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Erstellen einer Anwendung
Erstellen einer Anwendung
Erstellen Sie eine Elastic Beanstalk-Anwendung und stellen Sie die Anwendungsversion in einer neuen
Umgebung bereit.
Sie erstellen eine Anwendung wie folgt:
1.
Öffnen Sie die Elastic Beanstalk-Konsole.
2.
3.
Klicken Sie auf Create New Application.
Geben Sie auf der Seite Application Information einen Namen für die Anwendung ein. Optional
können Sie eine Beschreibung eingeben. In diesem Tutorial soll die Anwendung my-startup-app
heißen. Danach klicken Sie auf Weiter.
Wählen Sie auf der Seite Environment Type den Typ Web Server für die Umgebung aus und wählen
Sie Node.js als vordefinierte Konfiguration aus. Klicken Sie auf Weiter.
4.
5.
6.
7.
8.
9.
Wählen Sie auf der Seite Application Version die Option Upload your own aus, klicken Sie auf Browse
und wählen Sie dann die komprimierte Datei aus, die Sie erstellt haben. Klicken Sie auf Weiter.
Geben Sie auf der Seite Environment Information einen eindeutigen Umgebungsnamen und eine
Umgebungs-URL ein. Klicken Sie auf Check Availability, um sicherzustellen, dass die URL verfügbar
ist. Wenn sie verfügbar ist, wird sie in Grün angezeigt. Andernfalls wird eine Fehlermeldung angezeigt.
Wenn Sie eine eindeutige URL haben, klicken Sie auf Weiter.
Vergewissern Sie sich, dass auf der Seite Zusätzliche Ressourcen beide Kontrollkästchen deaktiviert
sind, und klicken Sie dann auf Weiter.
Wählen Sie auf der Seite Configuration Details im Feld Instance profile die Option Meine-IAM-Rolle
aus. Hierbei handelt es sich um die IAM-Rolle, die Sie in Erstellen einer IAM-Rolle (p. 4) erstellt
haben. Für die anderen Einstellungen können Sie die Standardwerte übernehmen. Klicken Sie auf
Weiter.
Klicken Sie auf der Seite Environment Tags auf Weiter.
10. Prüfen Sie Ihre Einstellungen auf der Seite Review und klicken Sie auf Starten. Im AWS Elastic
Beanstalk-Dashboard können Sie in Echtzeit verfolgen, wie Elastic Beanstalk eine Umgebung erstellt
und die Anwendung bereitstellt. Dieser Vorgang dauert einige Minuten.
10
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Testen der Anwendung
Testen der Anwendung
Wenn die Anwendung bereitgestellt ist und der Umgebungsstatus in Grün angezeigt wird, klicken Sie auf
die URL der Anwendung.
Sie können die Anmeldeanwendung testen, indem Sie das Formular ausfüllen und überprüfen, ob Sie
die Benachrichtigung erhalten.
11
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Beheben von Bereitstellungsproblemen
Beheben von Bereitstellungsproblemen
Falls Sie alle Schritte ausgeführt und auf die URL geklickt haben und keine Anwendung geöffnet wurde,
liegt ein Bereitstellungsproblem vor. In der Bespielanwendung, die auf einem nginx-Server ausgeführt
wird, wird bei einem Bereitstellungsproblem sehr wahrscheinlich die Mitteilung "502 Bad Gateway"
angezeigt. Die Mitteilung "502" ist nicht sehr informativ. Sie sollten für die Behebung von
Bereitstellungsproblemen die Protokolle verwenden, die von Elastic Beanstalk bereitgestellt werden.
Angenommen, Sie haben bei der Aktualisierung von app_config.json z. B. versehentlich ein
Anführungszeichen vergessen. Nun wird nach Abschluss der Bereitstellung der 502-Fehler angezeigt.
Wie können Sie das Problem finden und beheben?
Natürlich versuchen Sie, den Fehler in der Entwicklung zu finden. Doch wenn sich der Fehler bis in die
Produktion fortsetzt oder Sie die Anwendung nur aktualisieren möchten, ist die erneute Bereitstellung mit
Elastic Beanstalk sehr schnell und einfach.
Sie beheben ein Bereitstellungsproblem wie folgt:
1.
2.
Klicken Sie in der Elastic Beanstalk-Konsole im Navigationsbereich für Ihre Umgebung auf Protokolle.
Klicken Sie auf der Protokollseite auf Snapshot Logs. Warten Sie, bis die Umgebung aktualisiert ist,
und klicken Sie dann auf View log file. In der Protokolldatei können Sie erkennen, was während der
Bereitstellung und der Laufzeit auf der Serverseite geschehen ist. Es gilt nun, sehr viele Informationen
zu durchsuchen, und in diesem Tutorial werden nicht alle unterschiedlichen Bereiche des Protokolls
behandelt. Doch falls Sie tatsächlich ein Anführungszeichen in der Konfigurationsdatei vergessen
haben und das Protokoll nach /var/log/nodejs/nodejs.log durchsuchen, finden Sie in etwa
den folgenden Fehler:
SyntaxError: Unexpected token u
at Object.parse (native)
at Object.<anonymous> (/var/app/current/server.js:23:15)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
12
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Beheben von Bereitstellungsproblemen
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:245:9)
undefined:2
"AWS_REGION": us-west-2",^
In diesem Fall wird die Mitteilung "Unexpected token u" angezeigt, da der Parser ein
Anführungszeichen anstelle eine "u" in der Zeichenfolge us-west-2" erwartet. Nun ist das Problem
gefunden und kann behoben werden.
3.
Wenn Sie dieses Problem beheben möchten, kehren Sie zum Anwendungscode in der lokalen
Umgebung zurück und fügen Sie das fehlende Anführungszeichen ein. Dann erstellen Sie eine
ZIP-Datei, die hochgeladen wird.
4.
Zur erneuten Bereitstellung der Anwendung gehen Sie zum Elastic Beanstalk-Dashboard, klicken
auf Upload and Deploy und wählen die aktualisierte ZIP-Datei aus.
5.
Ändern Sie die Versionsbezeichnung. Wenn die erste Bereitstellung z. B. die Bezeichnung "Archive"
hatte, können Sie die zweite Bereitstellung "Archive-2" nennen.
Klicken Sie auf Deploy. Elastic Beanstalk aktualisiert die Umgebung.
Wenn die Umgebung aktualisiert ist und in Grün angezeigt wird, klicken Sie auf die URL der
Anwendung, um diese zu testen.
6.
7.
13
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Schritt 4: Ändern der Konfiguration
der Anwendung (Optional)
Unsere Webanwendung verwendet eine Umgebungsvariable, theme, um das angewandte CSS zu
steuern. Die Datei server.js enthält die folgende Aussage, um diese Umgebungsvariable für die
Anwendung verfügbar zu machen:
app.locals.theme = process.env.THEME;
Eine Änderung der Einstellung dieser Umgebungsvariablen ändert das Aussehen der Anwendung. Weitere
Informationen finden Sie unter public/static/bootstrap/css/theme und views/layout.jade
im Code für die Anwendung.
Am einfachsten können Sie diese Umgebungsvariable aktualisieren, indem Sie mithilfe von Elastic
Beanstalk die Konfiguration für Ihre Umgebung aktualisieren.
Ändern des Anwendungsthemas mithilfe von Elastic Beanstalk
1.
2.
Öffnen Sie die Elastic Beanstalk-Konsole.
Klicken Sie im Navigationsbereich für Ihre Umgebung auf Configuration und öffnen Sie Software
Configuration.
3.
Ermitteln Sie unter Environment Properties die Umgebungsvariable THEME. Ändern Sie den
Standardwert (flatly) in einen der folgenden Werte und klicken Sie dann auf Save.
• amelia
• default
14
Erste Schritte mit AWS Bereitstellen einer Webanwendung
• slate
• united
4.
Nachdem Elastic Beanstalk die Aktualisierung der Umgebung abgeschlossen hat, klicken Sie auf
die URL für die Anwendung. Die Anwendung sieht jetzt anders aus.
15
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Schritt 5: Bereinigen
Sie sollten die Apps und Umgebungen, die Sie in diesem Tutorial erstellt haben, mithilfe von Elastic
Beanstalk bereinigen, um zu verhindern, dass für Ihr Konto Zusatzkosten entstehen.
So bereinigen Sie Ihre AWS-Ressourcen
1.
2.
Öffnen Sie die Elastic Beanstalk-Konsole.
Löschen Sie alle Versionen der Anwendung wie folgt:
a.
b.
c.
d.
3.
4.
Klicken Sie auf den Namen Ihrer Anwendung und dann auf Application Versions im
Dropdown-Menü.
Wählen Sie alle Anwendungsversionen aus, die Sie für dieses Tutorial erstellt haben, und klicken
Sie dann auf Delete.
Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Delete.
Klicken Sie auf Done.
Beenden Sie die Umgebung wie folgt:
a.
b.
Klicken Sie auf Environments und wählen Sie dann Ihre Umgebung aus.
Klicken Sie auf Actions und dann auf Terminate Environment.
c.
Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Terminate.
Klicken Sie auf Actions und dann auf Delete Application. Wenn Sie zur Bestätigung aufgefordert
werden, klicken Sie auf Delete.
16
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Weitere AWS-Bereitstellungsoptionen
Dieses Tutorial konzentriert sich auf die grundlegenden Funktionen von AWS Elastic Beanstalk. Allerdings
hat Elastic Beanstalk viele weitere Funktionen und es ist nur eine der mit AWS verfügbaren
Bereitstellungslösungen. Alternativ können Sie AWS OpsWorks verwenden, um Anwendungen
bereitzustellen und zu managen, und wenn Sie Ihr eigenes Bereitstellungs-Framework erstellen möchten,
können Sie das mithilfe von Amazon Elastic Compute Cloud, AWS CloudFormation, Amazon CloudWatch
und Auto Scaling tun. Weitere Informationen über die Auswahl der richtigen Bereitstellungslösung finden
Sie in Application Management for AWS.
Weitere Informationen über Elastic Beanstalk und andere AWS-Bereitstellungsoptionen finden Sie in den
folgenden Ressourcen.
Weitere Informationen über Elastic Beanstalk
• Eine vollständige Dokumentation über das Managen von Anwendungen mit Elastic Beanstalk finden
Sie in AWS Elastic Beanstalk Developer Guide.
• Weitere Informationen über die Elastic Beanstalk CLI finden Sie unter Eb Command Line Interface.
• Informationen darüber, wie Sie eine Node.js app mit eb bereitstellen, finden Sie unter Deploying AWS
Elastic Beanstalk Applications in Node.js Using Eb and Git.
• Weitere Informationen über die Komponenten und die Architektur einer Elastic Beanstalk-Anwendung
finden Sie unter How Does AWS Elastic Beanstalk Work?.
• Indem Sie Ihrem Quell-Bundle eine Konfigurationsdatei beifügen, können Sie Ihre Umgebung gleichzeitig
mit der Bereitstellung Ihrer Anwendung anpassen. Weitere Informationen finden Sie unter Customizing
and Configuring AWS Elastic Beanstalk Environments.
Weitere AWS-Lösungen
• Weitere Informationen über AWS OpsWorks finden Sie unter AWS OpsWorks User Guide.
• Weitere Informationen über die einzelnen Services, die Sie typischerweise für eine
Do-it-yourself-Bereitstellung verwenden, finden Sie unter Amazon EC2 Getting Started Guide, AWS
CloudFormation User Guide, Amazon CloudWatch Getting Started Guide und Auto Scaling Getting
Started Guide.
• Das AWS Toolkit for Visual Studio enthält ein Bereitstellungstool. Weitere Informationen finden Sie
unter Standalone Deployment Tool.
• Das AWS Toolkit for Eclipse bietet ebenfalls Bereitstellungsoptionen. Weitere Informationen finden Sie
unter Getting Started with the AWS Toolkit for Eclipse.
17
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Verwandte Ressourcen
Abstract
Informationen über verschiedene hilfreiche AWS-Ressourcen
Die folgende Tabelle listet einige der AWS-Ressourcen auf, die Ihnen bei Ihrer Arbeit mit AWS nützlich
sein werden.
Ressource
Beschreibung
AWS-Produkte und Services
Informationen über die Produkte und Services, die AWS bietet.
AWS-Dokumentation
Offizielle Dokumentation für jedes AWS-Produkt, einschließlich
Service-Einführungen, Service-Funktionen und API-Referenz.
AWS-Diskussionsforen
Community-basiertes Forum zur Diskussion technischer
Fragen zu Amazon Web Services.
Kontakt
Zentrale Seite zur Kontaktaufnahme bei kontobezogenen
Fragen zu Abrechnungen, Vorfällen und Missbrauch. Technische Fragen stellen Sie bitte in den Foren.
AWS Support-Center
Die Zentrale zum Anlegen und Verwalten Ihrer AWS SupportFälle. Bietet außerdem Links zu hilfreichen Ressourcen, wie
z. B. Foren, technischen Fragen und Antworten, Übersicht
zum Servicestatus und AWS Trusted Advisor.
AWS Support
Die AWS Support-Startseite, ein persönlicher Support-Kanal
mit schnellen Reaktionszeiten, der Sie beim Entwickeln und
Ausführen von Anwendungen in der Cloud unterstützt.
AWS-Architekturzentrum
Bietet die erforderlichen Anleitungen und bewährte Methoden,
um hochskalierbare und zuverlässige Anwendungen in der
AWS-Cloud zu erstellen. Diese Ressourcen helfen Ihnen
dabei, die AWS-Plattform, ihre Services und Funktionen zu
verstehen. Sie bieten auch architektonische Anleitungen für
Design und Implementierung von Systemen, die auf der AWSInfrastruktur laufen.
AWS-Sicherheitszentrum
Bietet Informationen über Sicherheitsfunktionen und -ressourcen.
18
Erste Schritte mit AWS Bereitstellen einer Webanwendung
Ressource
Beschreibung
AWS Economics Center
Bietet Zugriff auf Informationen, Tools und Ressourcen für
den Vergleich der Kosten für Amazon Web Services mit
denen für alternative IT-Infrastrukturen.
Technische Whitepaper zu AWS
Bietet technische Whitepaper zu Themen wie Architektur,
Sicherheit und Wirtschaftlichkeit. Diese Whitepaper wurden
vom Amazon-Team, Kunden und Lösungsanbietern geschrieben.
AWS-Blogs
Bietet Blog-Posts, die neue Services und Aktualisierungen
bestehender Services behandeln.
AWS-Podcast
Bietet Podcasts, die neue und bestehende Services behandeln
und Tipps geben.
19