Type something to search...
AWS Production Readiness Checklist for AI Workloads

AWS Production Readiness Checklist for AI Workloads

An AI workload on AWS is ready for production when every check below is backed by evidence you can point to: a configuration, an alarm, a test result, a restore record. The checklist has 44 checks across eight areas, from Bedrock quotas and agent permissions to restores, rollbacks and on-call. It combines four sets of published AWS guidance into one pass: the Operational Readiness Review questions Amazon developed to confirm a team can operate a workload before it launches, the AWS Startup Security Baseline, and the Well-Architected Generative AI and Agentic AI lenses. Each check links to the AWS best practice behind it.

Why an AI Workload Needs Its Own Checklist

Most production checklists were written for services whose dependencies behave predictably. A model call differs in four ways, and each one changes what “ready” means:

  • It is a quota-bound remote dependency. Bedrock meters inference against per-model token quotas, and requests beyond them are throttled. Launch traffic is often the first time a workload meets those limits.
  • Its output varies. The same input can produce a different answer, so quality is measured by evaluation rather than asserted by a unit test.
  • It is metered per token. A looping agent or an abusive user turns directly into spend, which makes cost ceilings a reliability control as much as a finance one.
  • It handles sensitive data. Prompts and retrieved context carry user records, and model invocation logging, when enabled, records full request and response data.

The first two areas below cover these differences. Areas 3 to 8 apply to any production workload on AWS, and an AI product needs them just as much.

How to Use the Checklist

Rate every check in one of five ways:

RatingMeaning
ReadyEvidence seen: the configuration, alarm or record exists and does what the check describes
BlockerMust close before launch traffic arrives
Fix within 30 daysA real risk the workload can carry at launch volume
Accepted riskThe team chooses to carry it, with a named owner and a written reason
Not applicableRecorded with the reason, such as a workload with no agents

Two rules keep the ratings honest. Rate a check ready only on evidence, since a runbook someone plans to write is still a gap. And treat an accepted risk without an owner as a blocker, because nobody will revisit it.

The areas are independent of each other, so they can be split across a team and worked in parallel.

1. Model Layer

For workloads calling Bedrock, SageMaker endpoints or another model API.

CheckReady meansHow to verify
Backend-only model accessThe model is called from the application’s backend under an IAM role scoped to the models it uses, and no provider key or AWS credential ships in a browser or mobile bundleSearch the built client bundle for API keys and model endpoints, then read the resources on the role’s bedrock:InvokeModel permission
Quota headroomRequests-per-minute and tokens-per-minute quotas cover projected peak with margin, for every model and Region the workload callsCompare the Bedrock quotas in Service Quotas with a peak estimate expressed in tokens as well as requests
Throttling pathThrottled calls retry with backoff, then degrade deliberately: a second model, a queued response, or a clear message to the userForce a throttle in staging and observe what the user sees
Prompt versioningPrompts live in version control or a prompt catalog and reach production through a reviewed release, the same way code doesIdentify the production prompt’s version and the change that shipped it
Evaluation gateA fixed evaluation set runs against any prompt or model change before release, with a pass threshold agreed in advanceThe pipeline step or release record showing the last result
Input and output controlsUser input is validated and size-limited before it reaches the model, and output on user-facing paths passes a filter such as Bedrock GuardrailsGuardrail configuration, tested against a set of prompt injection attempts
Invocation logging decisionModel invocation logging is either on, with access and retention set for the user data it records, or off by a recorded decisionaws bedrock get-model-invocation-logging-configuration in each Region the workload uses

Cross-Region inference profiles belong under quota headroom rather than the throttling path. They raise the throughput available to a model by routing requests across Regions within a geography, and AWS describes them as a capacity mechanism rather than a failover mechanism. A workload using one still needs its own answer for what happens when a call is throttled.

The evaluation gate is also what makes a later model change safe. Model evals covers how to build the evaluation set.

2. Agents and Tools

Applies where a model calls tools or takes actions on a user’s behalf.

CheckReady meansHow to verify
Tool permissionsEach tool runs under a role scoped to the actions it performs, so the agent’s reach is the sum of narrow grantsRead the IAM policy behind each tool
Loop boundsStep limits and a per-session token or cost ceiling end a run that has stopped making progressTrigger a looping task in staging and confirm it terminates at the limit
Human approvalIrreversible or external actions, such as payments, outbound email or deletes, wait for explicit approvalWalk the workflow for each such action
TracesEvery run records its reasoning steps, tool calls with inputs and outputs, and model invocations, kept on a defined retention policyReconstruct one past session end to end from its trace

