Hinzufügen einer Datenbank zu Ihrer Elastic Beanstalk-Umgebung - AWS Elastic Beanstalk

Hinzufügen einer Datenbank zu Ihrer Elastic Beanstalk-Umgebung

Elastic Beanstalk bietet die Integration mit Amazon Relational Database Service (Amazon RDS). Sie können Elastic Beanstalk verwenden, um eine MySQL-, PostgreSQL-, Oracle- oder SQL Server-Datenbank zu einer bestehenden oder einer neuen Umgebung hinzuzufügen, wenn Sie diese erstellen. Wenn Sie eine Datenbank-Instance hinzufügen, stellt Elastic Beanstalk die Verbindungsinformationen zu Ihrer Anwendung bereit. Dadurch werden die Umgebungseigenschaften für den Datenbank-Hostnamen, den Port, Benutzernamen und das Passwort sowie den Datenbanknamen festgelegt.

Wenn Sie zuvor keine Datenbank-Instance mit Ihrer Anwendung verwendet haben, empfehlen wir Ihnen, zunächst den in diesem Thema beschriebenen Prozess zu verwenden, um zu einer Testumgebung mithilfe eines Elastic-Beanstalk-Services eine Datenbank hinzuzufügen. Auf diese Weise können Sie überprüfen, ob Ihre Anwendung die Umgebungseigenschaften lesen, eine Verbindungszeichenfolge erstellen und eine Verbindung zu einer Datenbankinstanz herstellen kann, ohne die zusätzliche Konfigurationsarbeit, die für eine Datenbank außerhalb von Elastic Beanstalk erforderlich ist.

Nachdem Sie überprüft haben, dass Ihre Anwendung ordnungsgemäß mit der Datenbank funktioniert, erwägen Sie möglicherweise, sich in eine Produktionsumgebung zu bewegen. An dieser Stelle haben Sie die Möglichkeit, die Datenbank von Ihrer Elastic-Beanstalk-Umgebung zu entkoppeln, um zu einer Konfiguration zu gelangen, die mehr Flexibilität bietet. Die entkoppelte Datenbank kann als externe Amazon-RDS-Datenbank-Instance betriebsbereit bleiben. Der Zustand der Umgebung wird durch die Entkopplung der Datenbank nicht beeinflusst. Wenn Sie die Umgebung beenden müssen, können Sie dies tun und auch die Option auswählen, um die Datenbank außerhalb von Elastic Beanstalk verfügbar und betriebsbereit zu halten.

Die Verwendung einer externen Datenbank hat mehrere Vorteile. Sie können aus mehreren Umgebungen eine Verbindung zu der externen Datenbank herstellen, Datenbanktypen verwenden, die nicht von integrierten Datenbanken unterstützt werden, und Blau/Grün-Bereitstellungen durchführen. Alternativ zur Verwendung einer entkoppelten Datenbank, die Elastic Beanstalk erstellt hat, können Sie auch eine Datenbank-Instance außerhalb Ihrer Elastic-Beanstalk-Umgebung erstellen. Beide Optionen führen zu einer Datenbank-Instance, die sich außerhalb Ihrer Elastic-Beanstalk-Umgebung befindet und eine zusätzliche Konfiguration von Sicherheitsgruppen und Verbindungszeichenfolgen erfordert. Weitere Informationen finden Sie unter Verwenden von Elastic Beanstalk mit Amazon RDS.

Datenbank-Lebenszyklus

