llm-integration.eu

LiteLLM EU-Gateway: Claude über Bedrock

LiteLLM selbst in der EU betreiben: Claude über Bedrock mit eu.anthropic.claude-sonnet-5, Port 4000, Postgres-Budgets und der Unterschied zu OpenRouter.

Aktualisiert 8 Min. LesezeitFakten geprüft am 29. September 2026

TL;DR

LiteLLM ist ein selbst betriebenes Gateway vor Claude. Setzen Sie Release v1.103.0 im eigenen EU-Netz auf Port 4000 auf, mit Postgres, und rufen Sie Bedrock als bedrock/eu.anthropic.claude-sonnet-5 auf. Dieses Profil hält Sonnet-5-Daten in EU-Regionen. OpenRouter kann personenbezogene Daten auf US-Server schicken. Ein Budget ohne Datenbank stoppt keine Kosten.

Was ändert ein LiteLLM-Gateway für ein EU-Team?

Der LiteLLM-Proxy ist ein OpenAI-kompatibles Gateway, das Sie selbst betreiben. Anwendungen schicken eine Chat-Anfrage an Ihren Host. Der Proxy prüft einen virtuellen Schlüssel, schreibt die Kosten mit und leitet den Aufruf an Bedrock, Vertex, Anthropic oder einen anderen Anbieter weiter. Der CLI-Schnellstart beschreibt eine einheitliche Schnittstelle für über 100 LLMs, Kostenverfolgung, virtuelle Schlüssel und Lastverteilung. In Lasttests lagen sie über 1.500 Anfragen pro Sekunde.

Die EU-Frage ist, wo dieser Prozess läuft. Ein Gateway auf dem Laptop oder bei einem US-Router speichert Prompts und Kostenprotokolle außerhalb Ihrer Kontrolle. Ein Gateway auf einer VM in Frankfurt oder Irland, das nur ein Bedrock-EU-Profil aufruft, hält Protokoll und Modellanfrage in Europa. Wir empfehlen diese Trennung: LiteLLM für Schlüssel und Budgets, Bedrock für das Modell. Welche Modelle überhaupt ein EU-Profil haben, steht in unserem Amazon-Bedrock-Überblick. Die Tokenpreise hinter dem Gateway stehen im Claude-API-Kostenvergleich.

Code außerhalb des Verzeichnisses enterprise/ steht unter der MIT-Lizenz, Copyright 2023 Berri AI. Die LICENSE legt alles unter enterprise/ auf eine eigene Lizenz. Betreiben Sie den Open-Source-Proxy. Gehen Sie nicht davon aus, dass Enterprise-Funktionen kostenlos sind, nur weil das GitHub-Repo öffentlich ist.

Aktuelles Release: v1.103.0, veröffentlicht am 28. September 2026. LiteLLM 1.84.0 und neuer verlangt Python 3.10 oder höher. Ein nacktes pip install auf einem älteren Interpreter bricht nicht ab. Es löst still auf 1.83.9 auf, das letzte Release, das dieses Python noch erlaubte. Prüfen Sie python --version vor der Installation, oder nutzen Sie uv tool install 'litellm[proxy]'. Das richtet einen passenden Interpreter ein.

Wie starten Sie LiteLLM mit einer Datenbank?

Der Docker-Schnellstart ist das Setup, das wir wirklich betreiben würden. Eine Compose-Datei startet das Gateway auf Port 4000 und eine Postgres-16-Datenbank für Modelle, virtuelle Schlüssel und Kostenprotokolle. Das Image in dieser Datei heißt docker.litellm.ai/berriai/litellm:main-stable. Dieselbe Seite sagt: jenseits eines lokalen Tests pinnen Sie ein Release-Tag. main-stable wandert. Pinnen Sie v1.103.0, sobald Sie es getestet haben.