Loop bounds and the per-session ceiling are the same control seen from two sides: one ends the run, the other limits what the run can spend before it ends. What an agent costs per conversation explains why that spend grows faster than the number of steps. For agents hosted on AgentCore Runtime, AgentCore Observability captures tool invocations, model calls and error paths as traces in CloudWatch.

3. Account and Access

CheckReady meansHow to verify
Production isolationProduction runs in its own AWS account, separate from development and stagingThe account list in AWS Organizations
Root userMFA registered, no access keys, and account contact details currentAccountMFAEnabled and AccountAccessKeysPresent in aws iam get-account-summary
Human accessPeople sign in through IAM Identity Center or another federated identity provider, and any remaining IAM user keys are listed with a reasonThe IAM credential report
Pipeline accessCI/CD assumes a role through OIDC federation and receives temporary credentials, and that role can change only what the pipeline deploysaws iam list-open-id-connect-providers, then the deploy role’s trust and permission policies
Audit trailA multi-Region CloudTrail trail delivers to a bucket that the workload’s roles cannot modify or delete fromIsMultiRegionTrail in aws cloudtrail describe-trails, then the bucket policy
Threat detectionGuardDuty is enabled in every supported Region, and its findings reach someone who acts on themaws guardduty list-detectors per Region, plus the notification target

4. Network and Data

CheckReady meansHow to verify
ExposureOnly intended entry points accept internet traffic, databases and internal services sit in private subnets, and S3 Block Public Access is on at account levelSecurity groups open to 0.0.0.0/0, and aws s3control get-public-access-block --account-id <account-id>
SecretsCredentials and API keys are held in Secrets Manager or Parameter Store and read at runtimeTask definitions and function configuration, plus a secret scan of the repository
Encryption (at rest, in transit)Data stores encrypt at rest, and every public endpoint serves TLS onlyEncryption settings on each store, and load balancer listeners
BackupsEvery stateful store is backed up automatically, on a schedule derived from its recovery point objectiveaws backup list-backup-plans, plus native backup settings on RDS and DynamoDB
Restore testedA restore has been carried out, timed, and checked for usable dataThe restore record: date, duration and what was checked
Deletion safeguardsDeletion protection on production databases, and versioning on buckets that hold data you cannot regenerateDeletionProtection in aws rds describe-db-instances, and aws s3api get-bucket-versioning --bucket <name>

The restore check is the one most often rated ready on assumption. A backup job that reports success shows that data was copied. Only a restore shows that the copy is usable and how long recovery takes, which is the number the recovery time objective in area 5 depends on.

5. Failure and Recovery

CheckReady meansHow to verify
Failure modelEach component and dependency is listed with its failure type, service impact and customer impact, including the loss of an Availability ZoneThe written table
Availability Zone lossCompute and stateful tiers span at least two Availability Zones, and the workload keeps serving through the loss of one without manual changesSubnet placement and Multi-AZ settings, then a failover test
Timeouts and retries (timeouts, retries)Connection and request timeouts are set deliberately on SDK and HTTP clients; synchronous paths retry sparingly, and asynchronous work backs off exponentially with jitterClient configuration in code
Tenant fairnessPer-customer rate limits throttle one customer’s surge before it exhausts capacity shared with everyone elseAPI Gateway usage plans or the application’s rate limiter
Recovery objectivesRTO and RPO are stated for the workload, and the backup and deployment design can meet themCompare the targets with backup frequency and measured restore time
Restart runbookWritten steps bring the service back from fully stopped, with no circular dependency between componentsThe runbook, exercised at least once

AWS’s own guidance on retries is more specific than most teams expect. For a dependency called inside a synchronous request, the ORR example questions recommend retrying once immediately and then giving up. Exponential backoff with jitter is for work requested asynchronously. Applying backoff to a synchronous path holds the user’s request open while the dependency is already struggling.

6. Release and Change

CheckReady meansHow to verify
Infrastructure as codeProduction resources are defined in Terraform, CDK or CloudFormation and change through a pipeline, with console changes rare and back-portedCompare the infrastructure code with the live account inventory
Second reviewerEvery production change, including infrastructure and configuration, is approved by someone other than its authorBranch protection and pipeline approval settings
RollbackA failed deployment can be reverted in minutes, and the path has been usedDeployment history showing a completed rollback
Load testTested at projected peak and at a surge from a single customer, with the breaking point and first bottleneck knownLoad test results
Environment parityStaging is built from the same infrastructure code as production, with different inputsInfrastructure modules and per-environment variables

