HeadlinesBriefing favicon HeadlinesBriefing.com

Datenpipeline auf AWS: Lokale Annahmen

Towards Data Science •
×

Monatelang habe ich eine Datenpipeline auf meinem Windows-Rechner mit RSS-Erfassung in WSL2, Postgres in Docker, Kestra-Orchestrierung und dbt-Transformationen aufgebaut. Alles funktionierte lokal, weil alles auf einer Maschine lief. Die Migration zu AWS über die CLI offenbarte versteckte Annahmen.

Die Einrichtung einer t3.small EC2-Instanz mit Ubuntu 22.04 war einfach. Überraschungen umfassten eine 8-GB-Festplatte, die zu klein war und growpart und resize2fs erforderte, aber neuere Nitro-Instanzen benennen Laufwerke als `nvme0n1` statt `xvda`. Die Instanz wurde während des Image-Pulls von Kestra "beeinträchtigt", was durch Hinzufügen einer 1-GB-Swap-Datei behoben wurde. Eine Elastic IP und Sicherheitsgruppen-Einschränkungen fügten kleine Aufgaben hinzu.

Die Übertragung der Pipeline mit rsync, Docker und docker compose funktionierte, aber Kestras Flows leben in seiner internen Datenbank, nicht in Dateien, so dass mein fetch_rss-Flow manuelles YAML-Einfügen erforderte. Dies zeigte ein Muster von Annahmen, die eine nach der anderen brechen.

Die echte Herausforderung war nicht AWS selbst, sondern die versteckten Abhängigkeiten, die auf "gleiche Maschine"-Annahmen basieren, was mehr lehrte als der ursprüngliche Aufbau.