Erstellen Ihres ersten Node.js-Stacks - AWS OpsWorks

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Ihres ersten Node.js-Stacks

Wichtig

Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

In diesem Beispiel wird die Erstellung eines Linux-Stacks, der einen Node.js-Anwendungsserver unterstützt, sowie die Bereitstellung einer einfachen Anwendung beschrieben. Der Stack besteht aus den folgenden Komponenten:

Voraussetzungen

In dieser schrittweisen Anleitung wird von Folgendem ausgegangen:

  • Sie haben ein AWS-Konto und Grundkenntnisse in der Verwendung von AWS OpsWorks Stacks.

    Wenn Sie neu bei AWS OpsWorks Stacks oder AWS sind, lernen Sie die Grundlagen, indem Sie das Einführungs-Tutorial unter absolvieren. Erste Schritte mit Chef 11 Linux-Stacks

  • Sie besitzen grundlegende Kenntnisse über die Implementierung einer Node.js-Anwendung.

    Wenn Sie noch nicht mit Node.js vertraut sind, erlernen Sie die Grundlagen durch Ausführen eines Einführungs-Tutorials, wie zum Beispiel Node: Up and Running.

  • Sie haben bereits mindestens einen Stack in der AWS-Region erstellt, die Sie für dieses Beispiel verwenden möchten.

    Wenn Sie den ersten Stack in einer Region erstellen, erstellt AWS OpsWorks Stacks für jeden Layer-Typ eine Amazon Elastic Compute Cloud (Amazon EC2) -Sicherheitsgruppe. Sie benötigen diese Sicherheitsgruppen, um die Amazon RDS-Datenbank-Instance (DB) zu erstellen. Wenn Sie AWS OpsWorks Stacks noch nicht kennen, empfehlen wir Ihnen, für dieses Beispiel dieselbe Region zu verwenden, die Sie verwendet haben, als Sie das Tutorial unter befolgt haben. Erste Schritte mit Chef 11 Linux-Stacks Wenn Sie eine neue Region verwenden möchten, erstellen Sie einen neuen Stack in der Region. Der Stack muss keine Ebenen oder Instances haben. Sobald Sie den Stack erstellt haben, fügt AWS OpsWorks Stacks der Region automatisch eine Reihe von Sicherheitsgruppen hinzu.

  • Sie erstellen Ihren Stack in einer Standard-VPC.

    Sie können EC2-Classic in dieser schrittweisen Anleitung verwenden, jedoch unterscheiden sich einige der Details geringfügig. Mit EC2-Classic geben Sie beispielsweise die Availability Zone (AZ) einer Instance und nicht ihr Subnetz an.

  • Ihr IAM-Benutzer hat Vollzugriffsberechtigungen für Stacks. AWS OpsWorks

    Aus Sicherheitsgründen empfehlen wir dringend, dass Sie in dieser schrittweisen Anleitung nicht die Root-Anmeldeinformationen Ihres Kontos verwenden. Erstellen Sie stattdessen einen Benutzer mit Vollzugriffsberechtigungen für AWS OpsWorks Stacks und verwenden Sie diese Anmeldeinformationen mit Stacks. AWS OpsWorks Weitere Informationen finden Sie unter Erstellen eines -Administratorbenutzers.

Implementieren der Anwendung

In dieser exemplarischen Vorgehensweise wird eine einfache Express-Anwendung verwendet, die eine Verbindung zur Amazon RDS-DB-Instance herstellt und die Datenbanken der Instance auflistet.

Zum Implementieren der Anwendung erstellen Sie ein Verzeichnis mit dem Namen nodedb an einem geeigneten Speicherort auf Ihrer Workstation und fügen Sie die folgenden drei Dateien hinzu.

Paketbeschreibung

Fügen Sie die Datei package.json mit folgendem Inhalt zum Verzeichnis nodedb hinzu, um die Paketbeschreibung der Anwendung zu erstellen. Die Datei package.json ist für Express-Anwendungen erforderlich und muss sich im Stammverzeichnis der Anwendung befinden.

