

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.

# Verwenden eines Backend-Datenspeichers
<a name="customizing-rds"></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).

Anwendungsserver-Stacks enthalten in der Regel einen Datenbankserver zur Bereitstellung eines Back-End-Datenspeichers. OpsWorks Stacks bietet integrierte Unterstützung für MySQL-Server über die [MySQL-Ebene](workinglayers-db-mysql.md) und für verschiedene Arten von Datenbankservern über die [Amazon Relational Database Service (Amazon RDS)](workinglayers-db-rds.md) -Schicht. Sie können einen Stack jedoch problemlos so anpassen, dass die Anwendungsserver andere Datenbankserver wie Amazon DynamoDB oder MongoDB verwenden. Dieses Thema beschreibt das grundlegende Vorgehen, um einen Anwendungsserver mit einem AWS-Datenbankserver zu verbinden. Der Stack und die Anwendung aus [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md) werden verwendet, um zu zeigen, wie ein PHP-Anwendungsserver manuell mit einer RDS-Datenbank verbunden werden kann. Obwohl das Beispiel auf einem Linux-Stack basiert, gelten die grundlegenden Prinzipien auch für Windows-Stacks. Ein Beispiel für die Integration eines MongoDB-Datenbankservers in einen Stack finden Sie unter [Deploying MongoDB with](https://aws.amazon.com/blogs/devops/deploying-mongodb-with-opsworks/). OpsWorks

**Anmerkung**  
In diesem Thema wird Amazon RDS als praktisches Beispiel verwendet. Wenn Sie jedoch eine Amazon RDS-Datenbank mit Ihrem Stack verwenden möchten, ist es viel einfacher, eine Amazon RDS-Schicht zu verwenden. 

**Topics**
+ [So richten Sie eine Datenbankverbindung ein](customizing-rds-setup.md)
+ [So Connect eine Anwendungsserver-Instance mit Amazon RDS](customizing-rds-connect.md)

# So richten Sie eine Datenbankverbindung ein
<a name="customizing-rds-setup"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Service 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).

Sie richten die Verbindung zwischen einem Anwendungsserver und seiner Backend-Datenbank ein, indem Sie ein benutzerdefiniertes Rezept verwenden. Das Rezept konfiguriert den Anwendungsserver wie benötigt, normalerweise es eine Konfigurationsdatei erstellt. Das Rezept bezieht die Verbindungsdaten wie den Host- und Datenbanknamen aus einer Reihe von Attributen in der [Stack-Konfiguration und den Bereitstellungsattributen](workingcookbook-json.md), die OpsWorks Stacks auf jeder Instanz installiert.

Schritt 2 von [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md) basiert beispielsweise auf einem Stack MyStack mit zwei Ebenen, PHP App Server und MySQL, mit jeweils einer Instanz. Sie stellen eine App namens Simple PHPApp auf der PHP App Server-Instanz bereit, die die Datenbank auf der MySQL-Instanz als Back-End-Datenspeicher verwendet. Wenn Sie die Anwendung bereitstellen, installiert OpsWorks Stacks Stack-Konfigurations- und Bereitstellungsattribute, die die Informationen zur Datenbankverbindung enthalten. Das folgende Beispiel zeigt die Attribute der Datenbankverbindung, dargestellt als JSON:

```
{
  ...
  "deploy": {
    "simplephpapp": {
      ...
      "database": {
        "reconnect": true,
        "password": null,
        "username": "root",
        "host": null,
        "database": "simplephpapp"
        ...
      },
      ...
    }
  }
}
```

Die Attributwerte werden von OpsWorks Stacks bereitgestellt und entweder generiert oder basieren auf vom Benutzer bereitgestellten Informationen.

Damit Simple PHPApp auf den Datenspeicher zugreifen kann, müssen Sie die Verbindung zwischen dem PHP-Anwendungsserver und der MySQL-Datenbank einrichten, indem Sie dem `appsetup.rb` [Deploy-Lifecycle-Ereignis](workingcookbook-events.md) der PHP App Server-Ebene ein benutzerdefiniertes Rezept zuweisen. Wenn Sie Simple bereitstellenPHPApp, wird OpsWorks Stacks ausgeführt`appsetup.rb`, wodurch eine Konfigurationsdatei mit dem Namen erstellt wird`db-connect.php`, der die Verbindung herstellt, wie im folgenden Auszug gezeigt.

