Managed LLM Platforms — Bedrock, Vertex AI, Azure OpenAI
The three hyperscalers made three different bets. AWS Bedrock is a model marketplace: Claude, Llama, Titan, Stability, and Cohere behind one API. Azure OpenAI is an exclusive OpenAI partnership, with Provisioned Throughput Units (PTUs) for dedicated capacity. Vertex AI is Gemini-first, with the strongest long-context and multimodal story. In 2026 Artificial Analysis measures Azure OpenAI at ~50 ms median and Bedrock at ~75 ms on Llama 3.1 405B equivalents, and PTUs explain the gap because dedicated capacity beats shared on-demand. The decision rule is not "which is fastest" but "which model catalog and FinOps surface match my product." Pick with the tradeoffs written down, not vibes.
Learning Objectives
- Name the three platform strategies (marketplace vs exclusive vs Gemini-first) and match each to a product use case.
- Explain what Provisioned Throughput Units (PTUs) buy you in Azure OpenAI and why on-demand Bedrock typically reads ~25 ms slower at the 405B scale.
- Diagram the FinOps attribution surface for each platform (Bedrock Application Inference Profiles vs Vertex project-per-team vs Azure scopes + PTU reservations).
- Write down a "two-provider minimum" policy and explain why single-vendor lock-in is the expensive mistake in 2026.
The Problem
You picked Claude 3.7 Sonnet for your product and now you need to serve it. You can call the Anthropic API directly, call it through AWS Bedrock, or go through a gateway. The direct API is the simplest. Bedrock adds BAAs, VPC endpoints, IAM, and CloudWatch attribution. A gateway adds failover, unified billing, and rate limits across providers.
The deeper question is catalog. If you need Claude and Llama and Gemini in the same product, you can't buy them all from one place unless that place is Bedrock plus Vertex plus Azure OpenAI at once. The hyperscalers are not interchangeable, because each one made a different bet on who owns the model layer.
This lesson maps the three bets, the latency gap, the FinOps gap, and the lock-in risk.
The Concept
Three strategies
AWS Bedrock is the marketplace. Claude (Anthropic), Llama (Meta), Titan (AWS first-party), Stability (image), Cohere (embeddings), Mistral, plus image and embedding sub-catalogs. One API, one IAM surface, one CloudWatch export. Bedrock's bet is that customers want optionality more than they want a single model.
Azure OpenAI is the exclusive partnership. You get GPT-4 / 4o / 5 / o-series, DALL·E, Whisper, and fine-tuning of OpenAI models in Azure datacenters. The "Azure OpenAI Service" catalog has no non-OpenAI models; those go to Azure AI Foundry, a separate product. Azure's bet is that OpenAI remains the frontier and customers want enterprise controls on that specific relationship.
Vertex AI puts Gemini first and everything else second. Gemini 1.5 / 2.0 / 2.5 Flash and Pro, plus Model Garden for third-party models. Vertex's bet is multimodal long context, and the 1M-token Gemini window is the differentiator.
Latency gap at scale
Artificial Analysis runs continuous benchmarks. On equivalent Llama 3.1 405B deployments (shared on-demand), Azure OpenAI median first-token latency is around 50 ms and Bedrock is around 75 ms. The gap is not an AWS failure. It comes from a difference in capacity model. Azure sells PTUs (Provisioned Throughput Units), which reserve GPU capacity for your tenant. Bedrock has an equivalent (Provisioned Throughput), but it starts around $21/hour per unit, and most customers stay on shared on-demand.
On-demand shared capacity competes with every other customer's traffic. Dedicated capacity does not. If your product SLA is TTFT < 100 ms at P99, you either buy PTUs on Azure, buy Bedrock Provisioned Throughput, or accept the default variance.
Provisioned Throughput economics
Azure PTUs are a reserved block of inference compute. You can save up to ~70% versus on-demand for predictable workloads. The cost is fixed per hour regardless of traffic, so you pay for the reservation even when idle. The break-even is usually around 40-60% sustained utilization.
Bedrock Provisioned Throughput runs $21-$50 per hour depending on model and region. The math is similar, with break-even around half of peak utilization, and it needs a monthly commitment.
Vertex provisioned capacity is sold per Gemini SKU. Pricing varies by model and region and is less publicly advertised.
FinOps surface: the real differentiator
Bedrock Application Inference Profiles are the cleanest attribution in the marketplace. Tag a profile with team, product, feature, route all model invocations through it, and CloudWatch breaks out cost per profile without post-processing. They were added in 2025 and are still the most granular native option among the hyperscalers.
Vertex attribution is project-per-team plus labels on everything. You model each team as a GCP project, put labels on every resource, and use BigQuery Billing Export + DataStudio for rollups. It's more work, but BigQuery gives you arbitrary SQL on the cost data.
Azure relies on subscription and resource-group scopes plus tags, with PTU reservations as a first-class cost object. Tags are inherited from resource groups, not requests, so per-request attribution requires Application Insights custom metrics or a gateway that stamps headers.
The pattern: Bedrock is cleanest native, Vertex is most flexible via BigQuery, and Azure is most opaque unless you instrument it.
Lock-in is the 2026 risk
Single-hyperscaler commitment was fine when one model dominated. In 2026 the frontier moves monthly: Claude 3.7 one quarter, Gemini 2.5 the next, GPT-5 the quarter after. Locking to one platform locks you out of two-thirds of the frontier.
The pattern working teams adopt is a two-provider minimum for any product-critical LLM call. Bedrock plus Azure OpenAI is the common pair, with Claude from one, GPT from the other, failover between them, and the same gateway in front. The cost uplift is small because the gateway routes to the cheaper path, and the availability uplift during outages (the Azure OpenAI January 2025 incident, the AWS us-east-1 outage) is decisive.
Data residency, BAAs, and regulated industries
Bedrock: BAAs in most regions, VPC endpoints, guardrails. A common fintech default. Azure OpenAI: HIPAA, SOC 2, ISO 27001, EU data residency. The enterprise-regulated default. Vertex: HIPAA, GDPR, data residency per region, and Google Cloud's compliance stack.
All three meet the basic checkbox. The differences are in data retention policies, how logs are handled, and whether abuse monitoring reads your traffic (opt-in by default on most, with opt-out available for enterprise).
Numbers you should remember
- Azure OpenAI median TTFT on Llama 3.1 405B equivalents: ~50 ms (with PTUs).
- Bedrock median TTFT on-demand: ~75 ms.
- Bedrock Provisioned Throughput: $21-$50/hr per unit.
- Azure PTU break-even: ~40-60% sustained utilization.
- PTU savings vs on-demand at high utilization: up to 70%.
Use It
code/main.py compares the three platforms on a synthetic workload. It models on-demand vs PTU economics, TTFT variance, and cost attribution fidelity. Run it to see where PTUs pay off and where the marketplace's model breadth outweighs a TTFT gap.
Ship It
This lesson produces outputs/skill-managed-platform-picker.md. Given a workload profile (models needed, TTFT SLA, daily volume, compliance requirements), it recommends a primary platform, a fallback, and a FinOps instrumentation plan.
I'd run main.py and read the PTU break-even sweep first. It holds the Azure rate fixed and steps utilization from 10% to 100%, so you see the exact row where the reservation starts to win. Prices and latencies in the toy are approximations that I'd treat as placeholders, and you should swap in the rate cards from Further Reading before trusting a number.
My bet is that the two-provider section is the one worth arguing with. The script prices redundancy as 3% gateway overhead plus 10% idle secondary headroom, which is 13% of primary spend on a 5M-token day. That is a small number next to a multi-hour outage, but it is not zero, and I'd rather you see it than take "negligible" on faith.
I'd also keep the comparator in proportion. It grades FinOps attribution with a letter and a label, and it can't tell you how much work Azure's tag instrumentation takes in your own org. The catalog question, which models you need, decides more than any row in its output. Start there, then use the numbers to break ties.
Exercises
- Run
code/main.py. At what sustained utilization does Azure PTU beat on-demand in the GPT-4o class sweep? Read the break-even row and compare to the advertised 40-60% band. - Your product needs Claude 3.7 Sonnet and GPT-4o. Design a two-provider deployment. Which model goes to which hyperscaler, what gateway sits in front, and what is the failover policy?
- A regulated healthcare customer requires BAAs, US-East data residency, and sub-100ms P99 TTFT. Pick a platform and justify with three specific features.
- You discover your Bedrock bill is up 4x this month with no traffic change. Without Application Inference Profiles, how would you find the culprit? With profiles, how long does it take?
- Read the Azure OpenAI and Bedrock pricing pages. For a 100M-token/month Claude workload, which is cheaper: direct Anthropic API, Bedrock on-demand, or Bedrock Provisioned Throughput?
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| Bedrock | "AWS LLM service" | Model marketplace across Claude, Llama, Titan, Mistral, Cohere |
| Azure OpenAI | "Azure's ChatGPT" | Exclusive OpenAI models in Azure datacenters with enterprise controls |
| Vertex AI | "Google's LLM" | Gemini-first platform with Model Garden for third-party models |
| PTU | "dedicated capacity" | Provisioned Throughput Unit, reserved inference GPUs, priced per hour |
| Application Inference Profile | "Bedrock tagging" | Per-product cost/usage profile with tags, CloudWatch-native |
| Model Garden | "Vertex catalog" | Vertex AI's third-party model section, separate from Gemini |
| Two-provider minimum | "LLM redundancy" | Policy of running every critical LLM path across ≥2 hyperscalers |
| BAA | "HIPAA paperwork" | Business Associate Agreement; required for PHI; provided by all three |
| Abuse monitoring | "the log watcher" | Provider-side safety scan on prompts/outputs; opt-out in enterprise |
Further Reading
- AWS Bedrock Pricing: authoritative rate card and Provisioned Throughput pricing.
- Azure OpenAI Service Pricing: PTU economics and rate cards.
- Vertex AI Generative AI Pricing: Gemini tiers and Model Garden surcharges.
- Artificial Analysis LLM Leaderboard: continuous latency and throughput benchmarks across providers.
- The AI Journal: AWS Bedrock vs Azure OpenAI CTO Guide 2026: enterprise decision framework.
- Finout: Bedrock vs Vertex vs Azure FinOps: attribution mechanics side-by-side.
Code
- main.py (python, 111 lines)