{ "name": "Nodejs-DB", "description": "Node.js example application", "version": "0.0.1", "dependencies": { "express": "*", "ejs": "*", "mysql": "*" } }

Diese Beispieldatei package.json ist relativ minimal gehalten. Sie definiert die erforderlichen Attribute name und version und gibt die abhängigen Pakete an:

  • express verweist auf das Express-Paket.

  • ejs verweist auf das EJS-Paket, das die Anwendung zum Einfügen von Text in eine HTML-Layoutdatei verwendet.

  • mysql verweist auf das node-mysql-Paket, das die Anwendung zur Verbindungsherstellung mit der RDS-Instance verwendet.

Weitere Informationen zu Paketbeschreibungsdateien finden Sie auf der Website package.json.

Layoutdatei

Um die Layoutdatei der Anwendung zu erstellen, fügen Sie ein views-Verzeichnis zum Verzeichnis nodedb hinzu. Fügen Sie dann die Datei views mit folgendem Inhalt zu index.html hinzu:

<!DOCTYPE html> <html> <head> <title>AWS Opsworks Node.js Example</title> </head> <body> <h1>AWS OpsWorks Node.js Example</h1> <p>Amazon RDS Endpoint: <i><%= hostname %></i></p> <p>User: <i><%= username %></i></p> <p>Password: <i><%= password %></i></p> <p>Port: <i><%= port %></i></p> <p>Database: <i><%= database %></i></p> <p>Connection: <%= connectionerror %></p> <p>Databases: <%= databases %></p> </body> </html>

In diesem Beispiel ist die Layoutdatei ein einfaches HTML-Dokument, das einige Daten von Amazon RDS anzeigt. Jedes <%= ... =>-Element stellt jeweils den Wert einer Variablen dar, die in der Codedatei der Anwendung definiert ist. Diese erstellen wir als Nächstes.

Codedatei

Um die Codedatei der Anwendung zu erstellen, fügen Sie eine server.js-Datei mit folgendem Inhalt zum Verzeichnis nodedb hinzu.

Wichtig

Bei AWS OpsWorks Stacks muss die Hauptcodedatei einer Anwendung Node.js benannt werden server.js und sich im Stammordner der Anwendung befinden.

var express = require('express'); var mysql = require('mysql'); var dbconfig = require('opsworks'); //[1] Include database connection data var app = express(); var outputString = ""; app.engine('html', require('ejs').renderFile); //[2] Get database connection data app.locals.hostname = dbconfig.db['host']; app.locals.username = dbconfig.db['username']; app.locals.password = dbconfig.db['password']; app.locals.port = dbconfig.db['port']; app.locals.database = dbconfig.db['database']; app.locals.connectionerror = 'successful'; app.locals.databases = ''; //[3] Connect to the Amazon RDS instance var connection = mysql.createConnection({ host: dbconfig.db['host'], user: dbconfig.db['username'], password: dbconfig.db['password'], port: dbconfig.db['port'], database: dbconfig.db['database'] }); connection.connect(function(err) { if (err) { app.locals.connectionerror = err.stack; return; } }); // [4] Query the database connection.query('SHOW DATABASES', function (err, results) { if (err) { app.locals.databases = err.stack; } if (results) { for (var i in results) { outputString = outputString + results[i].Database + ', '; } app.locals.databases = outputString.slice(0, outputString.length-2); } }); connection.end(); app.get('/', function(req, res) { res.render('./index.html'); }); app.use(express.static('public')); //[5] Listen for incoming requests app.listen(process.env.PORT);

Im Beispiel werden die Datenbankverbindungsinformationen angegeben, der Datenbankserver abgefragt und die Serverdatenbanken dargestellt. Sie können dieses Beispiel für die Interaktion mit der Datenbank nach Bedarf einfach generalisieren. Die folgenden Hinweise beziehen sich auf die nummerierten Kommentare im vorhergehenden Code.

[1] Einbinden von Datenbankverbindungdaten