```
node[:deploy].each do |app_name, deploy|
  ...
  template "#{deploy[:deploy_to]}/current/db-connect.php" do
    source "db-connect.php.erb"
    mode 0660
    group deploy[:group]

    if platform?("ubuntu")
      owner "www-data"
    elsif platform?("amazon")   
      owner "apache"
    end

    variables(
      :host =>     (deploy[:database][:host] rescue nil),
      :user =>     (deploy[:database][:username] rescue nil),
      :password => (deploy[:database][:password] rescue nil),
      :db =>       (deploy[:database][:database] rescue nil),
      :table =>    (node[:phpapp][:dbtable] rescue nil)
    )
    ...
  end
end
```

[Den Variablen, die die Verbindung charakterisieren — `host``user`, usw. — werden die entsprechenden Werte aus den Deploy-JSON-Attributen zugewiesen.](workingcookbook-json.md#workingcookbook-json-deploy) `[:deploy][:app_name][:database]` Der Einfachheit halber wird in diesem Beispiel davon ausgegangen, dass Sie bereits eine Tabelle mit dem Namen `urler` erstellt haben, sodass der Tabellenname durch `[:phpapp][:dbtable]` in der Attributdatei des Rezeptbuchs repräsentiert wird.

Dieses Rezept kann den PHP-Anwendungsserver tatsächlich mit jedem MySQL-Datenbankserver verbinden, nicht nur mit Mitgliedern einer MySQL-Schicht. Um einen anderen MySQL-Server zu verwenden, müssen Sie nur die `[:database]` Attribute auf Werte setzen, die für Ihren Server geeignet sind, was Sie mit [benutzerdefiniertem JSON](workingstacks-json.md) tun können. OpsWorks Stacks integriert diese Attribute und Werte dann in die Stack-Konfiguration und die Bereitstellungsattribute und `appsetup.rb` verwendet sie, um die Vorlage zu erstellen, mit der die Verbindung eingerichtet wird. Weitere Informationen zum Überschreiben der Stack-Konfiguration und der Bereitstellungs-JSON-Datei finden Sie unter [Überschreiben der Attribute](workingcookbook-attributes.md).

# So Connect eine Anwendungsserver-Instance mit Amazon RDS
<a name="customizing-rds-connect"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Service 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 Abschnitt wird beschrieben, wie Sie das Formular so anpassen können MyStack [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md), dass der PHP-Anwendungsserver eine Verbindung zu einer RDS-Instance herstellt.

**Topics**
+ [Eine Amazon RDS MySQL-Datenbank erstellen](customizing-rds-connect-create.md)
+ [Anpassen des Stacks für die Verbindung mit der RDS-Datenbank](customizing-rds-connect-customize.md)

# Eine Amazon RDS MySQL-Datenbank erstellen
<a name="customizing-rds-connect-create"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Service 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).

Jetzt sind Sie bereit, mit dem Launch DB Instance Wizard der Amazon RDS-Konsole eine RDS-Datenbank für das Beispiel zu erstellen. Das folgende Verfahren ist eine kurze Zusammenfassung der wichtigsten Details. Eine detaillierte Beschreibung, wie Sie eine Datenbank erstellen, finden Sie unter [Erste Schritte mit Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.html).

**Um die Amazon RDS-Datenbank zu erstellen**

1. Wenn Sie zum ersten Mal eine RDS-Datenbank erstellen, klicken Sie auf **Get Started Now (Legen Sie gleich los)**. Klicken Sie im Navigationsbereich auf **RDS Dashboard (RDS-Dashboard)** und dann auf **Launch a DB Instance (DB-Instance starten)**.

1. Wählen Sie die **MySQL Community Edition** als DB-Instance aus.

1. Wählen Sie für **Do you plan to use this database for production purposes? (Möchten Sie diese Datenbank für Produktionszwecke verwenden?)** die Option **No, this instance... (Nein, diese Instance...)** aus, das ist für dieses Beispiel ausreichend. Für Produktionszwecke wäre die Option **Yes, use Multi-AZ Deployment... (Ja, Multi-AZ-Bereitstellung verwenden...)** wahrscheinlich besser geeignet. Klicken Sie auf **Next Step (Nächster Schritt)**.

