AWS Bedrock vs OpenAI: Ein praktischer Vergleich

"Welche LLM-API soll ich nutzen?" ist die häufigste Frage in KI-Projekten. Die Antwort ist selten eindeutig, denn AWS Bedrock und OpenAI lösen unterschiedliche Probleme. Bedrock ist kein OpenAI-Konkurrent, sondern ein Managed Service, der Foundation Models verschiedener Anbieter unter einem Dach bündelt. OpenAI bietet eigene Spitzenmodelle mit einer der besten Developer Experiences am Markt.
Dieser Artikel vergleicht beide Plattformen anhand konkreter Kriterien: API-Integration mit Code-Beispielen, Kosten pro Token, Datenschutz und DSGVO, RAG-Fähigkeiten und Latenz. Am Ende steht ein Entscheidungsframework, das dir hilft, die richtige Wahl für dein Projekt zu treffen. Falls du bereits RAG-Systeme in Produktion betreibst, hilft dieser Vergleich bei der Plattformwahl für die nächste Iteration.
Was ist AWS Bedrock?
Amazon Bedrock ist ein vollständig verwalteter Service, der Foundation Models über eine einheitliche API bereitstellt. Im Gegensatz zu OpenAI entwickelt AWS keine eigenen LLMs (mit Ausnahme der Amazon Nova und Titan Familien), sondern hostet Modelle von Drittanbietern.
Verfügbare Modelle (Stand März 2026)
| Anbieter | Modelle | Stärke |
|---|---|---|
| Anthropic | Claude Sonnet 4.6, Opus 4.6, Haiku 4.5 | Reasoning, Coding, längere Kontexte |
| Meta | Llama 4 Scout, Llama 4 Maverick, Llama 3.3 70B | Open Source, kosteneffizient |
| Mistral | Mistral Large 3, Pixtral Large, Magistral Small | Europäischer Anbieter, mehrsprachig |
| Amazon | Nova Pro, Nova Lite, Nova Micro | Extrem günstig, AWS-nativ |
| DeepSeek | DeepSeek-R1, DeepSeek V3.2 | Reasoning, Open Source |
| Cohere | Command R+, Embed v4, Rerank 3.5 | RAG-optimiert, Embeddings |
Kernfeatures
Bedrock bietet neben der reinen Model-Invocation vier zentrale Features:
- Knowledge Bases: Managed RAG ohne eigene Infrastruktur (S3, OpenSearch, Aurora, Neptune)
- Agents: Orchestrierung von Multi-Step-Workflows mit Tool Use
- Guardrails: Content-Filter, PII-Erkennung, Topic-Restrictions
- Model Evaluation: Automatisierte Qualitätsbewertung verschiedener Modelle
Vergleichsmatrix: Die wichtigsten Dimensionen
Bevor wir in die Details gehen, hier der Überblick:
| Kriterium | AWS Bedrock | OpenAI API |
|---|---|---|
| Modellauswahl | 100+ Modelle von 10+ Anbietern | Eigene Modelle (GPT, o-Series, DALL-E, Whisper) |
| Spitzenmodell | Claude Opus 4.6, Claude Sonnet 4.6 (via Anthropic) | GPT-4o, o1, o3-mini |
| Günstigstes Modell | Nova Micro ($0.035/1M Input) | GPT-4o mini ($0.15/1M Input) |
| Data Residency | eu-central-1 Frankfurt, 7+ EU-Regionen | EU (EWR), kein spezifisches Land wählbar |
| Authentifizierung | IAM Roles, keine API-Keys nötig | API-Key pro Projekt |
| VPC-Isolation | PrivateLink, Traffic verlässt nie AWS | Öffentliches Internet |
| RAG (Managed) | Knowledge Bases (S3, OpenSearch, Neptune GraphRAG) | Assistants API mit File Search |
| Fine-Tuning | Unterstützt (modellabhängig) | Unterstützt (GPT-4o, GPT-4o mini) |
| Compliance | SOC 1/2/3, ISO 27001, HIPAA, FedRAMP | SOC 2, ISO 27001, HIPAA (BAA) |
| Developer Experience | AWS SDK (boto3), steilere Lernkurve | OpenAI SDK, sehr gute DX |
Praxisvergleich: API-Integration
Der beste Vergleich ist Code. Hier die gleiche Aufgabe mit beiden APIs: eine einfache Chat Completion mit System-Prompt.
Bedrock mit boto3 (Converse API)
import boto3
client = boto3.client("bedrock-runtime", region_name="eu-central-1")
response = client.converse(
modelId="eu.anthropic.claude-sonnet-4-6",
messages=[
{
"role": "user",
"content": [{"text": "Was ist Retrieval-Augmented Generation?"}]
}
],
system=[{"text": "Du bist ein hilfreicher KI-Assistent."}],
inferenceConfig={
"temperature": 0.5,
"maxTokens": 512
}
)
text = response["output"]["message"]["content"][0]["text"]
usage = response["usage"]
print(f"Input: {usage['inputTokens']}, Output: {usage['outputTokens']}")
print(text)OpenAI SDK
from openai import OpenAI
client = OpenAI() # nutzt OPENAI_API_KEY aus Umgebungsvariable
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "Du bist ein hilfreicher KI-Assistent."},
{"role": "user", "content": "Was ist Retrieval-Augmented Generation?"}
],
temperature=0.7,
max_tokens=512
)
text = response.choices[0].message.content
usage = response.usage
print(f"Input: {usage.prompt_tokens}, Output: {usage.completion_tokens}")
print(text)Was fällt auf?
Authentifizierung: Bedrock nutzt IAM. Wenn dein Code auf EC2, ECS oder Lambda läuft, brauchst du keinen API-Key. Die Instanz-Rolle übernimmt die Authentifizierung automatisch. OpenAI braucht immer einen API-Key, der sicher gespeichert und rotiert werden muss.
Message-Format: Bedrock's Converse API wrappet den Text in ein content-Array mit Typ-Objekten ({"text": "..."}). Das ist ausführlicher, ermöglicht aber nativ multimodale Inputs (Text + Bild im selben Request). OpenAI's Format ist kompakter für reine Text-Anfragen.
Modellwechsel: Bei Bedrock änderst du nur die modelId, um von Claude auf Llama oder Mistral zu wechseln. Die Converse API abstrahiert die modellspezifischen Unterschiede. Bei OpenAI bist du an OpenAI-Modelle gebunden.
Streaming-Vergleich
Beide APIs unterstützen Streaming für Echtzeit-Ausgaben:
Bedrock:
response = client.converse_stream(
modelId="eu.anthropic.claude-sonnet-4-6",
messages=[
{"role": "user", "content": [{"text": "Erkläre RAG in 3 Sätzen."}]}
],
inferenceConfig={"temperature": 0.5, "maxTokens": 256}
)
for event in response.get("stream", []):
if "contentBlockDelta" in event:
print(event["contentBlockDelta"]["delta"]["text"], end="")OpenAI:
stream = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "Erkläre RAG in 3 Sätzen."}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")OpenAI's Streaming-API ist etwas eleganter. Bedrock's Event-basiertes Format braucht mehr Parsing-Logik, bietet dafür aber strukturierte Metadaten (Token-Usage) im Stream.
Kosten im Detail
Die Preisunterschiede sind erheblich und hängen stark vom gewählten Modell und Nutzungsmuster ab.
On-Demand-Preise pro 1M Tokens (März 2026)
| Modell | Input / 1M Tokens | Output / 1M Tokens | Plattform |
|---|---|---|---|
| Amazon Nova Micro | $0.035 | $0.14 | Bedrock |
| Amazon Nova Lite | $0.06 | $0.24 | Bedrock |
| GPT-4o mini | $0.15 | $0.60 | OpenAI |
| Amazon Nova Pro | $0.80 | $3.20 | Bedrock |
| Claude 3.5 Haiku | $0.80 | $4.00 | Bedrock |
| Claude Sonnet 4.6 | $3.00 | $15.00 | Bedrock |
| GPT-4o | $2.50 | $10.00 | OpenAI |
| o3-mini | $1.10 | $4.40 | OpenAI |
| o1 | $15.00 | $60.00 | OpenAI |
| Claude Opus 4.6 | $15.00 | $75.00 | Bedrock |
Rechenbeispiel: 1 Million Anfragen pro Monat
Angenommen: durchschnittlich 500 Input-Tokens und 300 Output-Tokens pro Anfrage.
| Modell | Monatliche Kosten |
|---|---|
| Amazon Nova Micro | $0.06 |
| GPT-4o mini | $0.26 |
| Amazon Nova Pro | $1.36 |
| Claude Sonnet 4.6 | $6.00 |
| GPT-4o | $4.25 |
Nova Micro ist 70x günstiger als GPT-4o. Die Qualität ist natürlich nicht vergleichbar, aber für einfache Klassifikation, Zusammenfassungen oder Routing-Entscheidungen reicht ein kleines Modell oft aus.
Provisioned Throughput vs. Rate Limits
Bedrock bietet Reserved Capacity und Provisioned Throughput für planbare Workloads. OpenAI arbeitet mit Tier-basierten Rate Limits, die mit steigendem Umsatz automatisch erhöht werden.
Für Workloads mit gleichmäßiger Last (z.B. eine interne RAG-API mit 50 Anfragen pro Minute) kann Bedrock Provisioned Throughput 30 bis 50% günstiger sein als On-Demand. Für sporadische Nutzung (z.B. ein Chatbot mit Peaks) ist On-Demand bei beiden Plattformen sinnvoller.
Datenschutz und Compliance
Für europäische Unternehmen ist Datenschutz oft das entscheidende Kriterium.
Data Residency
AWS Bedrock: Du kannst eu-central-1 (Frankfurt) als Region wählen. Mit Cross-Region Inference (CRIS) bleiben alle Daten innerhalb der EU. CloudWatch-Logs, CloudTrail-Einträge und Model-Invocation-Logs werden nur in der Quellregion gespeichert. Du weißt exakt, in welchem Rechenzentrum deine Daten verarbeitet werden.
OpenAI: Seit Februar 2025 bietet OpenAI Data Residency in Europa an. Die Daten werden im Europäischen Wirtschaftsraum (EWR) gespeichert. Allerdings: Du kannst kein spezifisches Land wählen (z.B. nur Deutschland), die Option ist nur für Enterprise-Kunden verfügbar, und sie muss bei Projekt-Erstellung aktiviert werden. Bestehende Projekte lassen sich nicht migrieren.
VPC-Isolation
Bedrock unterstützt AWS PrivateLink. Das bedeutet: Der Traffic zwischen deiner Anwendung und Bedrock verlässt nie das AWS-Netzwerk. Kein DNS-Lookup über das öffentliche Internet, keine exponierte Endpunkt-URL. Für Anwendungen in regulierten Umgebungen (Banken, Versicherungen, Gesundheitswesen) ist das oft eine Pflichtanforderung.
OpenAI-Anfragen gehen über das öffentliche Internet. TLS 1.2+ verschlüsselt den Transport, aber der Traffic ist grundsätzlich öffentlich routbar.
Compliance-Vergleich
| Zertifizierung | AWS Bedrock | OpenAI API |
|---|---|---|
| SOC 2 Type II | Ja | Ja |
| ISO 27001 | Ja | Ja |
| ISO 27701 (Privacy) | Ja | Ja |
| HIPAA | Eligible | BAA verfügbar |
| FedRAMP | Moderate + High (GovCloud) | Nein (nur Azure OpenAI) |
| CSA STAR Level 2 | Ja | Nein |
Für den öffentlichen Sektor oder US-Regierungsprojekte ist Bedrock mit FedRAMP-Zertifizierung die einzige direkte Option. OpenAI's FedRAMP-Zertifizierung läuft über Azure OpenAI Service, nicht über die direkte API.
RAG-Integration
Beide Plattformen bieten Managed RAG, aber mit unterschiedlichen Philosophien.
Bedrock Knowledge Bases
Bedrock Knowledge Bases ist eine vollständig verwaltete RAG-Lösung:
import boto3
client = boto3.client("bedrock-agent-runtime", region_name="eu-central-1")
response = client.retrieve_and_generate(
input={"text": "Wie funktioniert unser Rückgabeprozess?"},
retrieveAndGenerateConfiguration={
"type": "KNOWLEDGE_BASE",
"knowledgeBaseConfiguration": {
"knowledgeBaseId": "KB12345ABCDE",
"modelArn": "arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-sonnet-4-6"
}
}
)
print(response["output"]["text"])
# Quellenangaben abrufen
for citation in response.get("citations", []):
for ref in citation.get("retrievedReferences", []):
print(f"Quelle: {ref['location']['s3Location']['uri']}")Du lädst Dokumente in S3 hoch, Bedrock chunked, embeddet und indexiert sie automatisch. Abfragen liefern Antworten mit Quellenangaben. Unterstützte Vector Stores:
| Vector Store | Typ | Besonderheit |
|---|---|---|
| Amazon S3 Vectors | Object Storage | Bis zu 90% günstiger als dedizierte Vector-DBs |
| OpenSearch Serverless | Managed | Standard-Option, Hybrid Search |
| Aurora PostgreSQL | Relational | Hybrid Search (semantisch + keyword) |
| Neptune Analytics | Graph | GraphRAG für Entitäten und Beziehungen |
| Pinecone | Third-Party | Hohe Performance |
| MongoDB Atlas | Third-Party | Hybrid Search |
OpenAI Assistants mit File Search
from openai import OpenAI
client = OpenAI()
# Vector Store erstellen und Dateien hochladen
vector_store = client.vector_stores.create(name="Unternehmensdokumentation")
file = client.files.create(
file=open("handbuch.pdf", "rb"),
purpose="assistants"
)
client.vector_stores.files.create(
vector_store_id=vector_store.id,
file_id=file.id
)
# Assistant mit File Search
assistant = client.assistants.create(
name="Unternehmens-Assistent",
model="gpt-4o",
tools=[{"type": "file_search"}],
tool_resources={
"file_search": {
"vector_store_ids": [vector_store.id]
}
}
)
# Abfrage
thread = client.threads.create()
client.threads.messages.create(
thread_id=thread.id,
role="user",
content="Wie funktioniert unser Rückgabeprozess?"
)
run = client.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant.id
)
messages = client.threads.messages.list(thread_id=thread.id)
print(messages.data[0].content[0].text.value)Vergleich
| Aspekt | Bedrock Knowledge Bases | OpenAI Assistants |
|---|---|---|
| Setup | S3-Bucket + Konfiguration | Dateien hochladen |
| Vector Store | 6+ Optionen (S3, OpenSearch, Aurora, Neptune, Pinecone, MongoDB) | OpenAI-eigener Store |
| GraphRAG | Ja (Neptune Analytics) | Nein |
| Hybrid Search | Ja (semantisch + keyword) | Semantisch |
| Chunking | Konfigurierbar (fixed, semantic, hierarchical) | Automatisch (800 Token Chunks) |
| Kosten-Kontrolle | Volle Kontrolle über Vector Store | Opake Preisgestaltung ($0.10/GB/Tag) |
| Flexibilität | Hoch (eigene Embeddings, eigener Vector Store) | Niedrig (alles managed) |
Für Teams, die bereits auf AWS aufbauen und Kontrolle über ihre RAG-Pipeline brauchen, sind Knowledge Bases die bessere Wahl. Für schnelle Prototypen ohne AWS-Infrastruktur ist OpenAI's Assistants API einfacher. Falls du tiefer in RAG-Architekturen einsteigen willst, findest du in unserem Artikel zu RAG und CRAG die theoretischen Grundlagen.
Latenz und Performance
Latenz ist für interaktive Anwendungen (Chatbots, Echtzeit-Suche) entscheidend.
Time-to-First-Token (TTFT)
| Modell | TTFT (Median) | Bemerkung |
|---|---|---|
| GPT-4o | 200 bis 400ms | Konstant, Tier-abhängig |
| GPT-4o mini | 150 bis 300ms | Schnellstes OpenAI-Modell |
| Claude Sonnet 4.6 (Bedrock) | 300 bis 600ms | CRIS kann 50 bis 100ms addieren |
| Nova Pro (Bedrock) | 200 bis 400ms | AWS-nativ, geringe Latenz |
| Nova Micro (Bedrock) | 100 bis 200ms | Schnellstes Bedrock-Modell |
Cold Starts bei Bedrock: Nach längerer Inaktivität (10+ Minuten ohne Anfragen) kann die erste Anfrage 1 bis 3 Sekunden länger dauern. Das betrifft vor allem selten genutzte Modelle. Provisioned Throughput eliminiert Cold Starts komplett.
OpenAI Rate Limits: OpenAI drosselt nach Tier. Kostenlose Tier: 3 RPM (Requests pro Minute). Tier 5: 10.000 RPM. Für Production-Workloads ist mindestens Tier 3 nötig.
Streaming-Verhalten
Beide APIs unterstützen Streaming, aber mit unterschiedlicher Granularität. OpenAI streamt einzelne Tokens. Bedrock streamt in kleinen Chunks (typischerweise 2 bis 5 Tokens), was minimal höheren Durchsatz bei marginal höherer Latenz zwischen Chunks ergibt.
Terraform: Bedrock-Zugang einrichten
Für Teams, die Bedrock in ihre bestehende AWS-Infrastruktur integrieren, hier ein Terraform-Beispiel:
# IAM-Rolle für die Anwendung
resource "aws_iam_role" "bedrock_app" {
name = "bedrock-app-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Principal = {
Service = "ecs-tasks.amazonaws.com"
}
Action = "sts:AssumeRole"
}
]
})
}
# Bedrock-Berechtigungen (Least Privilege)
resource "aws_iam_role_policy" "bedrock_invoke" {
name = "bedrock-invoke"
role = aws_iam_role.bedrock_app.id
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Sid = "BedrockInvoke"
Effect = "Allow"
Action = [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
]
Resource = [
"arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-sonnet-4-6",
"arn:aws:bedrock:eu-central-1::foundation-model/amazon.nova-pro-v1:0"
]
}
]
})
}
# VPC Endpoint für private Konnektivität (optional)
resource "aws_vpc_endpoint" "bedrock_runtime" {
vpc_id = var.vpc_id
service_name = "com.amazonaws.eu-central-1.bedrock-runtime"
vpc_endpoint_type = "Interface"
subnet_ids = var.private_subnet_ids
security_group_ids = [aws_security_group.bedrock_endpoint.id]
private_dns_enabled = true
}Bei OpenAI gibt es kein Infrastruktur-Setup. Du erstellst einen API-Key im Dashboard und speicherst ihn als Umgebungsvariable oder in einem Secrets Manager. Das ist einfacher, bietet aber weniger Kontrolle über Netzwerk und Zugriff.
Entscheidungsframework
Statt einer pauschalen Empfehlung hier drei typische Szenarien:
Szenario 1: Startup ohne AWS-Infrastruktur
Empfehlung: OpenAI
Du hast kein AWS-Konto, keine VPC, kein IAM. Du willst schnell einen Prototyp bauen und validieren. OpenAI's SDK ist in 5 Minuten eingerichtet, die Dokumentation ist hervorragend, und die Community ist groß. GPT-4o mini bietet gute Qualität zu niedrigen Kosten.
Szenario 2: Enterprise mit AWS-Stack und Compliance-Anforderungen
Empfehlung: Bedrock
Dein Unternehmen läuft auf AWS. Daten müssen in der EU bleiben. Du brauchst VPC-Isolation, IAM-Integration und Audit-Logs. Bedrock fügt sich nahtlos in die bestehende Infrastruktur ein. Keine zusätzlichen API-Keys, keine externen Abhängigkeiten. Claude Sonnet 4.6 über Bedrock liefert vergleichbare Qualität zu GPT-4o.
Szenario 3: Hybrid-Ansatz
Empfehlung: OpenAI für Prototyp, Bedrock für Produktion
Starte mit OpenAI für schnelle Iteration und Validierung. Wenn der Use Case bewiesen ist und Produktion ansteht, migriere zu Bedrock. Die Converse API macht den Wechsel einfacher, da du nur die Client-Initialisierung und das Message-Format anpassen musst. Die Geschäftslogik bleibt gleich.
Entscheidungskriterien auf einen Blick
| Frage | Wenn ja → | Wenn nein → |
|---|---|---|
| Müssen Daten in einer spezifischen EU-Region bleiben? | Bedrock | Beide |
| Brauchst du VPC-Isolation? | Bedrock | Beide |
| Hast du bereits AWS-Infrastruktur? | Bedrock (einfachere Integration) | OpenAI (schnellerer Start) |
| Brauchst du mehrere Modell-Anbieter? | Bedrock | Beide |
| Ist Developer Experience die Top-Priorität? | OpenAI | Beide |
| Brauchst du FedRAMP? | Bedrock | Beide |
| Budget unter $50/Monat? | Bedrock (Nova Micro) oder OpenAI (GPT-4o mini) | Beide |
Fazit
AWS Bedrock und OpenAI sind keine direkten Konkurrenten. Bedrock ist ein Multi-Modell-Service mit tiefer AWS-Integration, starkem Datenschutz und Modellvielfalt. OpenAI bietet eigene Spitzenmodelle mit der besten Developer Experience am Markt.
Die drei wichtigsten Entscheidungskriterien sind:
-
Datenschutz und Compliance: Wenn du spezifische EU-Regionen, VPC-Isolation oder FedRAMP brauchst, führt kein Weg an Bedrock vorbei. OpenAI's EU Data Residency ist ein guter Anfang, bietet aber weniger Granularität.
-
Bestehende Infrastruktur: Wenn dein Stack auf AWS läuft, integriert sich Bedrock ohne zusätzliche Credentials oder Netzwerk-Konfiguration. Wenn du kein AWS nutzt, ist OpenAI der schnellere Einstieg.
-
Modellflexibilität: Bedrock gibt dir Zugang zu Claude, Llama, Mistral, Nova und mehr. Wenn ein Modell für deinen Use Case nicht optimal ist, wechselst du mit einer Zeile Code. Bei OpenAI bist du an das OpenAI-Ökosystem gebunden.
Falls du bereits an der CI/CD-Pipeline für KI-Systeme arbeitest, bildet die Plattformwahl das Fundament für die Deployment-Architektur. Im nächsten Artikel gehen wir einen Schritt weiter: RAG-Infrastruktur auf AWS mit GPU-Clustern, ECS und Terraform. Wie du die Qualität deiner RAG-Pipeline systematisch misst, erfährst du im Artikel zu RAG Evaluation und Testing.
Sie evaluieren LLM-Plattformen für Ihr Unternehmen und brauchen Unterstützung bei der Architekturentscheidung? Kontaktieren Sie mich für eine unverbindliche Beratung.