Diese require-Anweisung enthält die Datenbankverbindungsdaten. Wie später beschrieben, speichert AWS OpsWorks Stacks beim Anhängen einer Datenbankinstanz an eine App die Verbindungsdaten in einer Datei mit dem Namenopsworks.js, die wie folgt aussieht:

exports.db = { "host":"nodeexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com", "database":"nodeexampledb", "port":3306, "username":"opsworksuser", "password":"your_pwd", "reconnect":true, "data_source_provider":"rds", "type":"mysql"}

opsworks.js befindet sich im Verzeichnis shared/config der Anwendung, /srv/www/app_shortname/shared/config. AWS OpsWorks Stacks fügt jedoch einen symbolischen Link opsworks.js in das Stammverzeichnis der Anwendung ein, sodass Sie das Objekt mit nur einbeziehen können. require 'opsworks'

[2] Abrufen der Datenbankverbindungsdaten

Mit dieser Gruppe von Anweisungen werden die Verbindungsdaten aus der Datei opsworks.js angezeigt, indem die Werte des db-Objekts einer Gruppe von app.locals-Eigenschaften zugewiesen werden, die wiederum jeweils einem der Elemente "<%= ... %>" in der Datei index.html entsprechen. Das gerenderte Dokument ersetzt die Elemente "<% = ... %>" durch die entsprechenden Eigenschaftswerte.

[3] Herstellen einer Verbindung mit der Amazon RDS-Instance

Im Beispiel wird node-mysql für den Zugriff auf die Datenbank verwendet. Zum Herstellen einer Verbindung mit der Datenbank wird im Beispiel ein connection-Objekt erstellt, indem die Verbindungsdaten an createConnection weitergeleitet werden. Anschließend wird connection.connect aufgerufen, um die Verbindung herzustellen.

[4] Abfragen der Datenbank

Nach der Verbindungsherstellung wird im Beispiel connection.query für die Abfrage der Datenbank aufgerufen. In diesem Beispiel werden einfach die Datenbanknamen des Servers abgefragt. Die query-Methode gibt ein Array von results-Objekten (eines für jede Datenbank) zurück, wobei der Datenbankname der Database-Eigenschaft zugewiesen wird. Im Beispiel werden die Namen angefügt und dem Objekt app.locals.databases, zugewiesen, mit dem die Liste auf der gerenderten HTML-Seite angezeigt wird.

In diesem Beispiel gibt es fünf Datenbanken, die nodeexampledb Datenbank, die Sie bei der Erstellung der RDS-Instance angegeben haben, und vier weitere, die automatisch von Amazon RDS erstellt werden.

[5] Abhören der eingehenden Anforderungen

Die letzte Anweisung hört die eingehenden Anforderungen auf einem bestimmten Port ab. Sie müssen keinen expliziten Portwert festlegen. Wenn Sie die App zu Ihrem Stack hinzufügen, geben Sie an, ob die Anwendung HTTP- oder HTTPS-Anfragen unterstützt. AWS OpsWorks Stacks setzt dann die PORT Umgebungsvariable auf 80 (HTTP) oder 443 (HTTPS), und Sie können diese Variable in Ihrer Anwendung verwenden.

Es ist möglich, andere Ports abzuhören, aber die integrierte Sicherheitsgruppe der App Server-Schicht von Node.js, AWS- OpsWorks -NodeJS-App-Server, lässt eingehenden Benutzerverkehr nur zu den Ports 80, 443 und 22 (SSH) zu. Um eingehenden Benutzerverkehr zu anderen Ports zuzulassen, erstellen Sie eine Sicherheitsgruppe mit entsprechenden Regeln für eingehenden Datenverkehr und weisen Sie sie der App Server-Schicht Node.js zu. Ändern Sie keine Regeln für eingehenden Datenverkehr durch Bearbeiten der integrierten Sicherheitsgruppe. Jedes Mal, wenn Sie einen Stack erstellen, überschreibt AWS OpsWorks Stacks die integrierten Sicherheitsgruppen mit den Standardeinstellungen, sodass alle von Ihnen vorgenommenen Änderungen verloren gehen.

Anmerkung