1. Legen Sie auf der Seite **Specify DB Details (DB-Details angeben)** 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)**: **rdsexample**
   + **Master Username (Hauptbenutzername)**: **opsworksuser**.
   + **Master Password (Hauptpasswort)**: Geben Sie ein geeignetes Passwort ein und notieren Sie es für eine spätere Nutzung.

   Akzeptieren Sie die Standardeinstellungen für die anderen Optionen und klicken Sie dann auf **Next Step (Nächster Schritt)**.

1. Legen Sie auf der Seite **Configure Advanced Settings (Erweiterte Einstellungen konfigurieren)** die folgenden Einstellungen fest:
   + Wählen Sie im Abschnitt **Network & Security (Netzwerk und Sicherheit)** für **VPC Security Group(s) (VPC-Sicherheitsgruppe(n))** die Option **phpsecgroup (VPC)** aus.
   + Geben Sie im Abschnitt **Database Options (Datenbankoptionen)** für **Database Name (Datenbankname)** **rdsexampledb** ein.
   + Legen Sie im Abschnitt **Backup** die **Backup Retention Period (Aufbewahrungszeitraum für Backups)** für die Zwecke dieser Anleitung auf **0** fest.

   Akzeptieren Sie die Standardeinstellungen für die anderen Optionen und klicken Sie dann auf **Launch DB Instance (DB-Instance starten)**.

1. Wählen Sie **View Your DB Instances (DB-Instances anzeigen)** aus, um eine Liste der DB-Instances anzuzeigen.

1. Wählen Sie die **rdsexample**-Instance in der Liste aus und klicken Sie auf den Pfeil, sodass der Instance-Endpunkt und andere Details angezeigt werden. Notieren Sie den Endpunkt für die spätere Verwendung. Dies sieht etwa so aus: `rdsexample.c6c8mntzhgv0.us-west-2.rds.amazonaws.com:3306`. Notieren Sie sich nur den DNS-Namen. Die Portnummer werden Sie nicht benötigen.

1. Verwenden Sie ein Tool wie MySQL Workbench zum Erstellen einer Tabelle mit dem Namen `urler` in der `rdsexampledb`-Datenbank, indem Sie folgenden SQL-Befehl benutzen:

   ```
   CREATE TABLE urler(id INT UNSIGNED NOT NULL AUTO_INCREMENT,author VARCHAR(63) NOT NULL,message TEXT,PRIMARY KEY (id))
   ```

# Anpassen des Stacks für die Verbindung mit der RDS-Datenbank
<a name="customizing-rds-connect-customize"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Service 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).

Sobald Sie [eine RDS-Instanz erstellt](customizing-rds-connect-create.md) haben, die als Back-End-Datenbank für den PHP-Anwendungsserver verwendet werden soll, können Sie diese anpassen. MyStack [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md)

**Verbinden des PHP-Anwendungsservers mit einer RDS-Datenbank**

1. Öffnen Sie die OpsWorks Stacks-Konsole und erstellen Sie einen Stack mit einer PHP-App-Serverebene, die eine Instanz enthält, und stellen Sie Simple bereitPHPApp, wie unter beschrieben. [Erste Schritte mit Chef 11 Linux-Stacks](gettingstarted.md) Dieser Stack verwendet Version 1 von SimplePHPApp, die keine Datenbankverbindung verwendet. 

1. [Aktualisieren Sie die Stack-Konfiguration](workingstacks-edit.md) für die Nutzung der benutzerdefinierten Rezeptbücher, die das `appsetup.rb`-Rezept und verwandte Vorlage- und Attributdateien enthalten.

   1. Legen Sie **Use custom Chef Cookbooks (Benutzerdefinierte Chef-Rezeptbücher verwenden)** auf **Yes (Ja)** fest,

   1. Legen Sie **Repository type (Repository-Typ)** auf **Git** und **Repository URL (Repository-URL)** auf `git://github.com/amazonwebservices/opsworks-example-cookbooks.git` fest.