Ohne zwei Geheimnisse startet der Proxy nicht:

  1. Erzeugen Sie LITELLM_MASTER_KEY und LITELLM_SALT_KEY. Die Doku nutzt openssl rand -hex 32 und ein Präfix sk-. Das Präfix ist Konvention, keine Pflicht.
  2. Starten Sie Compose. Das Gateway liegt auf http://localhost:4000. Die Admin-Oberfläche liegt unter /ui, Benutzername admin, Passwort ist der Master-Key.
  3. Legen Sie das Bedrock-Modell in der Oberfläche oder in config.yaml an. AWS-Schlüssel als os.environ/..., damit der Rohwert nicht in der Datenbank landet.
  4. Geben Sie pro Anwendung einen virtuellen Schlüssel aus. Verkehr geht an /chat/completions oder /v1/chat/completions.
  5. Behalten Sie die .env-Datei. Ein neues LITELLM_SALT_KEY macht bereits gespeicherte Zugangsdaten unlesbar. Eine Rotation im laufenden Betrieb gibt es nicht.

LITELLM_MASTER_KEY ist ein Root-Passwort. Er erlaubt jeden Verwaltungsaufruf und ist standardmäßig das Passwort der Admin-Oberfläche. Wer ihn hat, kann Schlüssel anlegen und Kosten lesen. Behandeln Sie ihn wie ein Produktivgeheimnis, nicht wie eine Zeile in der Compose-Datei, die Sie committen.

Postgres im Schnellstart nutzt Benutzer, Passwort und Datenbankname litellm. Das reicht für den ersten Start auf dem Laptop. Auf einem erreichbaren Host reicht es nicht. Ändern Sie das Passwort, veröffentlichen Sie Port 5432 nicht, und stellen Sie das Gateway hinter Ihre bestehenden Netzregeln. Die Datenbank-URL in der Compose-Datei lautet postgresql://litellm:litellm@db:5432/litellm, STORE_MODEL_IN_DB steht auf true.

Welche Bedrock-Modell-ID hält Claude in der EU?

Die Bedrock-Seite von LiteLLM zeigt als Beispiel bedrock/us.anthropic.claude-sonnet-5, AWS_REGION_NAME füllen Sie selbst. Wer diese Zeichenkette kopiert, schickt Sonnet 5 über das US-Geo-Profil. Die Modellkarte zu Sonnet 5 sagt, was jedes Profil tut.

Profil-ID Was AWS zu den Daten sagt
eu.anthropic.claude-sonnet-5 EU-Geo: Daten bleiben in EU-Regionen
us.anthropic.claude-sonnet-5 US-Geo: Daten bleiben in den USA und Kanada
global.anthropic.claude-sonnet-5 Global: weltweit, ohne Residenzbindung
anthropic.claude-sonnet-5 Nackte ID, nur am Endpunkt bedrock-mantle, nicht für On-Demand auf bedrock-runtime

Auf bedrock-runtime wird die nackte Modell-ID abgelehnt. AWS schreibt, Geo- und Global-Profile können Anfragen außerhalb der Quellregion routen und bieten keine Residenz in genau einer Region. EU-Geo ist die Residenzsteuerung für einen normalen Runtime-Aufruf. Single-Region für Sonnet 5 läuft über bedrock-mantle und die nackte ID. In der Mantle-Liste dieser Karte stehen eu-north-1 (Stockholm) und eu-west-1 (Irland). Frankfurt (eu-central-1) steht in der Runtime-Regionsliste. Von dort schicken Sie den EU-Geo-Aufruf. Das ist kein Versprechen, dass die Verarbeitung in genau einer Region bleibt.

Die Bedrock-Seite von Anthropic sagt, regionale Endpunkte kosten 10 Prozent mehr als globale, für Sonnet 4.5 und neuere Modelle. Dieser Aufschlag ist der Preis des EU-Profils. Dieselben 10 Prozent auf Bedrock und Google Cloud stehen im Kostenartikel. Claude Code direkt auf Bedrock, ohne dieses Gateway, ist ein anderes Setup: Claude Code auf Bedrock einrichten.

model_list:
  - model_name: claude-eu
    litellm_params:
      model: bedrock/eu.anthropic.claude-sonnet-5
      aws_region_name: eu-central-1
      aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID
      aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY

model_name ist der Name, den Ihre Anwendungen schicken (claude-eu). model ist das, was LiteLLM an Bedrock gibt. Nutzen Sie auf der Instanz eine IAM-Rolle, wo das geht. Statische Schlüssel in der Umgebung sind das, was die LiteLLM-Doku zeigt, und genau das verschlüsselt LITELLM_SALT_KEY, wenn Sie sie über die Oberfläche speichern.

Vertex ist der andere EU-Weg. Der CLI-Schnellstart dokumentiert VERTEX_PROJECT und VERTEX_LOCATION. Das Beispiel dort ist us-west. Setzen Sie den Ort auf die EU-Multi-Region oder EU-Region, in der Sie Claude schon betreiben, und verwenden Sie eine Modellzeichenkette mit vertex_ai/. Lassen Sie us-west nicht in einer europäischen Konfiguration stehen.

Wie stoppen Budgets einen ausgerissenen Schlüssel?

Jedes Budget auf der Budget-Seite wird gegen Ausgaben aus der Datenbank geprüft. Ohne Datenbank deckelt keins davon etwas. litellm_settings.max_budget läuft ins Leere: Die globalen Ausgaben werden nur geladen, wenn ein Datenbankclient existiert. Ohne Vergleichswert wird die Prüfung übersprungen, Anfragen laufen über das Limit hinaus weiter. Beim Start wird einmal eine Warnung geschrieben. Key-, Team- und Nutzerbudgets fehlen aus demselben Grund. Der Fehlertext lautet No connected db.

Das ist der Fehlermodus, der zählt. Ein Team setzt max_budget: 100, fühlt sich sicher, startet den Proxy ohne Postgres, und die Grenze feuert nie. Der Docker-Schnellstart vermeidet das, weil Postgres in der Compose-Datei steckt. Eine Zeile litellm --model ... aus dem CLI-Schnellstart tut das nicht.

Mit Datenbank liegen Anbieterbudgets unter router_settings.provider_budget_config. Die Seite zum Budget-Routing zeigt Grenzen in USD und Zeiträume wie 1d, 30d und 1mo. In den Beispielen stehen anthropic mit 100 USD über 10 Tage und vertex_ai mit 100 USD über 12 Tage. Ist ein Anbieter über dem Budget, überspringt der Proxy ihn. Sind alle Anbieter darüber, bekommt der Aufrufer HTTP 429 und eine Meldung der Form No deployments available - crossed budget for provider. Redis brauchen Sie nur, wenn mehrere Proxy-Instanzen einen gemeinsamen Zähler teilen. Eine einzelne EU-Instanz kann die Ausgaben allein in Postgres führen.

Zwei weitere Regeln derselben Seite, Stand v1.95.0. Gehört ein Schlüssel zu einem Team, wird das persönliche Nutzerbudget nicht durchgesetzt. Es gilt das Teambudget. v1.94.0 hat kurz beide geprüft, hinter einem Schalter namens skip_user_budget_on_team_key. v1.95.0 hat Schalter und Zusatzprüfung entfernt. Ein Modellbudget trifft den konfigurierten Namen und die Form mit Anbieterpräfix. Eine Grenze kann also claude-sonnet und bedrock/eu.anthropic.claude-sonnet-5 abdecken, wenn Sie sie auf den Familiennamen setzen, den Sie wirklich routen.

Wir würden drei Grenzen setzen, nicht eine: ein Anbieterbudget für bedrock oder anthropic, ein Teambudget pro Produkt, und ein niedriges Maximalbudget für jeden Schlüssel, der von einem Laptop kommt. Den Rest lesen Sie unter GET /provider/budgets mit einem Schlüssel, der das darf.

LiteLLM oder OpenRouter für Unternehmensdaten?

OpenRouter ist ein gehosteter Router. LiteLLM ist ein Prozess, den Sie betreiben. Die Datenschutzerklärung von OpenRouter sagt: Nutzen Sie den Dienst, können personenbezogene Daten auf Server von OpenRouter in den USA übertragen werden, oder in andere Länder außerhalb des EWR und des Vereinigten Königreichs. Text, den Sie eingeben und der personenbezogene Daten enthält, wird von OpenRouter erfasst. Für öffentliche Prompts kann das tragbar sein. Für Text über Beschäftigte oder Kunden ist es eine Übermittlung.

