

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
<a name="gettingstarted-node"></a>

**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](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/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:
+ Eine [Node.js App Server-Ebene mit zwei](workinglayers-node.md) Instanzen
+ Ein [Elastic Load Balancing Load Balancer](layers-elb.md) zur Verteilung des Datenverkehrs auf die Anwendungsserver-Instances
+ Eine [Service-Schicht des Amazon Relational Database Service (Amazon RDS)](#gettingstarted-node-next), die eine Backend-Datenbank bereitstellt

**Topics**
+ [Voraussetzungen](#gettingstarted-node-start)
+ [Implementieren der Anwendung](#gettingstarted-node-app)
+ [Erstellen des Datenbankservers und des Load Balancer](#gettingstarted-node-create-db)
+ [Erstellen des Stacks](#gettingstarted-node-stack)
+ [Bereitstellen der Anwendung](#gettingstarted-node-deploy)
+ [Wie geht es weiter?](#gettingstarted-node-next)

## Voraussetzungen
<a name="gettingstarted-node-start"></a>

In dieser schrittweisen Anleitung wird von Folgendem ausgegangen:
+ Sie haben ein AWS-Konto und Grundkenntnisse in der Verwendung von OpsWorks Stacks.

  Wenn Sie neu bei OpsWorks Stacks oder AWS sind, lernen Sie die Grundlagen, indem Sie das Einführungs-Tutorial unter absolvieren. [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md)
+ 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](http://chimera.labs.oreilly.com/books/1234000001808/index.html).
+ 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 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 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](gettingstarted.md) 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 OpsWorks Stacks der Region automatisch eine Reihe von Sicherheitsgruppen hinzu. 
+ Sie erstellen Ihren Stack in einer [Standard-VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html).

  Sie können EC2 -Classic für diese exemplarische Vorgehensweise verwenden, einige Details unterscheiden sich jedoch geringfügig. Mit EC2 -Classic geben Sie beispielsweise die Availability Zone (AZ) einer Instance statt ihres Subnetzes an.
+ Ihr IAM-Benutzer hat Vollzugriffsberechtigungen für Stacks. 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 OpsWorks Stacks und verwenden Sie diese Anmeldeinformationen mit Stacks. OpsWorks Weitere Informationen finden Sie unter [Erstellen eines -Administratorbenutzers](opsworks-security-users-manage-admin.md).

## Implementieren der Anwendung
<a name="gettingstarted-node-app"></a>

In dieser exemplarischen Vorgehensweise wird eine einfache [Express-Anwendung](http://expressjs.com/) 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. 

**Topics**
+ [Paketbeschreibung](#w2ab1c14c71b9c11c13b8)
+ [Layoutdatei](#w2ab1c14c71b9c11c13c10)
+ [Codedatei](#w2ab1c14c71b9c11c13c12)

### Paketbeschreibung
<a name="w2ab1c14c71b9c11c13b8"></a>

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](http://expressjs.com/)-Paket.
+ `ejs` verweist auf das [EJS](http://www.embeddedjs.com/)-Paket, das die Anwendung zum Einfügen von Text in eine HTML-Layoutdatei verwendet.
+ `mysql` verweist auf das [node-mysql](https://github.com/felixge/node-mysql)-Paket, das die Anwendung zur Verbindungsherstellung mit der RDS-Instance verwendet.

Weitere Informationen zu Paketbeschreibungsdateien finden Sie auf der Website [package.json](https://docs.npmjs.com/cli/v9/configuring-npm/package-json). 

### Layoutdatei
<a name="w2ab1c14c71b9c11c13c10"></a>

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
<a name="w2ab1c14c71b9c11c13c12"></a>

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

**Wichtig**  
Bei 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 OpsWorks Stacks beim Anhängen einer Datenbankinstanz an eine App die Verbindungsdaten in einer Datei mit dem Namen`opsworks.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`. OpsWorks Stacks fügt jedoch einen symbolischen Link `opsworks.js` in das Stammverzeichnis der Anwendung ein, sodass Sie das Objekt einbeziehen 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] 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. 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) mit entsprechenden Regeln für eingehenden Datenverkehr und weisen Sie sie der App Server-Schicht Node.js zu.](workinglayers-basics-edit.md#workinglayers-basics-edit-security) Ändern Sie keine Regeln für eingehenden Datenverkehr durch Bearbeiten der integrierten Sicherheitsgruppe. Jedes Mal, wenn Sie einen Stack erstellen, überschreibt 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](workingapps-creating.md#workingapps-creating-environment) oder [aktualisieren](workingapps-editing.md). 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](apps-data.md).

## Erstellen des Datenbankservers und des Load Balancer
<a name="gettingstarted-node-create-db"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html).

**So erstellen Sie die RDS-DB-Instance**

1. 

**Öffnen Sie die -Konsole.**

   Öffnen Sie die [Amazon RDS-Konsole](https://console.aws.amazon.com/rds/) 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.

1. 

**Legen Sie die Datenbank-Engine fest.**

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

1. 

**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.

1. 

**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)**.

1. 

**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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html). 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](workingstacks-vpc.md).

   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](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elastic-load-balancing.html).

**So erstellen Sie den Load Balancer**

1. 

**Öffnen Sie die EC2 Amazon-Konsole.**

   Öffnen Sie die [ EC2 Amazon-Konsole](https://console.aws.amazon.com/ec2/) 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.

1. 

**Definieren Sie den Load Balancer.**

   Geben Sie auf der Seite **Define Load Balancer (Load Balancer definieren)** die folgenden Einstellungen an.
   + **Name (Name** – **Node-LB**
   + **Create LB Inside** — **Meine Standard-VPC**

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

1. 

**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.

1. 

**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 Instances die Option Next aus. EC2 **** Wählen Sie auf der Seite „**Tags hinzufügen**“ die Option **Überprüfen und erstellen** aus. OpsWorks Stacks übernimmt die Aufgabe, dem Load Balancer EC2 Instances hinzuzufügen, und für dieses Beispiel benötigen Sie keine Tags.

1. 

**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
<a name="gettingstarted-node-stack"></a>

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 OpsWorks Stacks-Konsole an.**

   Melden Sie sich bei der [OpsWorks  Stacks-Konsole](https://console.aws.amazon.com/opsworks/) an und wählen Sie **Add Stack (Stack hinzufügen)** aus.

1. 

**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**
   + **Region** — **USA 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](workingstacks-creating.md).

1. 

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

   Wählen Sie auf der **NodeStack**Seite die Option **Ebene hinzufügen** aus, und geben Sie dann die folgenden Einstellungen an:
   + **Layer-Typ** — **Node.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. 

1. 

**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.

   1. Wählen Sie **\$1Instance (\$1 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.

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

   1. 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 OpsWorks Stacks die Instance automatisch beim Load Balancer oder meldet sie ab.
**Anmerkung**  
Für einen Produktions-Stack 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.

1. 

**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.

   1. 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.

   1. Wählen Sie **Bei Stack registrieren**, um die RDS-DB-Instance dem Stack als [Amazon RDS-Service-Layer](workinglayers-db-rds.md) hinzuzufügen.
**Warnung**  
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](workinglayers-db-rds.md) zum Stack hinzuzufügen, wählen Sie **Mit Stack registrieren**. 

## Bereitstellen der Anwendung
<a name="gettingstarted-node-deploy"></a>

Sie müssen die Anwendung in einem Remote-Repository speichern. Wenn Sie sie bereitstellen, stellt 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](workingapps-creating.md#workingapps-creating-source).

**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 OpsWorks Stacks keine unkomprimierten Tarballs unterstützt. Weitere Informationen finden Sie unter [Anwendungsquelle](workingapps-creating.md#workingapps-creating-source).

1. 

**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](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html)
**Anmerkung**  
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](workingapps-creating.md#workingapps-creating-source).

1. 

**Erstellen Sie eine OpsWorks Stacks-App.**

   Kehren Sie zur OpsWorks Stacks-Konsole zurück, wählen Sie im Navigationsbereich **Apps** und dann **App hinzufügen** aus. Nehmen Sie folgende Einstellungen vor:
   + **Name (Name** – `NodeDB`.

     Bei dieser Zeichenfolge handelt es sich um den Anzeigenamen der Anwendung. Für die meisten Zwecke benötigen Sie den Kurznamen der App, den 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.
   + **Typ** – `Node.js`.
   + **Datenquellentyp** – `RDS`.
   + **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-Typ** – `Http 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.

1. 

**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. 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.

1. 

**Ö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.  
![\[AWS OpsWorks Node.js example showing RDS endpoint, user credentials, and database details.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/node_walkthrough.png)

**Anmerkung**  
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](workingapps-deploying.md). Eine allgemeine Beschreibung der Bereitstellung, einschließlich einiger komplexer Bereitstellungsstrategien, finden Sie unter [Verwalten und Bereitstellen von Anwendungen und Rezeptbüchern](best-deploy.md).

## Wie geht es weiter?
<a name="gettingstarted-node-next"></a>

**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](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/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\$1nodejs](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/opsworks_nodejs), an, das die Rezepte und zugehörigen Dateien enthält, die OpsWorks Stacks zur Installation und Konfiguration der Software verwendet, sowie das integrierte [Deploy-Cookbook, das die Rezepte enthält, die Stacks zur Bereitstellung](https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/deploy) der Apps verwendet. 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 OpsWorks](customizing.md).

**Hinzufügen der SSL-Unterstützung**  
Sie können die SSL-Unterstützung für Ihre App aktivieren und OpsWorks Stacks bei der Erstellung der App die entsprechenden Zertifikate zur Verfügung stellen. OpsWorks Stacks installiert dann die Zertifikate im entsprechenden Verzeichnis. Weitere Informationen finden Sie unter [Verwenden von SSL](workingsecurity-ssl.md).

**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 OpsWorks Stacks-Stack verwenden. Weitere Informationen erhalten Sie unter [ElastiCache Redis](other-services-redis.md) und [Memcached](workinglayers-mem.md).

**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](best-deploy.md).

**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](workingcookbook-extend.md).

**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 OpsWorks Stacks diese Variablen, sodass Sie von Ihrer App aus darauf zugreifen können. Weitere Informationen finden Sie unter [Verwenden von -Umgebungsvariablen](apps-environment-vars.md).