An application inference profile wraps a Bedrock model with your own cost-allocation tags, so you can split Bedrock spend by app, team or cost center. Here is how they differ from system-defined profiles, how to create and call one, where the cost shows up, and how they work with cross-region inference.
They solve a governance problem, not a performance one. A plain Bedrock bill shows what each model cost, not which app or team drove the spend.
When you call a model by its bare model ID, usage is attributed to that model only. If three apps and two teams call the same Claude or Amazon Nova model, their spend lands in one bucket. On a shared account with several GenAI features, that makes the Bedrock line impossible to govern.
An application inference profile is a resource in your account that wraps a model (or another inference profile) and carries tags you define, such as application=support-bot, team=growth, environment=prod or cost-center=4012. You call the profile instead of the bare model. The model, request and response are the same, but every token of usage carries your tags. It changes the accounting, not the result. You can create one per app, per team, per environment or a mix. See the Bedrock inference profiles guide.
Profiles do not make inference faster or cheaper. They make spend attributable: "what did the support bot cost last month?" and "which team drives our Bedrock growth?" become answerable.
Bedrock uses "inference profile" for two related things. AWS publishes one kind; you create the other.
System-defined inference profiles are published by AWS per model: geographic ones (US, EU, APAC) and, for some models, a global one. Their job is cross-region routing: Bedrock serves the request from a Region in the profile with capacity, which raises throughput and resilience. You reference them; you do not create them. See cross-region inference.
Application inference profiles are ones you create in your account. Their job is cost attribution and governance through your tags. You control their lifecycle.
They compose. An application profile's source can be a single-Region model or a system-defined profile. Point it at a system-defined cross-region profile and one ARN gives you routing and your tags (section VI).
| Dimension | System-defined profile | Application profile |
|---|---|---|
| Who creates it | AWS | You, in your account |
| Main purpose | Cross-region routing | Cost attribution via tags |
| Carries your tags | No | Yes |
| Scope | Per model; geographic or global | Per account; as many as you need |
| Source it wraps | The model across a geography | A single-Region model or a system-defined profile |
| You manage its lifecycle | No | Yes (create, tag, delete) |
| Per-token cost | Model's on-demand rate | Model's on-demand rate |
You name a source, attach tags, and get back an ARN. Calling that ARN is what produces tagged usage.
CreateInferenceProfile is in the Bedrock API and SDKs, the AWS CLI and the console (see creating an application inference profile). Create a few by hand, then move them into infrastructure as code once the tagging scheme settles. Delete profiles with DeleteInferenceProfile when an app is retired. Tags follow standard AWS tagging limits.
One step people miss: tags on the profile make usage carry them, but a tag does not appear in Cost Explorer or the Cost and Usage Report until you activate it in the Billing console (section V).
(1) Create: call CreateInferenceProfile with a copyFrom source ARN and your tags. (2) Invoke: pass the returned ARN as the modelId in InvokeModel or Converse. (3) Activate: turn on the tag keys in the Billing console. Only after all three is spend split by your tags.
Wherever your code passes a model ID, pass the profile ARN instead. Nothing else changes.
In InvokeModel and Converse, the target is the modelId parameter. Set it to the profile's ARN. The request body, parameters, streaming and response are the same as for the underlying model. It works across InvokeModel, InvokeModelWithResponseStream, Converse and ConverseStream, and is usually a one-line config change.
Make the model identifier a config value per app or environment. The support bot points at the support-bot profile ARN; the analytics job at the analytics ARN. Both can resolve to the same model, but their usage is separated. Grant IAM permission to invoke the profile and the model it wraps. The rule that makes it work: each workload calls its own profile. If everything calls one shared profile or the bare model, you get no split.
Once the tags are active, profile usage shows up split by your tags in Cost Explorer and the Cost and Usage Report.
First, activate the cost-allocation tags on the Cost Allocation Tags page of the Billing console (see the AWS guide to activating tags). A tag shows in cost reports only from activation onward, not back in time. Activate the keys when you roll out the profiles.
In Cost Explorer you can then group Bedrock spend by application, filter to one team, or split by environment. AWS Budgets can alert per tag value, so a team crossing its limit gets a notice instead of a month-end surprise.
In the Cost and Usage Report (CUR), activated tags appear as columns. You can query Bedrock spend by tag in Athena or load it into a FinOps tool to build showback or chargeback reports. Cost Explorer is for exploring; the CUR is for reporting and automation.
You do not have to choose between tagging and cross-region routing.
Set an application profile's copyFrom source to a system-defined cross-region profile. The application profile then routes requests across that geography's Regions for capacity and stamps usage with your tags. For example, a support bot can run on an application profile that wraps the US cross-region profile for Claude, getting US-wide headroom and a clean application=support-bot line in Cost Explorer.
Wrapping does not change where data is processed: requests stay within the wrapped profile's Regions (one geography for a geographic profile, any supported commercial Region for a global one). If your rules pin data to a single Region, wrap a single-Region model instead. You keep the tags and give up cross-region routing on that path.
Profiles turn shared Bedrock spend into numbers each team owns.
Showback shows each team what its Bedrock use costs. Chargeback moves that cost into the team's or business unit's budget. Both need spend tagged by team and cost center, with the tags activated. With profiles in place, the single Bedrock line becomes a set of numbers, each with an owner.
Attributable spend allows per-team budgets and alerts. A team that sees its own GenAI bill tends to use the cost levers (right-size models, caching, Batch) that an unaccountable team ignores.
The same tags support governance: knowing which apps use which models, requiring workloads to go through approved profiles, and fitting Bedrock into the tag-based policies you already run elsewhere on AWS.
Scope: profiles give you the attribution layer. They do not reduce the bill by themselves (see the cost-optimization page) or build the reports (that is your FinOps tooling).
Calls through a profile are billed at the model's normal rate, so they draw down AWS credits like any Bedrock usage. Setting up attribution properly is real engineering work.
The work includes a tagging scheme that holds up as the company grows, wiring each workload to its profile, activating and checking the tags, building the showback reports, and adding cross-region routing where needed.
Partner-filed funding: a vetted AWS partner can file POC (proof of concept) funding for a new GenAI workload, or incremental workload (IW) funding if you already run on AWS and are launching new work. For startups this is typically $50K to $150K. Depends on the workload; AWS approves.
AWS Activate: you apply yourself. Activate Founders gives self-funded startups $1,000 to start, up to $5,000. Activate Portfolio gives up to $200,000 with the Org ID from your VC, accelerator or angel group, if it is an Activate Provider. A consulting partner cannot file Activate for you.
CloudRoute matches you with one vetted AWS partner with FinOps experience who can build the attribution and check which funding fits. Startups pay CloudRoute nothing. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
| Funding | Who files it | Amount | When it fits |
|---|---|---|---|
| Migration Acceleration Program (MAP) | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are not on AWS yet and want to migrate. |
| Proof of concept (POC) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You want to test something, whether or not you are on AWS today. |
| Incremental workload (IW) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract. |
| AWS Activate Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
| AWS Credits for AI Startups | Invite only (AWS account manager) | $200,000 or more, by invitation | AI startups ready to scale after Activate Portfolio, invited by AWS. |
The inference is identical. What changes is the accounting and what you can do with it.
| Variable | Bare model ID | Application inference profile |
|---|---|---|
| Cost attribution | One bucket per model | Split by your tags |
| Tagged in Cost Explorer | No | Yes, once tags are activated |
| Columns in the CUR | No | Yes, activated tag columns |
| Showback and chargeback | No | Yes |
| Per-team budgets and alerts | No | Per tag value (AWS Budgets) |
| Cross-region routing | Only via a system-defined profile | Yes, if it wraps a system-defined profile |
| Per-token cost | On-demand rate | Same on-demand rate |
| Runtime change | modelId = the model | modelId = the profile ARN |
| Best for | One workload or a quick test | Multi-app, multi-team setups |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the test with you. Then it checks whether the test qualifies for POC (proof of concept) funding. A POC can fit whether or not you run on AWS today.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
A vetted AWS partner with FinOps experience can build the tagging scheme, profiles, Cost Explorer and CUR reporting, and chargeback. The same partner checks whether the work qualifies for POC or IW funding: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.