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

Das Tool AWS OpsWorks Stacks Der 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 AWS Support Team ein AWS Re:post oder durch 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 ein grundlegendes Verständnis der Verwendung AWS OpsWorks Stapel.

    Wenn Sie neu sind AWS OpsWorks Stacks oder toAWS, lernen Sie die Grundlagen, indem Sie das Einführungs-Tutorial unter abschließen. 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 Stapel in der AWS Region erstellt, die Sie für dieses Beispiel verwenden möchten.

    Wenn Sie den ersten Stapel in einer Region erstellen, AWS OpsWorks Stacks erstellt für jeden Layer-Typ eine Amazon Elastic Compute Cloud (AmazonEC2) -Sicherheitsgruppe. Sie benötigen diese Sicherheitsgruppen, um die Amazon RDS Database (DB) -Instance zu erstellen. Wenn Sie neu bei sind AWS OpsWorks Stacks, wir empfehlen, dass Sie für dieses Beispiel dieselbe Region verwenden, die Sie verwendet haben, als Sie dem Tutorial unter gefolgt sind. 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 Stapel erstellt haben, AWS OpsWorks Stacks fügt der Region automatisch eine Reihe von Sicherheitsgruppen hinzu.

  • Sie werden Ihren Stack standardmäßig VPC erstellen.

    Sie können EC2 -Classic für diese Komplettlösung verwenden, einige Details werden sich jedoch geringfügig unterscheiden. Mit EC2 -Classic geben Sie beispielsweise die Availability Zone (AZ) einer Instance statt ihres Subnetzes an.

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

    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 AWS OpsWorks Stapelt Vollzugriffsberechtigungen und verwendet diese Anmeldeinformationen mit AWS OpsWorks Stapel. 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 RDS Amazon-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.

  • ejsverweist auf das EJSPaket, das die Anwendung verwendet, um Text in eine HTML Layoutdatei einzufügen.

  • mysqlverweist auf das Paket node-mysql, das die Anwendung verwendet, um eine Verbindung zur RDS Instanz herzustellen.

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 Layout-Datei ein einfaches HTML Dokument, das einige Daten von Amazon anzeigtRDS. 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

Mit AWS OpsWorks Stacks muss die Hauptcodedatei einer Anwendung Node.js benannt sein 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, wenn Sie eine Datenbankinstanz an eine App anhängen, AWS OpsWorks Stacks fügt die Verbindungsdaten in eine Datei mit dem Namen einopsworks.js, die der folgenden ähnelt:

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. Jedoch AWS OpsWorks Stacks fügt einen Symlink opsworks.js in das Stammverzeichnis der Anwendung ein, sodass Sie das Objekt einbinden können, indem Sie nur. 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] Connect zur RDS Amazon-Instance her

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 verkettet und ihnen zugewiesen, app.locals.databases, wodurch die Liste auf der gerenderten Seite angezeigt wird. HTML

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 erstellt werdenRDS.