Sie können benutzerdefinierte Umgebungsvariablen mit Ihrer Anwendung verknüpfen, wenn Sie die zugehörige Anwendung erstellen oder aktualisieren. Sie können Daten auch mithilfe einer benutzerdefinierten JSON-Datei und eines benutzerdefinierten Rezepts an Ihre Anwendung übertragen. Weitere Informationen finden Sie unter Übermitteln von Daten an Anwendungen.

Erstellen des Datenbankservers und des Load Balancer

In diesem Beispiel werden Amazon RDS-Datenbankserver und Elastic Load Balancing Balancing-Load Balancer-Instances verwendet. Sie müssen jede Instance separat erstellen und dann in Ihren Stack integrieren. In diesem Abschnitt wird die Erstellung neuer Datenbank- und Load Balancer-Instances erläutert. Sie können aber auch vorhandene Instances verwenden. Wir empfehlen jedoch, dass Sie sich die Verfahren durchlesen, um sicherzustellen, dass diese Instances ordnungsgemäß konfiguriert sind.

Im Folgenden wird die Erstellung einer minimal konfigurierten RDS-DB-Instance beschrieben, die für dieses Beispiel ausreichend ist. Weitere Informationen finden Sie im Amazon RDS-Benutzerhandbuch.

So erstellen Sie die RDS-DB-Instance
  1. Öffnen Sie die -Konsole.

    Öffnen Sie die Amazon RDS-Konsole und stellen Sie die Region auf USA West (Oregon) ein. Wählen Sie im Navigationsbereich RDS Dashboard (RDS-Dashboard) und anschließend Launch DB Instance (DB-Instance starten) aus.

  2. Legen Sie die Datenbank-Engine fest.

    Wählen Sie MySQL Community Edition (MySQL Community Edition) als Datenbank-Engine aus.

  3. Lehnen Sie die Multi-AZ-Bereitstellung ab.

    Wählen Sie No, this instance... (Nein, diese Instance...) und anschließend Next (Weiter) aus. Für dieses Beispiel benötigen Sie keine Multi-AZ-Bereitstellung.

  4. Konfigurieren Sie die grundlegenden Einstellungen.

    Legen Sie auf der Seite DB Instance Details (Details für DB-Instance) die folgenden Einstellungen fest:

    • DB Instance Class (DB-Instance-Klasse): db.t2.micro (db.t2.micro)

    • Multi-AZ Deployment (Multi-AZ-Bereitstellung): No (Nein)

    • Allocated Storage (Zugewiesener Speicher): 5 GB

    • DB instance identifier (DB-Instance-Kennung): nodeexample

    • Master Username (Hauptbenutzername): opsworksuser.

    • Master Password (Hauptpasswort): Ein Passwort Ihrer Wahl

    Notieren Sie die Instance-Kennung, den Benutzernamen und das Passwort zur späteren Verwendung, akzeptieren Sie die Standardeinstellungen für die anderen Optionen und klicken Sie dann auf Next (Weiter).

  5. Konfigurieren Sie die erweiterten Einstellungen.

    Legen Sie auf der Seite Configure Advanced Settings (Erweiterte Einstellungen konfigurieren) die folgenden Einstellungen fest:

    • Datenbankname: nodeexampledb

    • DB-Sicherheitsgruppe (n): AWS- OpsWorks -DB-Master-Server

    Anmerkung

    Die OpsWorksAWS-DB-Master-Server-Sicherheitsgruppe ermöglicht nur den Instances Ihres Stacks den Zugriff auf die Datenbank. Wenn Sie direkt auf die Datenbank zugreifen möchten, fügen Sie eine zusätzliche Sicherheitsgruppe mit den entsprechenden Regeln für eingehenden Datenverkehr an die RDS-DB-Instance an. Weitere Informationen finden Sie unter Amazon RDS-Sicherheitsgruppen. Sie können auch den Zugriff steuern, indem Sie die Instance in einer VPC platzieren. Weitere Informationen finden Sie unter Ausführen eines Stacks in einer VPC.

    Notieren Sie den Datenbanknamen zur späteren Verwendung, akzeptieren Sie die Standardwerte für die anderen Einstellungen und wählen Sie dann Launch DB Instance (DB-Instance starten) aus.

