Cloud für Trading-Bots: AWS/GCP statt VPS — wann lohnt's?
AWS und Google Cloud klingen für viele Trader nach Profi-Setup. Für 90 % der Strategien sind sie aber teurer und komplexer, ohne dass sie etwas liefern, das ein guter Hetzner-Server nicht auch könnte. Wann sich Cloud trotzdem rechnet — und wie ich es in der Praxis aufteile.
Ich nutze sowohl dedizierte VPS (Hetzner, Linode) als auch AWS und GCP. Die Entscheidung ist nie pauschal — sie hängt an Workload, Skalierungs-Bedarf und an Kosten. Hier die Heuristik, mit der ich in der Praxis arbeite.
AWS EC2 / GCP Compute vs. dedizierte VPS.
Auf dem Papier sehen die Angebote ähnlich aus: virtuelle Maschine, X vCPU, Y GB RAM, Z GB Disk. In der Realität gibt es zwei harte Unterschiede:
- Preis pro Ressource: AWS und GCP sind grob Faktor 3 bis 5 teurer als Hetzner für vergleichbare Specs. Eine c6i.large (2 vCPU, 4 GB) bei AWS kostet ca. 60–80 €/Monat, eine CX22 bei Hetzner mit denselben Specs ca. 4 €.
- Service-Ökosystem: AWS bringt RDS, ElastiCache, SQS, Lambda, S3, CloudWatch — eine ganze Plattform. Hetzner gibt Ihnen die VM und sonst nichts (außer Object Storage und Load Balancer).
Für einen reinen MT5- oder Python-Bot, der auf einer Maschine läuft, brauchen Sie keine Plattform. Sie zahlen den AWS-Aufpreis ohne Gegenwert.
Wann Cloud trotzdem die richtige Wahl ist.
Latenz zur Börse
AWS hat Regionen direkt neben den großen Börsen-Rechenzentren:
- AWS us-east-1 (Northern Virginia): nahe NYSE und NASDAQ-Matching-Engines. Latenz zu IBKR (Greenwich CT) und retail-US-Brokern: 5–15 ms.
- AWS eu-central-1 (Frankfurt): nahe Xetra und EUREX. Latenz zu DAX-Brokern: 1–5 ms.
- AWS ap-northeast-1 (Tokio): nahe TSE und japanischer Börsen.
Hetzner Falkenstein liegt geografisch ungünstiger — Frankfurt ist ca. 350 km entfernt, das macht 5–8 ms zusätzlich. Für M1-Scalping oder News-Trading auf US-Aktien lohnt sich AWS us-east-1 trotz höherem Preis.
Backtest-Cluster
Für große Parameter-Sweeps oder Walk-Forward-Optimierungen brauche ich kurzfristig 50–500 CPU-Kerne, danach nichts mehr. Hetzner hat hier kein gutes Modell — bei Hetzner Cloud sind Server Stunden-billable, aber das Provisioning von 50 Maschinen per API ist nicht so glatt wie bei AWS. Auf AWS spinne ich mit Terraform 100 Spot-Instances hoch, lasse den Backtest laufen, Cluster geht runter, Rechnung kommt für ein paar Stunden statt für einen Monat.
Spot-Instances sind hier der Killer: bis zu 90 % Rabatt gegenüber On-Demand. Backtests sind unkritisch — wenn AWS eine Spot-Instance vorzeitig terminiert, startet sie woanders neu.
Managed Services
Für ein größeres Setup mit mehreren Strategien, eigener Frontend-Plattform und Analytics-Pipeline lohnen sich:
- RDS Postgres: Backups, Failover, Patches automatisiert. Spart einen halben Admin-Tag pro Monat.
- ElastiCache Redis: für Quote-Caches und Pub/Sub zwischen Strategien.
- SQS / SNS: zuverlässige Message-Queue zwischen Komponenten.
- S3: Tick-Archiv für historische Daten, billig und unkompliziert.
- CloudWatch + EventBridge: Monitoring und Alerting ohne eigenen Stack.
Hidden-Costs: das, was AWS-Anfänger killt.
Der EC2-Preis ist nur die Spitze. Die Rechnung am Monatsende wird durch Nebenkosten überraschend hoch:
- Data-Egress: 0,09 USD pro GB Outbound aus AWS. Für einen Bot, der WebSocket-Daten empfängt, irrelevant. Für einen Bot, der Tick-Daten archiviert und nach extern überträgt — schnell drei-stellig.
- NAT-Gateway: 0,045 USD/Stunde pro Gateway, plus 0,045 USD pro GB. Wer aus einem privaten Subnet ins Internet routet, zahlt monatlich 35 € allein für das Gateway. Lösung: NAT-Instanz statt managed Gateway oder Public-Subnet mit Egress-Restriction.
- EBS-Snapshots: günstig pro GB, aber bei täglichem Snapshot und 30-Tage-Retention summieren sich 100 GB auf 6–8 €/Monat zusätzlich.
- Inter-AZ-Traffic: zwischen Availability Zones zahlen Sie 0,01 USD pro GB. Bei chatty Microservices kann das überraschen.
- CloudWatch Logs: Ingestion ist nicht gratis. Wer DEBUG-Logs in CloudWatch streamt, sieht die Rechnung schnell explodieren.
Mein Tipp: AWS Cost Explorer am Tag 1 aktivieren, Budget-Alert auf 1,5x erwarteter Kosten setzen. Ein vergessenes NAT-Gateway in einer Sandbox-VPC hat mich einmal 120 € gekostet, bis ich es bemerkt habe.
Region-Selection für Multi-Asset-Strategien.
Wenn Sie US-Aktien und EU-Futures gleichzeitig handeln, gibt es keine perfekte Region. Drei Optionen:
- Strategie pro Asset-Klasse pro Region: US-Strategie in us-east-1, EU-Strategie in eu-central-1. Beste Latenz pro Markt, höchste Kosten und Komplexität.
- Ein Standort, Kompromiss-Latenz: alles in eu-central-1, US-Trades laufen mit 90 ms zusätzlicher Latenz. Für Daily-Strategien irrelevant, für M1 problematisch.
- VPC-Peering zwischen Regionen: zentraler Order-Manager in einer Region, Marktdaten-Receiver in jeweiliger Markt-Region. Sauberste Architektur, höchster Aufwand.
In der Praxis fahre ich Option 2, solange die Strategien Daily oder H1 sind. Erst ab M5-Frequenz wechsle ich auf Option 1.
Konkretes Setup mit Terraform.
Ein minimales AWS-Setup für einen Trading-Bot, das ich oft als Baseline nutze:
resource "aws_instance" "trading_bot" {
ami = data.aws_ami.ubuntu_22.id
instance_type = "c6i.large"
subnet_id = aws_subnet.public.id
vpc_security_group_ids = [aws_security_group.bot.id]
key_name = aws_key_pair.deployer.key_name
root_block_device {
volume_size = 30
volume_type = "gp3"
encrypted = true
}
tags = { Name = "trading-bot-prod", Env = "prod" }
}
resource "aws_db_instance" "trade_log" {
identifier = "trade-log"
engine = "postgres"
engine_version = "16.3"
instance_class = "db.t4g.micro"
allocated_storage = 20
username = "trader"
password = var.db_password
skip_final_snapshot = false
backup_retention_period = 7
}
Plus: Security-Group, die nur SSH von meiner IP und Outbound zu Broker-Hosts erlaubt. CloudWatch-Alarm auf CPU > 80 % und Status-Check-Fehler. EBS-Snapshot-Plan über Data Lifecycle Manager.
Spot-Instances für Backtests.
Für CPU-intensive Backtests nutze ich Spot Fleet mit Mixed Instance Types:
resource "aws_spot_fleet_request" "backtest" {
iam_fleet_role = aws_iam_role.fleet.arn
spot_price = "0.10"
target_capacity = 100 # CPU-Stunden in Sum
allocation_strategy = "capacityOptimized"
launch_specification {
ami = data.aws_ami.ubuntu_22.id
instance_type = "c6i.xlarge"
subnet_id = aws_subnet.private.id
iam_instance_profile = aws_iam_instance_profile.worker.name
user_data = filebase64("worker_init.sh")
}
# ... mehrere weitere Instance Types als Fallback
}
Worker pullen Jobs aus SQS, schreiben Ergebnisse nach S3. Ein 200-Parameter-Sweep, der lokal 8 Stunden braucht, dauert hier 15 Minuten und kostet 4–6 €.
Meine Praxis.
Mein Aufteilung sieht aktuell so aus:
- Live-Trading: Hetzner Cloud (Falkenstein) oder broker-eigener VPS. Stabil, günstig, ausreichend schnell für meine Strategien.
- Backtest-Cluster: AWS Spot-Fleet in eu-central-1. On-Demand spinned, nach Run wieder weg.
- Tick-Archiv: AWS S3 Glacier Deep Archive. Historische Tick-Daten kosten so 1 €/TB/Monat.
- Trade-Log und Reporting-DB: kleine Postgres auf Hetzner, Backups in S3.
Wer mit AWS oder GCP startet, weil es „professioneller" klingt, verbrennt unnötig Geld. Wer Hetzner-only fährt und nie skaliert, lässt Bequemlichkeit und Geschwindigkeit liegen. Die richtige Antwort ist meistens hybrid — und beginnt mit der Frage: was rechtfertigt den Faktor-5-Aufpreis?
Sie planen ein Trading-Setup und sind unsicher, ob Cloud oder VPS? Erstgespräch buchen — wir gehen Workload und Kosten konkret durch.