Sie können auswählen, was mit der Datenbank geschehen soll, nachdem Sie sie von Ihrer Elastic-Beanstalk-Umgebung entkoppelt haben. Die Optionen, aus denen Sie wählen können, werden zusammenfassend als Löschrichtlinien bezeichnet. Die folgenden Löschrichtlinien gelten für eine Datenbank, nachdem Sie sie von einer Elastic-Beanstalk-Umgebung entkoppelt oder die Elastic-Beanstalk-Umgebung beendet haben.

  • Snapshot – Bevor Elastic Beanstalk die Datenbank beendet, speichert es einen Snapshot davon. Sie können eine Datenbank aus einem Snapshot wiederherstellen, wenn Sie eine DB-Instance zu einer Elastic-Beanstalk-Umgebung hinzufügen oder wenn Sie eine eigenständige Datenbank erstellen. Weitere Informationen zum Erstellen einer neuen eigenständigen DB-Instance aus einem Snapshot finden Sie unter Wiederherstellen aus einem DB-Snapshot im Amazon-RDS-Benutzerhandbuch. Für das Speichern von Datenbank-Snapshots fallen möglicherweise Kosten an. Weitere Informationen finden Sie im Abschnitt Backup-Speicher unter Amazon RDS – Preise.

  • Löschen – Elastic Beanstalk beendet die Datenbank. Nach dem Beenden ist die Datenbank-Instance für keinen Vorgang mehr verfügbar.

  • Beibehalten – Die Datenbank-Instance wird nicht beendet. Sie bleibt verfügbar und betriebsbereit, obwohl sie von Elastic Beanstalk entkoppelt ist. Sie können dann eine oder mehrere Umgebungen für die Verbindung mit der Datenbank als externe Amazon-RDS-Datenbank-Instance konfigurieren. Weitere Informationen finden Sie unter Verwenden von Elastic Beanstalk mit Amazon RDS.

Hinzufügen einer Amazon-RDS-DB-Instance zur Umgebung mithilfe der Konsole

Sie können der Umgebung mit der Elastic Beanstalk-Konsole eine DB-Instance hinzufügen.

So fügen Sie eine DB-Instance zu Ihrer Umgebung hinzu

  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Database (Datenbank) die Option Edit (Bearbeiten).

  5. Wählen Sie eine DB-Engine aus und geben Sie Benutzernamen und Passwort ein.

  6. Wählen Sie Apply (Anwenden) aus.