1. Fügen Sie Folgendes dem Feld **Custom Chef JSON (Benutzerdefinierte JSON-Chef-Dateien)** des Stacks hinzu, um die RDS-Verbindungsdaten den `[:database]`-Attributen zuzuweisen, die `appsetup.rb` verwendet, um die Konfigurationsdatei zu erstellen.

   ```
   {
     "deploy": {
       "simplephpapp": {
         "database": {
           "username": "opsworksuser",
           "password": "your_password",
           "database": "rdsexampledb",
           "host": "rds_endpoint",
           "adapter": "mysql"
         }
       }
     }
   }
   ```

   Verwenden Sie die folgenden Attributwerte:
   + **username**: Der Hauptbenutzername, den Sie beim Erstellen der RDS-Instance festgelegt haben.

     Dieses Beispiel verwendet `opsworksuser`.
   + **password**: Das Hauptpasswort, das Sie beim Erstellen der RDS-Instance festgelegt haben.

     Geben Sie das Passwort ein, das Sie angegeben haben.
   + **database**: Die Datenbank, die Sie beim Erstellen der RDS-Instance angelegt haben.

     Dieses Beispiel verwendet `rdsexampledb`.
   + **host**: Der RDS-Instance-Endpunkt, den Sie von der RDS-Konsole bekommen haben, als Sie die Instance im vorherigen Abschnitt erstellt haben. Schließen Sie nicht die Portnummer ein.
   + **adapter**: Der Adapter.

     Die RDS-Instance für dieses Beispiel verwendet MySQL, sodass **adapter** auf `mysql` festgelegt ist. Im Gegensatz zu anderen Attributen wird **adapter** nicht von `appsetup.rb` verwendet. Es wird stattdessen vom integrierten Konfigurationsrezept des PHP App Server-Layers verwendet, um eine andere Konfigurationsdatei zu erstellen.

1. [Bearbeiten Sie die PHPApp Simple-Konfiguration](workingapps-editing.md) wie folgt, um eine Version von Simple anzugeben, PHPApp die eine Back-End-Datenbank verwendet:
   + **Document root**: Legen Sie diese Option auf `web` fest.
   + **Branch/Revision**: Legen Sie diese Option auf `version2` fest.

   Lassen Sie die übrigen Optionen unverändert.

1. [Bearbeiten Sie die PHP App Server-Ebene](workinglayers-basics-edit.md), um die Datenbankverbindung einzurichten, indem Sie sie `phpapp::appsetup` zu den Deploy-Rezepten der Ebene hinzufügen.

1. [Stellen Sie die neue PHPApp Simple-Version](workingapps-deploying.md) bereit.

1. Wenn Simple bereitgestellt PHPApp ist, führen Sie die Anwendung aus, indem Sie zur Seite **Instances** gehen und auf die öffentliche IP-Adresse der php-app1-Instanz klicken. Sie sollten die folgende Seite in Ihrem Browser sehen, auf der Sie Text eingeben und in der Datenbank speichern können.  
![\[Text input field labeled "Your Thoughts" with a "Share Your Thought" button.\]](http://docs.aws.amazon.com/de_de/opsworks/latest/userguide/images/gsb7.png)

**Anmerkung**  
Wenn Ihr Stack eine MySQL-Schicht hat, weist OpsWorks Stacks den Attributen automatisch die entsprechenden Verbindungsdaten zu. `[:database]` Wenn Sie dem Stack jedoch ein benutzerdefiniertes JSON-Objekt zuweisen, das andere `[:database]`-Werte festlegt, überschreiben sie diese Standardwerte. Da die `[:deploy]` Attribute auf jeder Instanz installiert sind, verwenden alle Rezepte, die von den `[:database]` Attributen abhängen, die benutzerdefinierten Verbindungsdaten, nicht die Daten der MySQL-Schicht für. Wenn Sie möchten, dass ein bestimmter Anwendungsserver-Layer die benutzerdefinierten Verbindungsdaten verwendet, weisen Sie dem Bereitstellungsereignis des Layers das benutzerdefinierte JSON-Objekt zu und schränken Sie die Bereitstellung zu diesem Layer ein. Weitere Informationen zur Verwendung von Bereitstellungsattributen finden Sie unter [Bereitstellen von Anwendungen](workingapps-deploying.md). Weitere Informationen zum Überschreiben von integrierten Attributen des OpsWorks Stacks finden Sie unter [Überschreiben der Attribute](workingcookbook-attributes.md).