Deployment mit Terraform¶
Um die im Lehrvortrag besprochene "Lift & Shift"-Migration der Quarkus-Anwendung nach AWS automatisiert und reproduzierbar durchzuführen, verwenden wir Terraform.
Was ist Terraform?¶
Terraform ist ein Werkzeug für Infrastructure as Code (IaC). Es ermöglicht die Definition und Bereitstellung von Cloud-Infrastruktur (wie virtuelle Maschinen, Netzwerke, Datenbanken) über deklarative Konfigurationsdateien.
Kernprinzipien
- Deklarativ: Sie beschreiben den gewünschten Endzustand der Infrastruktur, Terraform kümmert sich um die Umsetzung.
- Zustandsverwaltung: Terraform speichert den aktuellen Zustand der verwalteten Infrastruktur, um Änderungen planen und anwenden zu können.
- Anbieter-agnostisch: Unterstützt viele Cloud-Anbieter (AWS, Azure, GCP etc.) und andere Dienste.
Bereitstellung der Beispielanwendung¶
Die folgenden Schritte beschreiben, wie Sie die Quarkus-Anwendung mithilfe des bereitgestellten Terraform-Skripts in Ihrem eigenen AWS-Konto bereitstellen können.
Voraussetzungen
- Ein AWS-Konto mit konfigurierten Zugangsdaten (Credentials).
- Terraform CLI installiert.
- Docker installiert (falls die Anwendung als Container gebaut werden soll).
Downloads
Terraform-Skript (ZIP) Quarkus-Anwendung (ZIP)
Schritte
Die folgenden Basisschritte beschreiben den Prozess. Detailliertere Anweisungen, insbesondere zur Konfiguration und Anpassung, finden Sie in den README-Dateien innerhalb des Terraform-ZIP-Archivs.
- Entpacken: Entpacken Sie beide ZIP-Archive.
- Terraform initialisieren: Navigieren Sie im Terminal in das Verzeichnis mit den Terraform-Dateien (
.tf) und führen Sieterraform initaus. Dies lädt die notwendigen Provider-Plugins. - Planen: Führen Sie
terraform planaus. Terraform zeigt Ihnen an, welche Ressourcen erstellt oder geändert werden. - Anwenden: Führen Sie
terraform applyaus und bestätigen Sie mityes. Terraform erstellt nun die AWS-Ressourcen (z.B. EC2-Instanz, Sicherheitsgruppen etc.) und konfiguriert sie. - (Optional) Anwendung deployen: Sie müssen die Quarkus-Anwendung zunächst als uber Jar in den entsprechenden Projekt-Ordnern erstellen.
- Zugriff: Nach erfolgreichem Abschluss gibt Terraform einige Informationen, wie die öffentliche IP-Adresse der Instanz aus, unter der die Anwendung erreichbar ist.
Aufräumen
Um die erstellten Ressourcen wieder zu löschen und Kosten zu vermeiden, führen Sie im Terraform-Verzeichnis terraform destroy aus.