For an AI workload, the load test is also the quota test. Run it against the same model, Region and inference profile production uses, so the first throttling event happens in a test.

7. Monitoring and On-Call

CheckReady meansHow to verify
Symptom alarmsAlarms fire on what customers experience, such as error rate, p99 latency and failed jobs, in addition to resource metricsCloudWatch alarms and the metrics behind them
Synthetic checkA canary runs the main user flow on a schedule and alarms within minutes of a failureCloudWatch Synthetics canaries and their alarms
Dependency dashboardThe operational dashboard shows critical dependencies, including model latency, throttles and token usageThe dashboard itself
On-callEvery alarm reaches a named person on a rota with a defined response, and that person has production accessAlarm actions, the rota and the access list
RunbooksThe top failure modes in the failure model each have a runbookRunbooks mapped to rows of the failure model
LogsApplication logs are centralised, searchable, access-controlled and kept on a set retentionretentionInDays in aws logs describe-log-groups

8. Spend at Launch Traffic

A bill that multiplies in the first week of launch is an operational incident, so four cost checks belong in a readiness review.

CheckReady meansHow to verify
Unit costCost per request or per conversation is estimated at launch volume, model tokens includedThe estimate and the assumptions behind it
Budget and anomaly alertsAWS Budgets and Cost Anomaly Detection notify a named personAlert subscriptions in the Billing and Cost Management console
Cost allocation tagsTags split spend by environment and service, and are activated for cost allocationTag coverage in Cost Explorer
Spend ceilingsPer-customer token or request caps stop one customer from driving the billRate limiter and quota configuration

Why your Bedrock bill makes no sense covers building per-feature and per-user cost visibility from data you already have.

What a Completed Review Produces

A finished pass through the checklist produces two documents:

  1. The readiness report. Every check rated, with the evidence behind each rating, and the failure model from area 5.
  2. The action plan. Blockers first, each with the change that closes it, followed by the items to fix within 30 days, each with an owner and a date.

The checklist is also meant to be run again. AWS recommends repeating readiness reviews through a workload’s life to catch drift from best practice (OPS07-BP02), so rerun it before each major launch and after significant architecture changes.

Want us to run this review on your AWS account? Our AWS production readiness review works through every check on this list, and you get the readiness report and the action plan.

Key Takeaways

  • Rate a check ready only on evidence you have seen, and treat an unowned accepted risk as a blocker.
  • Bedrock quotas are per model and per Region; size them in tokens against projected peak, and run the load test against the same model and Region production uses.
  • Cross-Region inference adds capacity, and the throttling path still needs its own fallback.
  • Agents need scoped tool permissions, loop and spend limits, approval for irreversible actions, and traces that can reconstruct a session.
  • A backup only counts as ready once a restore has been carried out and timed.
  • Rerun the checklist before each major launch; readiness drifts as the workload changes.

Launch date set, and unsure which of these are blockers?

Book a 30-minute call with Pratik for a straight read on which checks your launch depends on and which can wait a month.

Book an intro call

Related Posts

What an AI Agent Costs Per Conversation on AgentCore

What an AI Agent Costs Per Conversation on AgentCore

You can read AgentCore's per-service rates straight off the AWS pricing page. What that page can't tell you — and what you actually need before you build a business on agents — is what one of your u

Read more
Bedrock Agents vs AgentCore: What to Use Now

Bedrock Agents vs AgentCore: What to Use Now

Updated 2 September 2026: Amazon Bedrock Agents Classic moved to maintenance mode in June 2026. This post has been rewritten around the options that are actually available now. **Amazon Bedrock Age

Read more
Connect Claude Code to Live AWS Tools with the Agent Toolkit

Connect Claude Code to Live AWS Tools with the Agent Toolkit

AI coding agents are getting remarkably capable — but they have a blind spot. The models powering them were trained on data that's months or years old. When you ask your agent about Amazon S3 Tables,

Read more
Why Your AWS Bedrock Bill Makes No Sense (And How to Fix It)

Why Your AWS Bedrock Bill Makes No Sense (And How to Fix It)

When a startup says "our AWS bill is too high," the conversation almost always starts at the aggregate level — total monthly spend, a few large services, maybe a spike someone noticed. That's not wher

Read more
AWS Bedrock Cost Structure: What You're Actually Paying For

AWS Bedrock Cost Structure: What You're Actually Paying For

AWS Bedrock looks simple from the outside — call an API, get a response, pay per token. The reality is that a production Bedrock setup has several distinct cost layers, and they behave very differentl