Das folgende Verfahren beschreibt, wie Sie einen Elastic Load Balancing Load Balancer für dieses Beispiel erstellen. Weitere Informationen finden Sie im Elastic Load Balancing-Benutzerhandbuch.

So erstellen Sie den Load Balancer
  1. Öffnen Sie die Amazon EC2-Konsole.

    Öffnen Sie die Amazon EC2 EC2-Konsole und stellen Sie sicher, dass die Region auf US West (Oregon) eingestellt ist. Wählen Sie im Navigationsbereich Load Balancers (Load Balancer) und anschließend Create Load Balancer (Load Balancer erstellen) aus.

  2. Definieren Sie den Load Balancer.

    Geben Sie auf der Seite Define Load Balancer (Load Balancer definieren) die folgenden Einstellungen an.

    • Name (NameNode-LB

    • Create LB InsideMeine Standard-VPC

    Akzeptieren Sie die Standardeinstellungen für die anderen Optionen und klicken Sie dann auf Next (Weiter).

  3. Weisen Sie Sicherheitsgruppen zu.

    Legen Sie auf der Seite Assign Security Groups (Sicherheitsgruppen zuweisen) die folgenden Gruppen fest:

    • default VPC security group (Standard-VPC-Sicherheitsgruppe)

    • OpsWorksAWS-NodeJS-App-Server

    Wählen Sie Weiter aus. Wählen Sie auf der Seite Configure Security Settings (Sicherheitseinstellungen konfigurieren) die Option Next (Weiter) aus. Sie benötigen keinen sicheren Listener für dieses Beispiel.

  4. Konfigurieren Sie die Zustandsprüfung.

    Legen Sie auf der Seite Configure Health Check (Zustandsprüfung konfigurieren) die Option Ping Path (Ping-Pfad) auf / fest und akzeptieren Sie die Standardwerte für die anderen Einstellungen. Wählen Sie Weiter aus. Wählen Sie auf der Seite Add EC2 Instances (EC2-Instances hinzufügen) die Option Next (Weiter) aus. Wählen Sie auf der Seite „Tags hinzufügen“ die Optionen Überprüfen und erstellen aus. AWS OpsWorks Stacks übernimmt die Aufgabe, dem Load Balancer EC2-Instances hinzuzufügen, und für dieses Beispiel benötigen Sie keine Tags.

  5. Erstellen Sie den Load Balancer.

    Wählen Sie auf der Seite Review (Prüfen) die Option Create (Erstellen) aus, um den Load Balancer zu erstellen.

Erstellen des Stacks

Jetzt verfügen Sie über alle Komponenten, die zum Erstellen des Stacks erforderlich sind.

So erstellen Sie den Stack
  1. Melden Sie sich bei der Stacks-Konsole an AWS OpsWorks .

    Melden Sie sich bei der AWS OpsWorks  Stacks-Konsole an und wählen Sie Add Stack (Stack hinzufügen) aus.

  2. Erstellen Sie den Stack.

    Um einen neuen Stack zu erstellen, klicken Sie auf Chef 11 stack (Chef 11-Stack) und wählen Sie dann die folgenden Einstellungen aus.

    • NodeStack

    • RegionUSA West (Oregon)

      Sie können einen Stack in jeder AWS-Region erstellen, wir empfehlen jedoch US West (Oregon) für Tutorials.

    Wählen Sie Add Stack (Stack hinzufügen) aus. Weitere Informationen zu den verschiedenen Stack-Konfigurationseinstellungen finden Sie unter Erstellen eines neuen Stacks.

  3. Fügen Sie eine Node.js App Server-Ebene mit einem angeschlossenen Load Balancer hinzu.

    Wählen Sie auf der NodeStackSeite die Option Ebene hinzufügen aus, und geben Sie dann die folgenden Einstellungen an:

    • Layer-TypNode.js App Server

    • Elastic Load Balancer — Node-LB

    Akzeptieren Sie die Standardwerte für die anderen Einstellungen und wählen Sie dann Add Layer (Ebene hinzufügen) aus.

  4. Fügen Sie Instances zum Layer hinzu und starten Sie sie.

    Wählen Sie im Navigationsbereich die Option Instances (Instances) aus und fügen Sie dann zwei Instances wie folgt zur Rails-App-Serverebene hinzu.

    1. Wählen Sie unter Node.js App Server die Option Add instance aus.

      Legen Sie Size (Größe) auf t2.micro (t2.micro) fest, akzeptieren Sie die Standardwerte für die anderen Einstellungen und wählen Sie dann Add Instance (Instance hinzufügen) aus.

    2. Wählen Sie +Instance (+ Instance) aus und fügen Sie eine zweite t2.micro (t2.micro)-Instance in einem anderen Subnetz zur Ebene hinzu.

      Dadurch wird die Instance in einer anderen Availability Zone (AZ) platziert.

    3. Wählen Sie Add instance (Instance hinzufügen) aus.

    4. Um beide Instances zu starten, wählen Sie Start All Instances (Alle Instances Starten) aus.

    Sie haben dieser Ebene einen Elastic Load Balancing Load Balancer zugewiesen. Wenn eine Instance in den Online-Status wechselt oder diesen verlässt, registriert AWS OpsWorks Stacks die Instance automatisch beim Load Balancer oder meldet sie ab.

    Anmerkung

    Für einen Produktions-Stack empfehlen wir, dass Sie Ihre Anwendungsserver-Instances auf mehrere Availability Zones verteilen. Wenn Benutzer keine Verbindung mit einer AZ herstellen können, leitet der Load Balancer den eingehenden Datenverkehr an Instances in den verbleibenden Zonen weiter. Ihre Website funktioniert weiterhin.

  5. Registrieren Sie die RDS-DB-Instance beim Stack.

    Wählen Sie im Navigationsbereich die Option Resources (Ressourcen) aus und registrieren Sie die RDS-DB-Instance wie folgt beim Stack.

    1. Wählen Sie die Registerkarte RDS (RDS) und anschließend Show Unregistered RDS DB instances (Nicht registrierte RDS-DB-Instances anzeigen) aus.

    2. Wählen Sie die Instance nodeexampledb (nodeexampledb) aus und legen Sie dann die folgenden Einstellungen fest:

      • Benutzer — Der Master-Benutzername, den Sie bei der Erstellung der Instanz angegeben haben; in diesem Beispiel. opsworksuser.

      • Passwort — Das Master-Passwort, das Sie bei der Erstellung der Instanz angegeben haben.

    3. Wählen Sie Bei Stack registrieren, um die RDS-DB-Instance dem Stack als Amazon RDS-Service-Layer hinzuzufügen.

    Warnung

    AWS OpsWorks Stacks validiert die Benutzer - oder Passwortwerte nicht, sondern leitet sie einfach an die Anwendung weiter. Wenn Sie sie falsch eingeben, kann Ihre Anwendung keine Verbindung mit der Datenbank herstellen.

    Um die RDS-DB-Instance als Amazon RDS-Service-Layer zum Stack hinzuzufügen, wählen Sie Mit Stack registrieren.

Bereitstellen der Anwendung

Sie müssen die Anwendung in einem Remote-Repository speichern. Bei der Bereitstellung stellt AWS OpsWorks Stacks den Code und die zugehörigen Dateien aus dem Repository auf den Anwendungsserver-Instances bereit. Der Einfachheit halber verwendet dieses Beispiel ein öffentliches Amazon Simple Storage Service (Amazon S3) -Archiv als Repository. Sie können aber auch mehrere andere Repository-Typen verwenden, darunter Git und Subversion. Weitere Informationen finden Sie unter Anwendungsquelle.

So stellen Sie die Anwendung bereit
  1. Bündeln Sie die Anwendung in eine Archivdatei.

    Erstellen Sie ein .zip-Archiv des Verzeichnisses nodedb und zugehöriger Unterverzeichnisse und nennen Sie es "nodedb.zip". Sie können auch andere Archivierungsdateitypen verwenden, einschließlich gzip, bzip2 und Tarball. Beachten Sie, dass AWS OpsWorks Stacks keine unkomprimierten Tarballs unterstützt. Weitere Informationen finden Sie unter Anwendungsquelle.

  2. Laden Sie die Archivdatei auf Amazon S3 hoch.

    Laden nodedb.zip Sie in einen Amazon S3 S3-Bucket hoch, machen Sie die Datei öffentlich und kopieren Sie die URL der Datei zur späteren Verwendung. Weitere Informationen zum Erstellen von Buckets und Hochladen von Dateien finden Sie unter Erste Schritte mit Amazon Simple Storage Service

    Anmerkung

    AWS OpsWorks Stacks können auch private Dateien aus einem Amazon S3 S3-Bucket bereitstellen, aber der Einfachheit halber verwendet dieses Beispiel eine öffentliche Datei. Weitere Informationen finden Sie unter Anwendungsquelle.

  3. Erstellen Sie eine AWS OpsWorks Stacks-App.

    Kehren Sie zur AWS OpsWorks Stacks-Konsole zurück, wählen Sie im Navigationsbereich Apps und dann App hinzufügen aus. Nehmen Sie folgende Einstellungen vor:

    • Name (NameNodeDB.

      Bei dieser Zeichenfolge handelt es sich um den Anzeigenamen der Anwendung. Für die meisten Zwecke benötigen Sie den Kurznamen der App, den AWS OpsWorks Stacks aus dem Anzeigenamen generiert, indem alle Zeichen in Kleinbuchstaben umgewandelt und Satzzeichen entfernt werden. In diesem Beispiel lautet die Kurzbezeichnung nodedb. Um die Kurzbezeichnung einer Anwendung zu überprüfen, wählen Sie die Anwendung nach dem Erstellen auf der Seite Apps (Anwendungen) aus, um ihre Detailseite anzuzeigen.

    • TypNode.js.

    • DatenquellentypRDS.

    • Datenbank-Instance — Wählen Sie die Amazon RDS-DB-Instance aus, die Sie zuvor registriert haben.

    • Database name: Geben Sie den für dieses Beispiel zuvor erstellten Datenbanknamen nodeexampledb an.

    • Repository-TypHttp Archive.

      Sie müssen diesen Repository-Typ für öffentliche Amazon S3 S3-Dateien verwenden. Der Typ S3 Archive wird nur für private Archive verwendet.

    • Repository-URL — Die Amazon S3-URL der Archivdatei.

    Verwenden Sie die Standardwerte für die übrigen Einstellungen und klicken Sie anschließend auf Add App (App hinzufügen), um die Anwendung zu erstellen.

  4. Stellen Sie die Anwendung bereit.

    Öffnen Sie die Seite Apps (Anwendungen) und wählen Sie in der Spalte Actions (Aktionen) der NodeDB-Anwendung die Option deploy (Bereitstellen) aus. Wählen Sie dann Deploy, um die App auf den Server-Instances bereitzustellen. AWS OpsWorks Stacks führt die Deploy-Rezepte auf jeder Instanz aus, wodurch die Anwendung aus dem Repository heruntergeladen und der Server neu gestartet wird. Wenn jede Instance ein grünes Häkchen aufweist und der Status als successful (Erfolgreich) angegeben ist, ist die Bereitstellung abgeschlossen und die Anwendung kann nun Anforderungen verarbeiten.

    Anmerkung

    Wenn die Bereitstellung fehlschlägt, wählen Sie in der Spalte Log (Protokoll) die Option show (Anzeigen) aus, um das Chef-Protokoll der Bereitstellung anzuzeigen. Die Fehlerinformationen werden unten angegeben.

  5. Öffnen Sie die Anwendung .

    Wählen Sie zum Öffnen der Anwendung Layers (Ebenen) aus. Wählen Sie den Load Balancer und dann dessen DNS-Namen aus, der eine HTTP-Anforderung an den Load Balancer sendet. Dies sollte etwa wie folgt aussehen.

Anmerkung

AWS OpsWorks Stacks stellt Apps während der Einrichtung automatisch auf neuen Instanzen bereit. Die manuelle Bereitstellung ist nur für Online-Instances erforderlich. Weitere Informationen finden Sie unter Bereitstellen von Anwendungen. Eine allgemeine Beschreibung der Bereitstellung, einschließlich einiger komplexer Bereitstellungsstrategien, finden Sie unter Verwalten und Bereitstellen von Anwendungen und Rezeptbüchern.

Wie geht es weiter?

Wichtig

Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf AWS re:POST oder über den AWS Premium-Support.

In dieser schrittweisen Anleitungen wurden Sie durch die Grundlagen der Einrichtung eines einfachen Node.js-Anwendungsserver-Stacks geführt. Im Folgenden finden Sie einige Vorschläge für die nächsten Schritte.

Überprüfen der integrierten Node.js-Rezeptbücher

Wenn Sie wissen möchten, wie die Instanzen im Detail konfiguriert sind, schauen Sie sich das integrierte Kochbuch der Ebene, opsworks_nodejs, an, das die Rezepte und zugehörigen Dateien enthält, die AWS OpsWorks Stacks zur Installation und Konfiguration der Software verwendet, sowie das integrierte Deploy-Cookbook, das die Rezepte enthält, die Stacks zur Bereitstellung der Apps verwendet. AWS OpsWorks

Anpassen der Serverkonfiguration

Der Beispiel-Stack ist recht einfach. Für die Produktionsnutzung sollten Sie den Stack anpassen. Weitere Informationen finden Sie unter Stacks anpassen AWS OpsWorks.

Hinzufügen der SSL-Unterstützung

Sie können die SSL-Unterstützung für Ihre App aktivieren und AWS OpsWorks Stacks bei der Erstellung der App die entsprechenden Zertifikate zur Verfügung stellen. AWS OpsWorks Stacks installiert dann die Zertifikate im entsprechenden Verzeichnis. Weitere Informationen finden Sie unter Verwenden von SSL.

Hinzufügen von In-Memory-Daten-Caching

Produktions-Websites verbessern häufig die Leistung durch Zwischenspeicherung von Daten in einem Hauptspeicher-basierten Key-Value Store, z. B. Redis oder Memcache. Sie können beide mit einem AWS OpsWorks Stacks-Stack verwenden. Weitere Informationen finden Sie unter ElastiCache Redis und Memcached.

Verwenden einer komplexeren Bereitstellungsstrategie

Im Beispiel wird eine einfache Anwendungsbereitstellungsstrategie verwendet, mit der die Aktualisierung für alle Instances gleichzeitig bereitgestellt wird. Diese Methode ist einfach und schnell, es darf jedoch kein Fehler unterlaufen. Wenn die Bereitstellung fehlschlägt oder bei der Aktualisierung Probleme auftreten, könnte sich dies auf alle Instances in Ihrem Produktions-Stack auswirken. Möglicherweise wird Ihre Website unterbrochen oder deaktiviert, bis Sie das Problem beheben können. Weitere Informationen zu Bereitstellungsstrategien finden Sie unter Verwalten und Bereitstellen von Anwendungen und Rezeptbüchern.

Erweitern Sie die App-Server-Ebene von Node.js

Sie können die Ebene auf unterschiedliche Weise erweitern. Sie können beispielsweise Rezepte zum Ausführen von Skripts auf den Instances oder Chef-Bereitstellungs-Hooks zum Anpassen der Anwendungsbereitstellung implementieren. Weitere Informationen finden Sie unter Erweitern eines Layers.

Definieren der Umgebungsvariablen

Sie können Daten an Ihre Anwendung übertragen, indem Sie die Umgebungsvariablen für die zugehörige Anwendung definieren. Wenn Sie die App bereitstellen, exportiert AWS OpsWorks Stacks diese Variablen, sodass Sie von Ihrer App aus darauf zugreifen können. Weitere Informationen finden Sie unter Verwenden von -Umgebungsvariablen.