Sie können die folgenden Optionen konfigurieren:

  • Snapshot – Wählen Sie einen Datenbank-Snapshot aus. Elastic Beanstalk stellt den Snapshot wieder her und fügt ihn der Umgebung hinzu. Der Standardwert ist None (Kein). Wenn der Wert Keiner ist, können Sie eine neue Datenbank mit den anderen Einstellungen auf dieser Seite konfigurieren.

  • Engine – Wählen Sie eine Datenbank-Engine aus.

  • Engine version (Engine-Version) – Wählen Sie eine bestimmte Version der Datenbank-Engine aus.

  • Instance class (Instance-Klasse) – Wählen Sie eine DB-Instance-Klasse aus. Weitere Informationen über die DB-Instance-Klassen finden Sie unter https://aws.amazon.com/rds/.

  • Storage (Speicher) – Wählen Sie die Speicherkapazität für Ihre Datenbank aus. Sie können zugewiesenen Speicher zu einem späteren Zeitpunkt erhöhen, jedoch nicht verringern. Weitere Informationen zur Speicherzuweisung finden Sie unter Funktionen.

  • Benutzername: – Geben Sie einen beliebigen Benutzernamen mit einer Kombination aus Zahlen und Buchstaben ein.

  • Password (Passwort) – Geben Sie ein beliebiges Passwort aus 8–16 druckbaren ASCII-Zeichen (ohne /, \ und @) ein.

  • Availability (Verfügbarkeit) – Wählen Sie High (Multi-AZ) (Hoch (Multi-AZ) aus, um ein Warm-Backup in einer zweiten Availability Zone für hohe Verfügbarkeit durchzuführen.

  • Richtlinie zum Löschen von Datenbanken – Die Richtlinie zum Löschen bestimmt, was mit der Datenbank passiert, nachdem sie von Ihrer Umgebung entkoppelt wurde. Werte können einer der folgenden sein: Create Snapshot, Retain oder Delete. Diese Werte sind unter Datenbank-Lebenszyklus in demselben Thema beschrieben.

Anmerkung

Elastic Beanstalk erstellt einen Master-Benutzer für die Datenbank unter Verwendung des Benutzernamens und des Passworts, die Sie festgelegt haben. Weitere Informationen zum Master-Benutzer und dessen Berechtigungen finden Sie unter Berechtigungen von Hauptbenutzerkonten.

Das Hinzufügen einer DB-Instance dauert etwa 10 Minuten. Wenn das Update abgeschlossen ist, wird die neue Datenbank mit Ihrer Umgebung gekoppelt. Der Hostname und andere Verbindungsinformationen für die DB-Instance stehen Ihrer Anwendung über die folgenden Umgebungseigenschaften zur Verfügung.

Name der Eigenschaft Beschreibung Eigenschaftenwert

RDS_HOSTNAME

Der Hostname der DB-Instance.

Auf der Registerkarte Connectivity & security (Konnektivität und Sicherheit) in der Amazon RDS-Konsole: Endpoint (Endpunkt).

RDS_PORT

Der Port, über den die DB-Instance Verbindungen annimmt. Die DB-Engines haben unterschiedliche Standardwerte.

Auf der Registerkarte Connectivity & security (Konnektivität und Sicherheit) auf der Amazon RDS-Konsole: Port.

RDS_DB_NAME

Der Datenbanknam, ebdb.

Auf der Registerkarte Configuration (Konfiguration) der Amazon RDS-Konsole: DB-Name.

RDS_USERNAME

Der Benutzername, der für die Datenbank konfiguriert wurde.

Auf der Registerkarte Configuration (Konfiguration) in der Amazon RDS-Konsole: Master username (Master-Benutzername).

RDS_PASSWORD

Das Passwort, das für die Datenbank konfiguriert wurde.

Es ist in der Amazon RDS-Konsole nicht als Referenz angegeben.

Verbinden mit der Datenbank

Verwenden Sie die Verbindungsinformationen für die Verbindung mit Ihrer Datenbank von innerhalb Ihrer Anwendung über Umgebungsvariablen. Weitere Informationen zur Verwendung von Amazon RDS mit Ihren Anwendungen finden Sie in den folgenden Themen.

Konfigurieren einer integrierten RDS-DB-Instance mithilfe der Konsole

Sie können Konfigurationseinstellungen für die Datenbank-Instance im Abschnitt Database (Datenbank) auf der Seite Configuration (Konfiguration) der Umgebung in der Elastic-Beanstalk-Konsole anzeigen und ändern.

So konfigurieren Sie die DB-Instance Ihrer Umgebung in der Elastic Beanstalk-Konsole

  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Database (Datenbank) die Option Edit (Bearbeiten) aus.

Sie können die Richtlinieneinstellungen für Instance-Klasse, Speicher, Passwort, Verfügbarkeit und Richtlinie zum Löschen von Datenbanken nach der Datenbankerstellung ändern. Wenn Sie die Instance-Klasse ändern, stellt Elastic Beanstalk die DB-Instance erneut bereit.

Wenn Sie Elastic Beanstalk nicht mehr benötigen, um die Datenbank mit der Umgebung zu verknüpfen, können Sie sie entkoppeln, indem Sie Datenbank entkoppeln auswählen. Es ist wichtig, die Optionen und Überlegungen zu diesem Vorgang zu verstehen. Weitere Informationen finden Sie unter Entkoppeln einer RDS-DB-Instance über die Konsole.

Warnung

Ändern Sie keine Einstellungen der gekoppelten Datenbank-Instance außerhalb der von Elastic Beanstalk bereitgestellten Funktionen (z. B. in der Amazon-RDS-Konsole). Wenn Sie dies tun, ist Ihre Amazon RDS-DB-Konfiguration möglicherweise nicht synchron mit der Definition Ihrer Umgebung. Wenn Sie Ihre Umgebung aktualisieren oder neu starten, überschreiben die Einstellungen in der Umgebung alle Einstellungen, die Sie außerhalb von Elastic Beanstalk vornehmen.

Wenn Sie Einstellungen ändern müssen, die Elastic Beanstalk nicht direkt unterstützt, verwenden Sie die Elastic Beanstalk-Konfigurationsdateien.

Konfigurieren einer integrierten RDS-DB-Instance mithilfe von Konfigurationsdateien

Sie können die Datenbank-Instance Ihrer Umgebung mithilfe von Konfigurationsdateien konfigurieren. Verwenden Sie die Optionen im Namespace aws:rds:dbinstance. Das folgende Beispiel ändert die Größe des zugewiesenen Datenbankspeichers auf 100 GB.

Beispiel .ebextensions/db-instance-options.config

option_settings: aws:rds:dbinstance: DBAllocatedStorage: 100

Wenn Sie DB-Instance-Eigenschaften konfigurieren, die Elastic Beanstalk nicht unterstützt, können Sie dennoch eine Konfigurationsdatei verwenden und Ihre Einstellungen mithilfe des resources-Schlüssels angeben. Das folgende Beispiel legt Werte für die Amazon RDS-Eigenschaften StorageType und Iops fest.

Beispiel .ebextensions/db-instance-properties.config

Resources: AWSEBRDSDatabase: Type: AWS::RDS::DBInstance Properties: StorageType:io1 Iops: 1000

Entkoppeln einer RDS-DB-Instance über die Konsole

Sie können Ihre Datenbank von einer Elastic-Beanstalk-Umgebung entkoppeln, ohne den Zustand der Umgebung zu beeinträchtigen. Berücksichtigen Sie die folgenden Anforderungen, bevor Sie die Datenbank entkoppeln:

  • Was sollte mit der Datenbank passieren, nachdem sie entkoppelt wurde?

    Sie können einen Snapshot der Datenbank erstellen und dann beenden, die Datenbank als eigenständige Datenbank außerhalb von Elastic Beanstalk betriebsbereit halten oder die Datenbank dauerhaft löschen. Die Einstellung Richtlinie zum Löschen von Datenbanken bestimmt dieses Ergebnis. Eine detaillierte Beschreibung der Löschrichtlinien finden Sie unter Datenbank-Lebenszyklus in demselben Thema.

  • Müssen Sie Änderungen an den Datenbankkonfigurationseinstellungen vornehmen, bevor Sie sie entkoppeln?

    Wenn Sie Konfigurationsänderungen an der Datenbank vornehmen müssen, sollten Sie diese vor dem Entkoppeln der Datenbank anwenden. Dies schließt Änderungen an der Richtlinie zum Löschen von Datenbanken ein. Alle ausstehenden Änderungen, die gleichzeitig mit der Datenbankeinstellung Entkoppeln übermittelt werden, werden ignoriert, während nur die Entkopplungseinstellung angewendet wird.

So entkoppeln Sie eine DB-Instance aus einer Umgebung

  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Database (Datenbank) die Option Edit (Bearbeiten) aus.

  5. Überprüfen Sie alle Konfigurationswerte im Abschnitt Datenbankeinstellungen, insbesondere die Richtlinie zum Löschen von Datenbanken, die bestimmt, was mit der Datenbank nach der Entkopplung passiert.

    Wenn alle anderen Konfigurationseinstellungen korrekt sind, fahren Sie mit Schritt 6 fort, um die Datenbank zu entkoppeln.

    Warnung

    Es ist wichtig, die Einstellung der Richtlinie zum Löschen von Datenbanken getrennt von Datenbank entkoppeln anzuwenden. Wenn Sie Anwenden auswählen, um sowohl Datenbank entkoppeln als auch eine neu ausgewählte Richtlinie zum Löschen von Datenbanken zu speichern, wird die von Ihnen ausgewählte neue Löschrichtlinie ignoriert. Elastic Beanstalk entkoppelt die Datenbank nach der vorgesetzten Löschrichtlinie. Wenn die zuvor festgelegte Löschrichtlinie Delete oder Create Snapshot, ist, riskieren Sie den Verlust der Datenbank, anstatt die beabsichtigte ausstehende Richtlinie zu befolgen.

    Wenn eine der Konfigurationseinstellungen Aktualisierungen erfordert, gehen Sie wie folgt vor:

    1. Nehmen Sie die erforderlichen Änderungen im Bereich Datenbankeinstellungen vor.

    2. Wählen Sie Apply (Anwenden) aus. Es dauert einige Minuten, um die Konfigurationsänderungen für Ihre Datenbank zu speichern.

    3. Gehen Sie zurück zu Schritt 3 und wählen Sie Konfiguration aus dem Navigationsbereich.

  6. Wechseln Sie zum Abschnitt Datenbankverbindung des Bereichs.

  7. Wählen Sie Datenbank entkoppeln aus.

  8. Wählen Sie Anwenden aus, um den Vorgang zum Entkoppeln der Datenbank zu starten.

Die Löschrichtlinieneinstellung bestimmt das Ergebnis der Datenbank und die Dauer, die zum Entkoppeln der Datenbank erforderlich ist.

  • Wenn die Löschrichtlinie auf Delete gesetzt ist, wird die Datenbank gelöscht. Der Vorgang kann je nach Größe der Datenbank ungefähr 10-20 Minuten dauern.

  • Wenn die Löschrichtlinie auf Snapshot gesetzt ist, wird ein Snapshot der Datenbank erstellt. Dann wird die Datenbank gelöscht. Die für diesen Prozess erforderliche Zeit variiert je nach Größe der Datenbank.

  • Wenn die Löschrichtlinie auf Retain gesetzt ist, bleibt die Datenbank außerhalb der Elastic-Beanstalk-Umgebung betriebsbereit. Normalerweise dauert es weniger als fünf Minuten, um eine Datenbank zu entkoppeln.

Wenn Sie sich entschieden haben, die Datenbank außerhalb Ihrer Elastic-Beanstalk-Umgebung zu belassen, müssen Sie zusätzliche Schritte unternehmen, um sie zu konfigurieren. Weitere Informationen finden Sie unter Verwenden von Elastic Beanstalk mit Amazon RDS. Wenn Sie vorhaben, die Datenbank zu verwenden, die Sie für eine Produktionsumgebung entkoppeln, überprüfen Sie, ob der Speichertyp, den die Datenbank verwendet, für Ihren Workload geeignet ist. Weitere Informationen finden Sie unter DB-Instance-Speicher und Ändern einer DB-Instance im Amazon-RDS-Benutzerhandbuch.

Entkoppeln einer RDS-DB-Instance mithilfe von Konfigurationsdateien

Sie können Ihre DB-Instance von einer Elastic-Beanstalk-Umgebung entkoppeln, ohne den Zustand der Umgebung zu beeinträchtigen. Die Datenbankinstanz folgt der Richtlinie zum Löschen der Datenbank, die beim Entkoppeln der Datenbank angewendet wurde.

Beide Optionen, die zum Entkoppeln der Datenbank erforderlich sind, befinden sich im Namespace aws:rds:dbinstance. Diese sind:

  • Die Option DBDeletionPolicy legt die Löschrichtlinie fest. Werte können einer der folgenden sein: Snapshot, Delete oder Retain. Diese Werte sind unter Datenbank-Lebenszyklus in demselben Thema beschrieben.

  • Die Option HasCoupledDatabase bestimmt, ob Ihre Umgebung über eine gekoppelte Datenbank verfügt.

    • Wenn auf true umgeschaltet, erstellt Elastic Beanstalk eine neue DB-Instance, die mit Ihrer Umgebung gekoppelt ist.

    • Wenn auf false umgeschaltet, beginnt Elastic Beanstalk mit der Entkopplung der DB-Instance von Ihrer Umgebung.

Wenn Sie Ihre Datenbankkonfiguration ändern möchten, bevor Sie sie entkoppeln, wenden Sie alle Konfigurationsänderungen zuerst in einem separaten Vorgang an. Dazu gehört auch das Ändern der DBDeletionPolicy-Konfiguration. Nachdem Ihre Änderungen übernommen wurden, führen Sie einen separaten Befehl aus, um die Entkopplungsoption festzulegen. Wenn Sie gleichzeitig andere Konfigurationseinstellungen und die Entkopplungseinstellung übermitteln, werden die anderen Konfigurationsoptionseinstellungen ignoriert, während die Entkopplungseinstellung angewendet wird.

Warnung

Es ist wichtig, dass Sie die Befehle zum Anwenden der DBDeletionPolicy- und HasCoupledDatabase-Einstellungen als zwei separate Vorgänge ausführen. Wenn die aktive Löschrichtlinie bereits auf Delete oder Snapshot gesetzt ist, riskieren Sie den Verlust der Datenbank. Die Datenbank folgt der derzeit aktiven Löschrichtlinie und nicht der von Ihnen beabsichtigten Richtlinie zum ausstehenden Löschen.

So entkoppeln Sie eine DB-Instance aus einer Umgebung

Folgen Sie diesen Schritten, um die Datenbank von Ihrer Elastic-Beanstalk-Umgebung zu entkoppeln. Sie können die EB-CLI oder das AWS CLI verwenden, um die Schritte auszuführen. Weitere Informationen finden Sie unter Erweiterte Umgebungsanpassung mit Konfigurationsdateien.

  1. Wenn Sie die Löschrichtlinie ändern möchten, richten Sie eine Konfigurationsdatei im folgenden Format ein. In diesem Beispiel wird die Löschrichtlinie beibehalten.

    option_settings: aws:rds:dbinstance: DBDeletionPolicy: Retain
  2. Führen Sie den Befehl mit Ihrem bevorzugten Tool aus, um das Konfigurationsupdate abzuschließen.

  3. Richten Sie eine Konfigurationsdatei ein, um HasCoupledDatabase auf false zu setzen.

    option_settings: aws:rds:dbinstance: HasCoupledDatabase: false
  4. Führen Sie den Befehl mit Ihrem bevorzugten Tool aus, um das Konfigurationsupdate abzuschließen.

Die Löschrichtlinieneinstellung bestimmt das Ergebnis der Datenbank und die Dauer, die zum Entkoppeln der Datenbank erforderlich ist.

  • Wenn die Löschrichtlinie auf Delete gesetzt ist, wird die Datenbank gelöscht. Der Vorgang kann je nach Größe der Datenbank ungefähr 10-20 Minuten dauern.

  • Wenn die Löschrichtlinie auf Snapshot gesetzt ist, wird ein Snapshot der Datenbank erstellt. Dann wird die Datenbank gelöscht. Die für diesen Prozess erforderliche Zeit variiert je nach Größe der Datenbank.

  • Wenn die Löschrichtlinie auf Retain gesetzt ist, bleibt die Datenbank außerhalb der Elastic-Beanstalk-Umgebung betriebsbereit. Normalerweise dauert es weniger als fünf Minuten, um eine Datenbank zu entkoppeln.

Wenn Sie sich entschieden haben, die Datenbank außerhalb Ihrer Elastic-Beanstalk-Umgebung zu belassen, müssen Sie zusätzliche Schritte unternehmen, um sie zu konfigurieren. Weitere Informationen finden Sie unter Verwenden von Elastic Beanstalk mit Amazon RDS. Wenn Sie vorhaben, die Datenbank zu verwenden, die Sie für eine Produktionsumgebung entkoppeln, überprüfen Sie, ob der Speichertyp, den die Datenbank verwendet, für Ihren Workload geeignet ist. Weitere Informationen finden Sie unter DB-Instance-Speicher und Ändern einer DB-Instance im Amazon-RDS-Benutzerhandbuch.