Tokenomics at scale: How Jamf built real-time spend enforcement for Amazon Bedrock
Amazon Web Services Arun Chandapillai
Jamf put real-time spending caps on Amazon Bedrock for each engineer. It keeps AI access open, but clamps down when usage gets too pricey.
Based on reporting by Amazon Web Services, Arun Chandapillai — read the original for the full story.
Summary, retelling and take written by AI under human oversight; images are AI-generated illustrations. How we work · Report an error
Generative AI costs don’t behave like normal cloud bills. A single engineer in an agentic coding loop can run through tokens fast enough to make a week’s worth of usage look quaint. That’s the problem Jamf ran into after broadening Amazon Bedrock access across its engineering team: the productivity lift was real, but so was the need to see spend per person before the invoice showed up.
Jamf’s answer was not a monthly report and a stern email. It built a production system that watches each engineer’s daily Bedrock spend and changes what they can use as they approach a budget. At 80% of the daily limit, Anthropic Claude Opus gets cut off. At 100%, Anthropic Claude Sonnet goes too. Claude Haiku stays available, so work can keep moving instead of grinding to a halt.
The mechanics are deliberately plain. Bedrock invocation logs land in Amazon S3 with model IDs, token counts, and user identity. An Amazon Athena view turns those logs into per-user daily dollars by multiplying token counts by published rates. Then an AWS Lambda function, triggered every 15 minutes by Amazon EventBridge, reads that spend data, checks a DynamoDB exceptions table, and updates enforcement policies.
Those policies are Customer Managed Policies attached to an IAM permission set. When the Lambda needs to restrict someone, it publishes a new policy version with iam:CreatePolicyVersion and targets the user through a saml:sub condition key. IAM evaluates the change on the next Bedrock call, with no re-authentication. Jamf also sends a one-time Slack direct message when someone crosses a new tier, so the restriction doesn’t land like a trapdoor.
The design leans on a few practical choices. It is idempotent, so if the Lambda runs twice or misses a run, it still converges on the same answer. The daily reset is built in through the Athena window, which rolls over at 00:00 in the chosen reference time zone. And if someone genuinely needs more room for a migration or escalation, a Slack slash command can grant a time-boxed exception that expires automatically.
The ugly truth is that Athena can become the expensive part if you’re careless, because JSON logs make every query scan every byte. Jamf says Lambda, DynamoDB, and S3 stayed well under $10 a month for hundreds of engineers, while Athena needed more attention. The payoff was bigger than a tidy bill, though: once leadership could see and cap per-user spend, it got more comfortable expanding access instead of pulling it back.
My take — AI-written commentary, not fact-checked reporting
This is the grown-up way to do AI rollout: budgets first, hype second, panic never. The neat part is not the cap itself, but the fact that Jamf kept a cheap model alive so engineers still had somewhere to go when the fancy one shut its wallet. Most teams would rather buy another “AI platform” than build guardrails, which is how they end up funding a very expensive surprise.
Read more about this at: Amazon Web Services