본문으로 건너뛰기

Amazon Bedrock 개인별 지출을 실시간 통제하는 Jamf 아키텍처

Jamf가 Amazon Bedrock 토큰 비용을 개인별 예산과 IAM 정책으로 통제하는 서버리스 구조를 구축했습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

생성형 AI 비용은 프로비저닝된 용량보다 사용자의 호출 행동과 토큰 소비에 따라 빠르게 달라져, 조직이 AI 접근을 넓히려면 개인별 지출과 예산 통제가 필요합니다. Jamf는 Amazon Bedrock 호출 로그를 Amazon S3에 저장하고 Amazon Athena 뷰로 사용자별 당일 비용을 계산한 뒤, 15분마다 실행되는 AWS Lambda가 임계값에 따라 Customer Managed Policy 버전을 갱신하는 서버리스 구조를 구축했습니다. 일일 예산의 80%에서는 Anthropic Claude Opus, 100%에서는 Anthropic Claude Sonnet을 차단하면서 Anthropic Claude Haiku는 계속 허용하고, 제한은 재인증 없이 다음 호출부터 적용되며 일일 리셋 뒤 자동으로 해제됩니다. 수백 명 규모에서 Lambda·DynamoDB·S3 비용은 월 10달러 미만이었지만 Athena는 JSON 스캔량에 따라 비용이 커질 수 있어, 쿼리 통합이나 Parquet 변환과 함께 운영해야 합니다.

섹션별 상세

01
생성형 AI 비용은 고정된 컴퓨팅 용량이 아니라 사용자의 호출 행동과 토큰 소비에 따라 움직이므로, 한 명의 엔지니어가 프리미엄 모델을 집중 사용하면 팀 단위 예산을 빠르게 소진할 수 있습니다. Jamf는 AI 지원 개발을 위해 엔지니어 조직에 Amazon Bedrock 접근 권한을 넓힌 뒤, 생산성 증가와 함께 사용자별 비용 가시성과 책임 관리가 필요해졌습니다. 이 문제를 해결하려면 개인별 지출을 측정하고, 업무를 완전히 중단하지 않으면서 한도를 적용하며, AI 활용 가치와 비용을 함께 판단해야 합니다.
02
Amazon Bedrock 호출 로그는 모델 ID, 입력·출력 토큰 수, 사용자 식별자를 포함해 Amazon S3에 저장되고, Amazon Athena의 bedrock_cost_today 뷰가 모델별 공개 요율을 토큰 수에 곱해 당일 사용자별 비용을 계산합니다. Athena는 별도 데이터 파이프라인 없이 원시 로그를 조회하며, 모델 가격이 매핑되지 않은 경우에는 우회 방지를 위해 최고 요율로 계산합니다. 이 비용 뷰가 사용자별 누적 지출을 제공하므로 이후 제한 판단이 실제 사용량에 연결됩니다.
Amazon Bedrock 호출이 Amazon S3와 Amazon Athena를 거쳐 AWS Lambda의 비용 판단으로 이어지고, DynamoDB와 EventBridge가 보조하는 서버리스 비용 통제 흐름도입니다.
Diagram그림은 측정, 판단·알림, 적용의 세 영역으로 아키텍처를 나눕니다. Bedrock 로그를 S3에 쌓은 뒤 Athena가 비용을 계산하고, Lambda가 DynamoDB 상태·예외 정보와 EventBridge 일정에 따라 Customer Managed Policy를 갱신해 IAM Identity Center permission set을 통해 사용자의 다음 호출을 제한합니다. Slack은 제한 단계의 알림 경로로 연결되어 비용 통제와 사용자 안내가 하나의 반복 루프를 이룹니다.
03
Amazon EventBridge가 15분마다 AWS Lambda를 호출하면 Lambda는 Athena 비용 뷰와 Amazon DynamoDB의 예외 테이블을 함께 읽어 등급별 제한 사용자 목록을 산출합니다. 지출이 새 임계값을 넘은 사용자에게는 이전 상태를 기록한 DynamoDB 상태 테이블을 바탕으로 해당 등급의 Slack 다이렉트 메시지를 한 번만 보내고, 정책 버전에는 saml:sub 조건을 넣어 대상 사용자를 특정합니다. Lambda가 iam:CreatePolicyVersion으로 Customer Managed Policy를 갱신하면 IAM Identity Center 권한 집합에 연결된 정책이 다음 Bedrock 호출에서 새 권한을 평가하므로 재인증이 필요하지 않습니다.
04
제한은 단계적으로 적용되어 일일 예산의 80%에서 Anthropic Claude Opus, 100%에서 Anthropic Claude Sonnet 접근을 막지만 Anthropic Claude Haiku는 계속 허용합니다. 따라서 예산을 모두 사용한 엔지니어도 저비용 모델로 작업을 이어갈 수 있고, 제한은 다음 일일 창에서 전체 사용자 목록을 다시 계산할 때 자동으로 해제됩니다. 대규모 마이그레이션이나 고객 대응처럼 더 높은 한도가 필요한 경우에는 /bedrock-limit Slack 명령이 만료 시각과 승인자를 포함한 예외를 DynamoDB에 기록하고, TTL이 만료된 항목을 자동 정리합니다.
05
운영 비용은 수백 명 규모에서 AWS Lambda, DynamoDB, S3를 합쳐 월 10달러 미만이었지만 Amazon Athena의 스캔량과 실행 빈도는 별도 관리가 필요합니다. JSON 로그는 선택한 열과 무관하게 모든 행을 역직렬화하므로, 동일한 뷰에 대해 네 개의 필터 쿼리를 실행했을 때 각각 약 11GB를 스캔했습니다. 파생 쿼리를 하나의 SELECT ... GROUP BY로 합쳐 애플리케이션에서 나누거나 로그를 Parquet으로 변환하면 반복 스캔 부담을 줄일 수 있으며, 정책 버전은 최대 5개만 유지되므로 Lambda가 새 버전 생성 전에 오래된 비기본 버전을 삭제해야 합니다.

