Die Bereitstellung moderner Datenanwendungen in der Cloud erfordert mehr als nur das Starten von Containern. Eine stabile Architektur verbindet Anwendungen mit persistenten Datenbanken, sichert die Kommunikation und folgt bewährten Praktiken für Skalierbarkeit und Wartbarkeit. Genau hier setzt dieses Projekt an: Es zeigt, wie Sie Metabase – eine beliebte Open-Source-Business-Intelligence-Lösung – in AWS mit ECS (Fargate) betreiben und mit einer PostgreSQL-Datenbank auf RDS verbinden.
Diese Anleitung führt Sie durch die Einrichtung einer vollständigen Produktionsumgebung, die Sie direkt für interne Analysen, Berichte oder SaaS-Lösungen nutzen können. Dabei lernen Sie, wie containerisierte Anwendungen mit verwalteten Datenbanken interagieren und welche Sicherheitskonfigurationen für den produktiven Einsatz entscheidend sind.
Eine datengetriebene Cloud-Architektur aufbauen
Dieses Projekt kombiniert mehrere bewährte AWS-Dienste, um eine robuste Datenplattform zu schaffen. Im Mittelpunkt steht Metabase, das als containerisierte Anwendung in ECS Fargate läuft. Die Datenpersistenz übernimmt eine PostgreSQL-Datenbank, die über Amazon RDS verwaltet wird. Beide Komponenten kommunizieren über eine private Netzwerkverbindung innerhalb desselben Virtual Private Cloud (VPC)-Bereichs – ein Standardmuster für moderne Cloud-Anwendungen.
Die Architektur folgt dem Prinzip der Trennung von Zuständigkeiten:
- ECS Fargate führt die Anwendung aus, ohne dass Infrastruktur verwaltet werden muss.
- RDS PostgreSQL stellt die Datenbank mit automatischen Backups, Skalierung und Hochverfügbarkeit bereit.
- Sicherheitsgruppen regeln den Zugriff zwischen den Diensten auf Port-Ebene.
Diese Kombination eignet sich ideal für interne Dashboards, Kundenselbstbedienungs-Tools oder Reporting-Plattformen, bei denen Daten zentralisiert und sicher verwaltet werden müssen.
Schritt-für-Schritt: Metabase mit PostgreSQL auf AWS verbinden
1. PostgreSQL-Datenbank in RDS erstellen
Bevor Sie Metabase bereitstellen, benötigen Sie eine Datenbank. Gehen Sie in der AWS-Konsole zu RDS → Datenbank erstellen und wählen Sie folgende Optionen:
- Datenbank-Engine: PostgreSQL (wählen Sie die neueste stabile Version).
- Vorlage: Kostenlose Testversion (falls verfügbar).
Konfigurieren Sie die Datenbankinstanz mit den folgenden Einstellungen:
DB-Instanzbezeichner: metabase-db
Master-Benutzername: postgres
Master-Passwort: [sicheres Passwort Ihrer Wahl]Wählen Sie unter Netzwerkeinstellungen ein privates Subnetz in Ihrer VPC aus und deaktivieren Sie den öffentlichen Zugriff. Dies verhindert direkte Verbindungen von außen und reduziert Angriffsflächen.
Erstellen Sie anschließend eine Sicherheitsgruppe für RDS, die nur den Port 5432 (PostgreSQL-Standardport) für die Sicherheitsgruppe Ihrer ECS-Aufgabe freigibt. Dies stellt sicher, dass nur Ihre Metabase-Anwendung auf die Datenbank zugreifen kann.
2. ECS-Cluster für Fargate einrichten
Wechseln Sie zu ECS → Cluster erstellen und wählen Sie Fargate als Starttyp. Geben Sie dem Cluster einen aussagekräftigen Namen, z. B. metabase-cluster. Dieser Cluster dient als Host für Ihre containerisierte Anwendung.
Fargate eliminiert die Notwendigkeit, Server zu verwalten, und ermöglicht es Ihnen, sich auf die Anwendungsebene zu konzentrieren. Die Abrechnung erfolgt nach tatsächlicher Ressourcennutzung, was besonders für Entwicklungs- und Testumgebungen kosteneffizient ist.
3. Task-Definition für Metabase erstellen
Erstellen Sie eine neue Task-Definition in ECS und wählen Sie Fargate als Ausführungsumgebung. Definieren Sie einen Container mit den folgenden Parametern:
- Containername:
metabase - Image:
metabase/metabase:latest(die offizielle Metabase-Container-Image) - Port-Mapping: Mappt den Container-Port 3000 auf einen Host-Port.
Um die Verbindung zur PostgreSQL-Datenbank herzustellen, fügen Sie die folgenden Umgebungsvariablen hinzu:
MB_DB_TYPE=postgres
MB_DB_DBNAME=metabase
MB_DB_PORT=5432
MB_DB_USER=postgres
MB_DB_PASS=[Ihr-Datenbank-Passwort]
MB_DB_HOST=[RDS-Endpunkt]Ersetzen Sie [RDS-Endpunkt] durch die private DNS-Adresse Ihrer RDS-Instanz. Diese Adresse finden Sie in der RDS-Konsole unter Verbindungen & Sicherheit → Endpunkt. Die Umgebungsvariablen sind entscheidend, damit Metabase weiß, wie es sich mit der Datenbank verbinden soll.
4. ECS-Service für Metabase starten
Erstellen Sie einen Service in Ihrem ECS-Cluster, der die Task-Definition ausführt. Wählen Sie Fargate als Starttyp und wählen Sie die zuvor erstellte Task-Definition aus. Starten Sie eine Instanz der Anwendung.
Konfigurieren Sie die Netzwerkeinstellungen so, dass der Service in derselben VPC wie Ihre RDS-Datenbank läuft. Wählen Sie ein Subnetz aus, das den Zugriff auf Ihre Anwendung ermöglicht (z. B. ein öffentliches Subnetz, wenn Sie über das Internet darauf zugreifen möchten).
Erstellen Sie eine Sicherheitsgruppe für ECS, die eingehenden Verkehr auf Port 3000 zulässt. Beschränken Sie den Zugriff idealerweise auf Ihre öffentliche IP-Adresse, um unbefugten Zugriff zu verhindern.
5. Bereitstellung abschließen und Metabase nutzen
Starten Sie den Service und warten Sie, bis der Task-Status auf RUNNING wechselt. Dies kann einige Minuten dauern, da AWS die Containerumgebung einrichtet und die Anwendung startet.
Sobald die Anwendung läuft, finden Sie die öffentliche IP-Adresse des Tasks in der ECS-Konsole unter Tasks → Details. Öffnen Sie einen Browser und navigieren Sie zu:
Sie sollten nun die Metabase-Einrichtungsseite sehen und mit der Konfiguration Ihrer ersten Datenquellen und Dashboards beginnen können.
Häufige Fehler vermeiden – bewährte Praktiken
Bei der Einrichtung einer solchen Architektur können leicht Fehler auftreten, die zu Verbindungsproblemen oder Sicherheitslücken führen. Hier sind die wichtigsten Punkte, die Sie beachten sollten:
- VPC-Konsistenz: Stellen Sie sicher, dass sowohl ECS als auch RDS in derselben VPC sind. Unterschiedliche VPCs können keine private Kommunikation herstellen, was zu Verbindungsfehlern führt.
- Korrekte RDS-Endpunkte: Verwenden Sie immer die private DNS-Adresse Ihrer RDS-Instanz. Öffentliche Endpunkte sollten vermieden werden, es sei denn, dies ist explizit erforderlich.
- Sicherheitsgruppen-Regeln: Die Sicherheitsgruppe für RDS muss den Port 5432 für die Sicherheitsgruppe des ECS-Tasks freigeben. Ohne diese Regel kann die Anwendung nicht auf die Datenbank zugreifen.
- Umgebungsvariablen prüfen: Falsche oder fehlende Variablen verhindern, dass Metabase die Datenbankverbindung herstellt. Überprüfen Sie alle Werte, insbesondere
MB_DB_HOSTundMB_DB_PASS. - Netzwerk-Konfiguration: Vermeiden Sie die Aktivierung des öffentlichen Zugriffs auf RDS, es sei denn, dies ist für den Betrieb unbedingt erforderlich. Nutzen Sie stattdessen private Subnetze und VPNs für den Zugriff.
Was Sie aus diesem Projekt mitnehmen
Dieses Setup ist mehr als nur eine technische Übung – es vermittelt Ihnen ein tiefes Verständnis für moderne Cloud-Architekturen. Sie lernen, wie Anwendungen mit Datenbanken verbunden werden, wie Sicherheitsgruppen den Zugriff steuern und wie verwaltete Dienste wie RDS die Verwaltung von Infrastruktur vereinfachen.
Die erworbenen Fähigkeiten sind direkt auf reale Szenarien übertragbar:
- Interne Analyse-Dashboards für Teams
- Kunden-Reporting-Tools in SaaS-Produkten
- Überwachungs- und Metriken-Visualisierung
- Datenpipelines mit BI-Integration
Diese Architektur ist ein Paradebeispiel dafür, wie Sie in der Cloud denken müssen: nicht als isolierte Ressourcen, sondern als vernetzte Systeme, die zusammenarbeiten, um echten Mehrwert zu schaffen. Der Unterschied zwischen "Cloud lernen" und "wie ein Cloud-Ingenieur denken" liegt genau in dieser ganzheitlichen Perspektive.
Mit diesem Setup haben Sie den Grundstein für eine skalierbare, sichere und wartbare Datenplattform gelegt – ein wertvolles Werkzeug für jede Organisation, die datengetriebene Entscheidungen treffen möchte.
KI-Zusammenfassung
Metabase’i AWS ECS Fargate üzerinde PostgreSQL RDS’e bağlayarak veri analizi platformunuza bulut tabanlı bir çözüm kazandırın. Adım adım rehber.