Januar 12, 2026

Cloud Deployment

In diesem Beiträg möchte ich darauf eingehen, wie man eine einfache App in der Cloud deployen kann. Es handelt sich dabei um ein einfaches Data Science Projekt, das eine RestAPI bereitstellt, wie hier gezeigt.
Außerdem gibt es ein einfaches Frontend und die App ist in Containern verpackt.

In diesem Beitrag geht es darum, wie man diese Container nun in der Cloud zum Laufen bekommt. Dabei verwende ich in diesem Beispiel die Google Cloud Plattform. Das gleiche ist aber auch in anderen Cloud Plattformen wie AWS oder Azure möglich.

Virtuelle Maschine

Eine Möglichkeit ist das Deployment in einer virtuellen Maschine. In GCP heißt das Compute Engine (in AWS wäre das eine EC2 Instanz).

Der Vorteil ist, dass man auf diesem Weg sehr allgemeines Deployment herstellt, das so auch bei anderen Cloud Anbietern laufen könnte. Dafür hat man minimal mehr Overhead wie bei ganz reduzierten Lösungen wie serverloses Deployment (Cloud Run).

Auf ein komplexeres Deployment wie Kubernetes gehe ich an dieser Stelle nicht ein, auch wenn das für größere Anwendungen der bessere Weg ist. Allerdings auch mehr Overhead und höhere Kosten mit sich bringt.

GCP einrichten

Du benötigst ein aktives Google Cloud Konto. Außerdem ist es sinnvoll Google Cloud SDK auf dem Rechner zu installieren. Wenn man local arbeiten möchte, dann muss man sich jeweils über gcloud anmelden:

gcloud auth login

Manchmal meldet gcloud, das die Application Default Credentials (ADC) nicht korrekt gesetzt sind. Dann hilft dieses Kommando:

gcloud auth application-default login

Das öffnet deinen Browser – melde dich mit deinem Google-Account an. Damit werden die ADC lokal unter ~/.config/gcloud/application_default_credentials.json aktualisiert.

In GCP sollte man zudem ein eigenes Projekt einrichten und die Compute Engine API im Bereich „APIs und Dienste“ aktivieren. Das geht alternativ auch unter Compute Engine -> VM-Instanzen.

VM erstellen

Die VM-Instanz kann man entweder in der Google Cloud Konsole oder per GCloud erstellen.

GCloud

Zunächst sollte man das aktive Projekt festlegen. Die Projekt ID kann man in der Google Cloud Console nachschauen oder mit diesem Befehl anzeigen lassen:

gcloud project list

Dann legt man das aktive Projekt so fest:

gcloud config set project <your-project-id>

Zur Überprüfung kann man diesen Befehl nutzen:

gcloud config get-value project

Compute Instance erstellen

Erstelle eine VM mit Docker vorinstalliert:

gcloud compute instances create docker-vm --image-family=debian-11 --image-project=debian-cloud --machine-type=e2-medium

Erklärung der Optionen:

  • –docker-vm: Der Name der Instanz.
  • –image-family=debian-11: Nutzt die neueste Debian 11-Version als Basisimage.
  • –image-project=debian-cloud: Gibt an, dass das Debian-Image aus dem offiziellen Google Cloud-Image-Projekt stammt.
  • –machine-type=e2-medium: Wählt einen Maschinentyp mit 2 vCPUs und 4 GB RAM.

Docker und Docker Compose installieren

Um Docker und Docker Compose auf der VM Instanz zu installieren muss man sich per SSH auf die VM einloggen. Das geht am leichtesten über „SSH im Browser“. Das findet man über die Google Cloud Console unter Compute Engine -> VM-Instanzen per Klick auf den SSH Button.

Auf der VM installiert man nun Docker:

sudo apt update
sudo apt install -y docker.io

Die installation kann man überprüfen mit

docker --version

Docker Compose installiert man mit:

sudo apt install -y docker-compose

Dateien auf die VM kopieren

Für das kopieren der Daten auf die VM gibt es auch mehrere Möglichkeiten. Beispielsweise könnte man die laden Container in die Container Registry laden und von dort aus wieder auf die VM ziehen.

Gerade wenn auch Datensätze und andere Dinge enthalten sind, muss man diese aber ohnehin auf die VM kopieren. Dann kann es sinnvoll sein, den Container auf der VM nochmal neu zu bauen. Dazu muss man entsprechend die Projektdateien auf die VM kopiert.

Das kann man beispielsweise mit WinSCP machen. Einfacher geht es direkt mit GCloud in der Konsole. Um ein komplettes Verzeichnis zu kopieren kann man folgenden Befehl verwenden:

gcloud compute scp --recurse ./project docker-vm:/home/NUTZER/

Wenn noch kein SSH-Schlüssel für die VM eingerichtet ist, wird er über diesen Befehl direkt automatisch erstellt.

Wichtig: Du solltest überprüfen in welchem Ordner Du Schreibrechte hast. Je nach Konfiguration muss man die Dateien in diesen Ordner kopieren.

Firewall Regeln

Damit die VM auch wirklich erreichbar ist, erlaube den externen Zugriff auf die entsprechenden Ports (80, 5000, 8001).

Dazu gehe in der Google Cloud Konsole auf VPC-Netzwerk-> Firewall

Dort muss man eine Neue Firewall Regel erstellen. Wähle folgende Optionen:

  • Ziel: Alle Instanzen im Netzwerk
  • Quellen-IP-Bereich; 0.0.0.0/0
  • Protokolle und Ports: TCP 80,8001,5000
Anpassungen im Frontend

Achtung: Im Frontend (der index.html) muss entsprechend der Pfad für den API-Request geändert werden:

// Im Container kann die URL so verwendet werden
fetch("/backend/getdata", {
// Lokal muss das auf die entsprechende IP-Adresse geändert werden
fetch("http://192.168.178.138:5000/predict", {
Deployment

Wenn alles korrekt eingerichtet ist, dann kannst Du die App auf der VM starten mit:

sudo docker-compose up -d

Die Webseite ist nun über die externe IP der VM erreichbar.