branchway

Flask hosten

Flask bringt einen Entwicklungsserver mit, der ausdrücklich nicht für den Betrieb gedacht ist. Produktiv läuft es mit Gunicorn davor – das ist der ganze Unterschied.

Build und Startbefehl

Gestartet wird mit:

gunicorn app:app --bind 0.0.0.0:$PORT --workers 2

Dazu gehört diese Konfiguration:

# requirements.txt
flask
gunicorn

Worauf du achten musst

  • Nie flask run im Betrieb. Der eingebaute Server ist einfädig und ungeschützt; Flask warnt beim Start selbst davor.
  • Arbeiterzahl an die Größe anpassen: Als Faustregel zwei Arbeiter je Kern. Mehr Arbeiter brauchen mehr Arbeitsspeicher, nicht weniger.
  • debug=True gehört niemals in den Betrieb – die Debug-Konsole erlaubt sonst das Ausführen von Code über das Internet.

Größe und Kosten

Empfohlen ist Größe S (512 MB, 0.5 Kerne) – im Dauerbetrieb rund 7,82 € im Monat. Abgerechnet wird sekundengenau, eine gestoppte App kostet nichts. Die Größe lässt sich jederzeit wechseln, die App startet dabei einmal neu. Alle Preise

Häufige Fragen

Wie liefere ich statische Dateien aus?

Für kleine Mengen genügt Flask selbst. Bei vielen Bildern ist ein S3-Speicher sparsamer als der Anwendungsprozess.

Was ist mit asynchronen Aufgaben?

Celery oder RQ mit Redis, als eigener Worker-Prozess. In der Webanfrage haben lange Aufgaben nichts verloren.

Weiterlesen