[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 Anfragen unterstützt HTTP oder HTTPS Anfragen stellt. 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, AWSOpsWorks-nodeJS-app-Server, lässt eingehenden Benutzerverkehr nur zu den Ports 80, 443 und 22 zu (). SSH 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-Ebene Node.js zu. Ändern Sie keine Regeln für eingehenden Datenverkehr durch Bearbeiten der integrierten Sicherheitsgruppe. Jedes Mal, wenn Sie einen Stack erstellen, AWS OpsWorks Stacks überschreibt 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 benutzerdefinierter JSON und benutzerdefinierter Rezepte an Ihre Anwendung übergeben. Weitere Informationen finden Sie unter Übermitteln von Daten an Anwendungen.

Erstellen des Datenbankservers und des Load Balancer

In diesem Beispiel werden RDS Amazon-Datenbankserver- und Elastic Load Balancing 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 beschrieben, wie Sie eine minimal konfigurierte RDS DB-Instance erstellen, die für dieses Beispiel ausreichend ist. Weitere Informationen finden Sie im RDSAmazon-Benutzerhandbuch.

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

    Öffnen Sie die RDSAmazon-Konsole und stellen Sie die Region auf USA West (Oregon) ein. Wählen Sie im Navigationsbereich RDSDashboard und dann Launch DB Instance aus.

  2. Legen Sie die Datenbank-Engine fest.

    Wählen Sie My SQL 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 Sicherheitsgruppe AWS- OpsWorks -DB-Master-Server ermöglicht nur den Instances Ihres Stacks den Zugriff auf die Datenbank. Wenn Sie direkt auf die Datenbank zugreifen möchten, fügen Sie der RDS DB-Instance eine zusätzliche Sicherheitsgruppe mit entsprechenden Regeln für eingehende Zugriffe hinzu. Weitere Informationen finden Sie unter Amazon RDS Security Groups. Sie können den Zugriff auch kontrollieren, indem Sie die Instance in eine einfügenVPC. Weitere Informationen finden Sie unter Einen Stack ausführen in einem 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 EC2 Amazon-Konsole.

    Öffnen Sie die EC2Amazon-Konsole und stellen Sie sicher, dass die Region auf USA 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

    • LB Inside erstellenMein 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:

    • VPCStandard-Sicherheitsgruppe

    • AWS- OpsWorks -NodeJS-App-Server

    Wählen Sie Weiter. 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. Wählen Sie auf der Seite „Instanzen hinzufügen“ die Option Weiter aus. EC2 Wählen Sie auf der Seite Add Tags (Tags hinzufügen) die Option Review and Create (Prü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 an bei AWS OpsWorks Stacks-Konsole.

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

  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 einen Node.js App Server-Layer 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 den Online-Status erreicht oder verlässt, AWS OpsWorks Stacks registriert oder deregistriert die Instance automatisch beim Load Balancer.

    Anmerkung

    Für einen Produktionsstapel empfehlen wir, dass Sie Ihre Anwendungsserver-Instanzen auf mehrere verteilen. AZs 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 Resources aus und registrieren Sie die RDS DB-Instance wie folgt beim Stack.

    1. Wählen Sie die RDSRegisterkarte und wählen Sie dann 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 Instance 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 als RDSAmazon-Serviceschicht zum Stack 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 RDSAmazon-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. Wenn Sie es bereitstellen, AWS OpsWorks Stacks stellt den Code und die zugehörigen Dateien aus dem Repository auf den Anwendungsserverinstanzen 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 unterstützt keine unkomprimierten Tarballs. 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 Dateien URL für die spätere 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ück zur AWS OpsWorks Wählen Sie in der Stacks-Konsole 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 AWS OpsWorks Stacks generiert anhand des Anzeigenamens, 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 Archivdatei ist Amazon S3URL.

    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 (Bereitstellen) aus, um die Anwendung für die Server-Instances bereitzustellen. AWS OpsWorks Stacks führt die Deploy-Rezepte auf jeder Instance 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 .

    Um die Anwendung zu öffnen, wählen Sie Layers, wählen Sie den Load Balancer und dann den DNS Namen des Load Balancers aus, der eine HTTP Anfrage an den Load Balancer sendet. Dies sollte etwa wie folgt aussehen.

    AWS OpsWorks Node.js example showing RDS endpoint, user credentials, and database details.
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

Das Tool AWS OpsWorks Stacks Der Service hat am 26. Mai 2024 das Ende seiner Nutzungsdauer 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 AWS Support Team ein AWS Re:post oder durch 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, finden Sie im integrierten Kochbuch des Layers, opsworks_nodejs, das die Rezepte und zugehörigen Dateien enthält AWS OpsWorks Stacks verwendet, um die Software zu installieren und zu konfigurieren, und das integrierte Deploy-Cookbook, das die Rezepte enthält AWS OpsWorks Stacks verwendet, um die Apps bereitzustellen.

Anpassen der Serverkonfiguration

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

Hinzufügen von SSL-Unterstützung

Sie können den SSL Support für Ihre App aktivieren und Folgendes bereitstellen AWS OpsWorks Stapel mit den entsprechenden Zertifikaten, wenn Sie die App erstellen. 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 verwenden AWS OpsWorks Stapel stapeln sich. Weitere Informationen erhalten 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, AWS OpsWorks Stacks exportiert diese Variablen, sodass Sie von Ihrer App aus darauf zugreifen können. Weitere Informationen finden Sie unter Verwenden von -Umgebungsvariablen.