In diesem Artikel werde ich erörtern, wie Sie eine MySQL-Instance auf AWS RDS mithilfe von Cloud Formation-Vorlagen einrichten. In meinem vorherigen Artikel So konfigurieren Sie eine Amazon RDS-Umgebung für MySQL habe ich eine detaillierte Anleitung zum Einrichten einer MySQL-Instanz auf Amazon bereitgestellt. Sie können die AWS-Konsole verwenden, um alle Informationen bereitzustellen, die zum Einrichten der Instanz erforderlich sind, und sie dann verwenden. In diesem Artikel werden wir jedoch einen automatisierten Weg besprechen, um die gleichen Funktionalitäten mithilfe von Cloud Formation-Vorlagen zu erreichen.
Was ist eine CloudFormation-Vorlage?
Um mit dem Schreiben der Vorlagen zu beginnen, müssen wir zunächst verstehen, worum es bei der Wolkenbildung geht. AWS bietet Cloud Formation als Cloud-Service an, der es AWS-Kunden ermöglicht, den gewünschten Zustand einer beliebigen Infrastruktur als Code zu schreiben und ihn dann zur Bereitstellung von Ressourcen für AWS zu verwenden. Es ermöglicht uns, eine Ressource oder eine Gruppe von Ressourcen zu erstellen, indem wir einfachen Konfigurationsvorlagen folgen. Wenn Sie beispielsweise eine Webanwendung auf einer EC2-Instance bereitstellen möchten, die auch eine RDS-Datenbank verwendet, können Sie einfach beide Ressourcen in einem Stack kombinieren und den Code zum Einrichten der Instances schreiben. Nach der Ausführung werden sowohl die EC2- als auch die RDS-Instanz erstellt und auch Ihre Webanwendung bereitgestellt.
Abbildung 1 – CloudFormation-Vorlage in der AWS-Konsole
Die Komponenten einer Wolkenbildungsvorlage sind wie folgt:
- Ein JSON oder YAML Datei, in der die Ressourcen als Vorlage definiert werden
- Ein Stack kann eine Kombination aus mehreren Ressourcen sein, die als Teil der Anwendung eingerichtet werden müssen. Für z. B. EC2 und RDS
- Ein Changeset kann verwendet werden, um eine Liste von Operationen anzuzeigen, die vom Stack ausgeführt werden sollen
- Ein Stapelsatz kann auch als verwaltete Gruppe von Stapeln betrachtet werden, die reproduziert oder repliziert werden
Von den oben genannten werden wir uns in diesem Artikel hauptsächlich auf die JSON/YAML-Vorlage und den Stack konzentrieren. Die Vorlagen unterstützen eine Vielzahl von Ressourcen auf AWS. Um eine vollständige Liste zu erhalten, folgen Sie bitte diesem Link.
Schreiben der JSON- oder YAML-Vorlagendatei
Eine der größten Herausforderungen, denen wir beim erstmaligen Schreiben einer Vorlage gegenüberstehen, ist, welche Inhalte darin enthalten sein sollten. Um dies zu erleichtern, stellt AWS viele Vorlagenbeispiele bereit, die leicht in der offiziellen Dokumentation zu finden sind. Sobald Sie die Vorlage gefunden haben, die zum Erstellen einer erforderlichen Ressource erforderlich ist, können Sie sie verwenden, um Ihre eigene Vorlage zu erstellen. Die Vorlage kann entweder mit JSON oder YAML erstellt und auch von einem zum anderen konvertiert werden. Persönlich bevorzuge ich es, die Vorlagen mit YAML zu schreiben, da es mir hilft, die geschweiften Klammern und Kommas zu vermeiden und das Dokument sauberer zu halten. Es steht Ihnen jedoch frei, zwischen JSON und YAML zu wählen.
Lassen Sie uns für diese Übung versuchen, eine MySQL-Instanz auf RDS hochzufahren, und wir werden den Code in YAML schreiben. Um eine MySQL-Datenbank mit Wolkenbildung einzurichten, benötigen wir die folgenden Elemente.
- Ressourcenname – Der Name der Ressource, die Sie einrichten werden.
- Ressourcentyp – Der Typ der Ressource.
- Ressourceneigenschaften – Datenbankname, Benutzername und Passwort für die Verbindung.
- Die Datenbank-Engine – MySQL, SQL Server, PostgreSQL usw.
- Speichertyp – Der zu verwendende Speichertyp.
- Öffentliche Zugänglichkeit – Ob die Datenbank öffentlich zugänglich sein soll oder nicht.
- Zugewiesener Speicher – Der Speicher, der der Datenbankinstanz zugewiesen werden soll.
- AWS-Region – Die Region, in der die Instanz erstellt werden soll.
Nun, da wir einige Punkte bei uns haben, lassen Sie uns fortfahren und mit dem Schreiben der Vorlagendatei beginnen.
https://gist.github.com/aveek22/a188b02abde65479bbba2deba5ec90d6
Abbildung 2 – Die Vorlagendatei zum Erstellen einer MySQL-Instanz auf RDS
Wie Sie in der obigen Abbildung sehen können, ist die Struktur der Datei in zwei Teile unterteilt. Im ersten Teil haben wir einige Parameter definiert, die von den Ressourcendefinitionen im zweiten Teil beim Erstellen der Ressourcen auf AWS verwendet werden. Sie können dasselbe Skript auf Ihrem Computer verwenden, um eine Instanz in Ihrem AWS-Konto zu erstellen.
Stack auf der Konsole einrichten
Nachdem wir unsere Vorlage für MySQL erstellt haben, ist es an der Zeit, sie einzurichten, um zu sehen, ob alles gut läuft. Gehen Sie zur AWS-Konsole und suchen Sie in der Suchleiste nach Cloud Formation. Klicken Sie auf Stack erstellen und laden Sie die Vorlagendatei von Ihrem lokalen hoch. Klicken Sie auf Weiter einmal erledigt.
Abbildung 3 – Stapel aus der Vorlage erstellen
Auf der nächsten Seite werden Sie aufgefordert, die Parameter anzugeben, die in der Wolkenbildungsvorlage definiert wurden. Geben Sie die erforderlichen Details ein und klicken Sie auf Weiter .
Abbildung 4 – Bereitgestellte Stack-Parameter
Überprüfen Sie die Änderungen und Parameter des Stacks und klicken Sie auf Stack erstellen auf der letzten Seite. Die Stack-Erstellung wird gestartet. Es kann einige Zeit dauern, bis alle Ressourcen erstellt sind, bevor sie verwendet werden können. In der Zwischenzeit können Sie auf die Schaltfläche Neu laden klicken, um zu überprüfen, ob alle Ereignisse erfolgreich erstellt wurden.
Abbildung 5 – Stack-Erstellung im Gange
Wie Sie an den Zeitstempeln sehen können, dauerte es bei mir etwa 6 Minuten, bis die Ressourcen verfügbar waren und auch auf der Konsole sichtbar waren. Navigieren Sie zu den Ressourcen und klicken Sie auf die Physische ID der Ressource. Dadurch gelangen Sie zur RDS-Konsole.
Abbildung 6 – Stack erfolgreich erstellt
Verbinden der MySQL-Datenbank
Sobald Sie sich in der RDS-Konsole befinden, können Sie den Hostnamen für die Datenbankinstanz abrufen und ihn zum Herstellen einer Verbindung mit der Datenbank verwenden. Holen Sie sich den Endpunkt von der Konsole aus und verbinden Sie sich damit.
Abbildung 7 – MySQL-Instanzdetails auf RDS
Lassen Sie uns nun zu MySQL Workbench gehen und versuchen, mit den zuvor bereitgestellten Anmeldeinformationen eine Verbindung zum Hostnamen herzustellen. Verwenden Sie den Hostnamen, den Benutzernamen und das Passwort, um eine Verbindung zur Instanz herzustellen.
Abbildung 8 – Herstellen einer Verbindung zur MySQL-Instanz mithilfe von MySQL Workbench
Wie Sie in der obigen Abbildung sehen können, haben wir uns erfolgreich mit der Datenbankinstanz auf RDS verbunden. Lassen Sie uns nun einige Abfragen ausführen und sehen, ob es funktioniert.
Abbildung 9 – Ausführen von Skripten in der MySQL Workbench
Wie Sie in der obigen Abbildung sehen können, konnten wir uns mit der Datenbankinstanz verbinden und Abfragen ausführen. Damit sind Sie in der Lage, Ihre eigene Wolkenbildungsvorlage zu schreiben und andere Ressourcen wie die SQL Server- oder PostgreSQL-Datenbank hochzufahren.
Entfernen der Ressourcen
Wenn Sie dies als Übung durchführen, würde ich empfehlen, die von uns erstellten Ressourcen zu entfernen, da dadurch einige Gebühren anfallen. Sie können zur RDS-Konsole navigieren und dann die Instanz auswählen und auf Löschen klicken um die Ressourcen dauerhaft zu entfernen.
Abbildung 10 – Löschen der erstellten Ressourcen
Sobald die Ressourcen erfolgreich gelöscht wurden, können Sie in der Konsole erneut prüfen, ob Instanzen ausgeführt werden, nur um unnötige Abrechnungskosten zu vermeiden.
Fazit
In diesem Artikel haben wir ausführlich besprochen, wie Sie eine MySQL-Datenbankinstanz in einer AWS RDS-Umgebung einrichten und mithilfe der Cloud Formation-Vorlage automatisieren. Auf diese Weise wird das Einrichten von Ressourcen in der Cloud auch als Infrastructure-as-Code-Service bezeichnet, bei dem Sie die gesamte Infrastruktur als Code einrichten und dann in verschiedenen Umgebungen verwenden können. Diese Vorlagen können nicht nur zum Bereitstellen von Datenbankinstanzen, sondern auch anderer Infrastrukturen innerhalb von AWS wie EC2, Lambda, RedShift usw. verwendet werden. Um mehr über die Wolkenbildungsvorlagen zu erfahren, können Sie sich die auf der offiziellen Website verfügbaren Beispielvorlagen ansehen.