LiteLLM auf Ihrem EU-Host OpenRouter
Wer das Gateway betreibt Sie OpenRouter
Wo die Protokolle liegen Ihr Postgres Deren Dienst
Personenbezogene Daten, deren Worte Sie wählen die Region der VM Können auf US-Server oder außerhalb von EWR und UK gehen
Lizenz des Proxys MIT außerhalb von enterprise/ Gehostetes Produkt
Kostengrenze Wirkt nur mit Datenbank Deren Kontolimits

Wir würden personenbezogene Daten aus der EU nicht über OpenRouter schicken, wenn dieselbe Anwendung eine LiteLLM-Instanz in Ihrer VPC rufen kann. OpenRouter für Versuche ohne Personenbezug. LiteLLM plus EU-Geo-Profil, sobald der Prompt eine Person, einen Kunden oder eine Beschäftigte nennen kann. Der Rechtsvergleich der Claude-Anbieter ohne Gateway dazwischen steht in unserem DSGVO-Anbietervergleich.

FAQ

Wirkt ein LiteLLM-Budget ohne Postgres?

Nein. Budgets werden gegen Ausgaben in der Datenbank geprüft. Ohne Datenbank läuft das globale Maximalbudget ins Leere, Key-, Team- und Nutzerbudgets gibt es nicht. Der Docker-Schnellstart enthält Postgres 16 genau deshalb.

Ist das Bedrock-Beispiel von LiteLLM für EU-Daten tragbar?

Nein. Das dokumentierte Beispielmodell ist bedrock/us.anthropic.claude-sonnet-5. AWS sagt, dieses Profil hält Daten in den USA und Kanada. Nutzen Sie bedrock/eu.anthropic.claude-sonnet-5, wenn der Aufruf in EU-Regionen bleiben muss.

Was unterscheidet EU-Geo von Single-Region bei Sonnet 5?

EU-Geo (eu.anthropic.claude-sonnet-5) hält Daten in EU-Regionen, kann aber zwischen diesen Regionen routen. Eine einzelne Region verspricht es nicht. Single-Region nutzt den Endpunkt bedrock-mantle und die nackte Modell-ID. Die EU-Regionen von Mantle auf der Sonnet-5-Karte sind Stockholm und Irland.

Kostet der EU-Weg bei Bedrock mehr als Global?

Ja. Anthropic schreibt, regionale Endpunkte enthalten 10 Prozent Aufschlag gegenüber globalen Endpunkten, für Sonnet 4.5 und neuere Modelle. Globales Routing hat keinen Aufschlag und keine Residenzbindung.

LiteLLM oder OpenRouter: Wohin können personenbezogene Daten gehen?

Bei LiteLLM in die Region, in der Sie den Proxy betreiben, und in das Modellprofil, das Sie wählen. Bei OpenRouter erlaubt die Datenschutzerklärung eine Übermittlung auf Server in den USA oder in Länder außerhalb des EWR und des Vereinigten Königreichs. Eingaben mit Personenbezug erfasst OpenRouter.

Welche LiteLLM-Version sollte ein Unternehmen pinnen?

v1.103.0 vom 28. September 2026, solange kein neueres Release getestet ist. Das Image im Docker-Schnellstart heißt main-stable und wandert. Python muss 3.10 oder neuer sein, sonst installiert pip still 1.83.9.

Quellen

  1. LiteLLM Docs: CLI-Schnellstart (29. September 2026)
  2. LiteLLM Docs: Docker-Schnellstart (29. September 2026)
  3. LiteLLM Docs: Budgets und Ratenlimits (29. September 2026)
  4. LiteLLM Docs: Provider-Budget-Routing (29. September 2026)
  5. LiteLLM Docs: AWS Bedrock (29. September 2026)
  6. BerriAI/litellm LICENSE (29. September 2026)
  7. BerriAI/litellm Release v1.103.0 (29. September 2026)
  8. AWS: Modellkarte Claude Sonnet 5 (29. September 2026)
  9. Anthropic: Claude auf Amazon Bedrock (29. September 2026)
  10. OpenRouter Datenschutz (29. September 2026)

Weiterführende Guides