Read more
AWS Bedrock vs SageMaker: How to Pick the Right One

AWS Bedrock vs SageMaker: How to Pick the Right One

If you're building an AI product on AWS, you'll hit this question early: Bedrock or SageMaker? The short answer is that they solve different problems, and most startups only need one. What Each Se

Read more
Stretch Your Claude Code Budget with Bedrock Prompt Caching

Stretch Your Claude Code Budget with Bedrock Prompt Caching

Anthropic recently tightened usage limits on Claude Code — and if you're doing serious development work, you feel it. Long refactoring sessions, codebase-wide architecture questions, iterative debuggi

Read more
When Is Self-Hosting an LLM Cheaper Than Bedrock?

When Is Self-Hosting an LLM Cheaper Than Bedrock?

Two questions send teams down this path: "our Bedrock bill is growing, should we run this on our own GPU?" and "we fine-tuned a Llama, where does it go?" For most teams the answer to both is no, a

Read more
Cheaper Alternatives to AWS in 2026: What Each One Cuts

Cheaper Alternatives to AWS in 2026: What Each One Cuts

There is no single cheapest alternative to AWS, because AWS bills are not shaped the same way. A bill dominated by EC2 has a different answer from one dominated by egress, RDS or GPU-hours. And severa

Read more
Deploying Engineering Resource Management Knowledge Graph on AWS

Deploying Engineering Resource Management Knowledge Graph on AWS

Resource planning in engineering orgs is a multi-hop problem. The data is there — skills, project history, availability — it's just stored in flat tables that you need to join on demand. This post wal

Read more
Hetzner vs AWS: The Real Cost Difference in 2026

Hetzner vs AWS: The Real Cost Difference in 2026

For a standing 8-vCPU, 16 GB server, AWS charges about $212 per month on demand and Hetzner charges €20.99, or roughly $25. That is a factor of nine, and it is not a rounding error. The gap is also no

Read more
RAG, GraphRAG, and Knowledge Graphs: What's Actually Different

RAG, GraphRAG, and Knowledge Graphs: What's Actually Different

LLMs are stateless. They don't know your documents, your internal data, or what changed last week. They're only as good as what you put in front of them. This gave rise to what's now called context en

Read more
Leaving AWS for Hetzner: What You Have to Rebuild

Leaving AWS for Hetzner: What You Have to Rebuild

Moving from AWS to Hetzner keeps compute, block storage, private networking, load balancers, DNS and object storage, and replaces the managed database, the managed Kubernetes control plane, IAM, Cloud

Read more
LLM Inference on AWS: Every Option Explained

LLM Inference on AWS: Every Option Explained

AWS gives you two fundamentally different ways to run an LLM -SageMaker, you provision and pay for the infrastructure that serves the model. Bedrock, AWS already runs the model, and you just call

Read more
Model Evals: How to Know If You Can Use a Cheaper Model

Model Evals: How to Know If You Can Use a Cheaper Model

An eval, in the AI FinOps context, is a structured comparison: run a representative sample of real production inputs through your current model and a cheaper candidate, score both against a defined qu

Read more
How to Build RAG on Your S3 Documents with Bedrock

How to Build RAG on Your S3 Documents with Bedrock

If your documents already sit in Amazon S3 and you want to ask questions of them, the shortest path on AWS is Amazon Bedrock Managed Knowledge Base: point it at the bucket, and it handles parsing,

Read more
S3 Vectors vs OpenSearch Serverless for RAG on AWS

S3 Vectors vs OpenSearch Serverless for RAG on AWS

This is a choice you only face on the customer-managed path — if you have not ruled out the fully managed option yet, [building RAG on your S3 documents with Bedrock](/blog/rag-on-s3-documents-with-be

Read more
What Is a Knowledge Graph?

What Is a Knowledge Graph?

A knowledge graph stores information as entities and the relationships between them — not rows and columns, but a web of connected facts. The Idea Is Simple Three building blocks:Nodes —

Read more
What Is AI FinOps?

What Is AI FinOps?

AI FinOps is the practice of making AI workload costs visible, attributable, and optimizable — applied to the specific economics of model inference, where the unit of cost is the token, not the instan

Read more
What Is Amazon Bedrock AgentCore? (And When to Use It)

What Is Amazon Bedrock AgentCore? (And When to Use It)

Amazon Bedrock AgentCore is a managed platform for deploying and operating AI agents you've already built — in any framework, with any model — without managing the runtime, memory, identity, or observ

Read more