용어 해설

AI 비용 운영·관리(AI FinOps)
AI 서비스 사용량과 비용을 사용자·팀·프로젝트 단위로 측정하고, 예산 한도·예외 승인·감사 기록을 운영하는 체계입니다. 생성형 AI에서는 토큰 사용량이 호출 방식과 모델 선택에 따라 달라지므로, 기존 인프라 비용 관리보다 세밀한 관찰과 통제가 필요합니다.
고객 관리형 정책(Customer Managed Policy)
AWS 계정 사용자가 직접 생성하고 버전과 권한 규칙을 관리하는 IAM 정책입니다. 이 글에서는 Lambda가 사용자별 임계값에 따라 정책 버전을 갱신하고, IAM Identity Center 권한 집합에 연결된 정책이 다음 Bedrock 호출의 허용 여부를 결정하도록 사용합니다.
SAML 주체 식별자(saml:sub)
SAML 기반 인증에서 특정 사용자를 식별하는 조건 키 값입니다. Jamf의 정책은 이 값을 기준으로 특정 엔지니어에게만 모델 접근 제한을 적용하므로, 공통 권한 집합을 유지하면서 사용자별 통제가 가능합니다.
멱등형 적용(Idempotent Enforcement)
같은 작업을 여러 번 실행하거나 일부 실행을 놓쳐도 최종 상태가 동일하게 수렴하는 처리 방식입니다. Lambda가 증분 변경을 누적하지 않고 당일 누적 지출에서 전체 제한 사용자 목록을 매번 다시 계산하므로, 중복 적용이나 별도 롤백 경로가 필요하지 않습니다.
컬럼형 데이터 형식(Columnar Format)
행 전체가 아니라 열 단위로 데이터를 저장해 필요한 열만 읽을 수 있도록 만든 형식입니다. 원본 JSON 로그는 필터링한 열과 관계없이 행을 역직렬화해야 하지만, Parquet 같은 컬럼형 형식으로 변환하면 Athena 쿼리의 스캔 비용과 처리량을 개선할 여지가 있습니다.

기술

  • Amazon Bedrock
  • AWS Identity and Access Management (IAM)
  • IAM Customer Managed Policies (CMPs)
  • AWS IAM Identity Center
  • Amazon S3
  • Amazon Athena
  • AWS Lambda
  • Amazon EventBridge
  • Amazon DynamoDB
  • Slack
  • AWS CLI
  • Parquet

활용 사례

  • 엔지니어별 Amazon Bedrock 일일 지출 한도 적용
  • AI 코딩 도구의 모델별 접근 제한
  • 대규모 생성형 AI 도입을 위한 비용 거버넌스
  • 예외 승인과 만료를 포함한 모델 사용량 관리
  • 저비용 모델을 남겨 둔 단계적 서비스 제한

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 02.수집 2026. 09. 02.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.