Почему Bedrock Projects съедают бюджет быстрее, чем вы успеваете сказать 'токен'?
Вы запустили первый проект на Amazon Bedrock. Модель отвечает, бизнес-процессы автоматизируются, все счастливы. А потом приходит счёт от AWS. И вы понимаете, что заплатили за вызовы к Claude 3.7 Sonnet больше, чем за аренду офиса. Знакомая история?
Проблема в том, что Bedrock - это не просто одна модель. Это десятки моделей от Anthropic, Meta, Amazon, Cohere. Каждая со своей ценой за токен. А ещё проекты: вы можете иметь несколько приложений, каждое со своими промптами, контекстами, пользователями. Без чёткой атрибуции затрат вы летите вслепую. Кто виноват в перерасходе? Маркетинг, который гоняет тонны текстов через модель? Или разработка, которая неэффективно использует контекст?
Контроль затрат в Bedrock - это не роскошь. Это необходимость, если вы не хотите, чтобы финансы пели романсы. И самое обидное: AWS даёт все инструменты для этого. Просто ими нужно правильно воспользоваться.
1 Тегирование: превращаем хаос в структуру
Теги - это не просто метки. Это ваш главный инструмент для атрибуции затрат. В Bedrock Projects вы можете назначать теги на уровне проектов, а также на уровне вызовов моделей (через метаданные). Но есть нюанс: теги в Bedrock не автоматически попадают в Cost Explorer. Нужно настроить их передачу.
Как это работает? Когда вы создаёте проект в Bedrock, вы назначаете ему теги. Например, Project=MarketingAssistant, Team=Growth, Environment=production. Эти теги прикрепляются к ресурсам проекта. Но затраты на вызовы моделей идут через службу Bedrock, и тут нужно убедиться, что теги передаются.
Внимание: По умолчанию теги из Bedrock Projects не всегда пропихиваются в детализацию затрат. AWS улучшила эту интеграцию к 2026 году, но проверьте свою конфигурацию.
Шаги по настройке тегирования:
- В консоли AWS перейдите в Amazon Bedrock → Projects.
- Создайте или выберите существующий проект.
- В разделе "Tags" добавьте теги. Используйте ключи, которые будут понятны вашему финансовому отделу:
CostCenter,Project,Owner. - Для вызовов через API: передавайте теги в заголовках или метаданных. Например, через
x-amzn-bedrock-project-arnили кастомные атрибуты.
Пример вызова через OpenAI-compatible API Bedrock с тегами:
import boto3
import json
bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')
response = bedrock.invoke_model(
modelId='anthropic.claude-3-7-sonnet-20250219',
contentType='application/json',
accept='application/json',
body=json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 100,
"messages": [{"role": "user", "content": "Hello"}]
}),
# Ключевой момент: передача ARN проекта для атрибуции
customAttributes={
'x-amzn-bedrock-project-arn': 'arn:aws:bedrock:us-east-1:123456789012:project/my-marketing-project'
}
)
Этот ARN проекта уже должен иметь теги. Тогда затраты на этот вызов будут ассоциированы с проектом и его тегами.
2 AWS Cost Explorer: где деньги утекли?
Cost Explorer - это ваша лупа для изучения расходов. Но чтобы увидеть затраты по тегам, нужно включить их в отчёты.
Сначала активируйте детализацию затрат по Bedrock. По умолчанию, Bedrock может быть сгруппирован с другими службами. В Cost Explorer выберите сервис "Amazon Bedrock", затем сгруппируйте по "Tag".
Если теги не отображаются, проверьте:
- Активирована ли детализация затрат в настройках Billing. Она должна быть включена.
- Прошло ли достаточно времени (до 24 часов) для обновления данных.
- Правильно ли передаются теги из Bedrock.
Настройте кастомные отчёты. Например, отчёт по затратам на Bedrock с группировкой по тегу "Project". Это покажет, сколько стоит каждый проект.
Но Cost Explorer - это реактивный инструмент. Вы видите, что уже потратили. Для проактивного контроля нужны бюджеты и алерты.
3 Автоматизация: когда руками уже не справиться
Если у вас десятки проектов и сотни вызовов в день, ручное тегирование и проверка Cost Explorer - это ад. Автоматизируйте.
Используйте AWS SDK или CLI для автоматического назначения тегов при создании проектов. Например, через CloudFormation или Terraform.
Но самое важное - автоматический сбор и анализ затрат. Вы можете использовать AWS Cost Explorer API для получения данных о расходах и интеграции с внутренними системами (например, для chargeback).
Пример скрипта на Python для получения затрат по Bedrock за последний месяц:
import boto3
from datetime import datetime, timedelta
cost_explorer = boto3.client('ce')
end = datetime.now()
start = end - timedelta(days=30)
response = cost_explorer.get_cost_and_usage(
TimePeriod={
'Start': start.strftime('%Y-%m-%d'),
'End': end.strftime('%Y-%m-%d')
},
Granularity='MONTHLY',
Filter={
'Dimensions': {
'Key': 'SERVICE',
'Values': ['Amazon Bedrock']
}
},
GroupBy=[
{'Type': 'DIMENSION', 'Key': 'SERVICE'},
{'Type': 'TAG', 'Key': 'Project'}
],
Metrics=['UnblendedCost']
)
print(response)
Этот скрипт вернёт затраты, сгруппированные по тегу "Project". Вы можете запускать его ежедневно и отправлять отчёты в Slack или по email.
Для более сложных сценариев рассмотрите FinOps агент на Amazon Bedrock AgentCore. Он может не только отслеживать затраты, но и принимать решения по оптимизации.
4 Анализ и оптимизация: режем затраты, не трогая функционал
Теперь, когда вы знаете, кто сколько тратит, можно оптимизировать. Вот несколько стратегий:
- Выбор модели: Claude 3.7 Sonnet дороже, чем Haiku. Может, для некоторых задач хватит Haiku? Используйте географическую маршрутизацию для выбора более дешёвых регионов.
- Управление контекстом: Длинный контекст - больше токенов, выше стоимость. Убедитесь, что вы не передаёте ненужные данные.
- Кэширование: Кэшируйте ответы моделей для одинаковых запросов. Зачем платить дважды за один и тот же ответ?
- Мониторинг квот: Следите за использованием TPM (токенов в минуту) с помощью новых CloudWatch метрик. Превышение квот ведёт к ошибкам, а значит, к потерям времени и денег.
Но самая большая экономия - это отключение ненужного. Регулярно проверяйте, какие проекты ещё активны. Удаляйте те, что не используются.
Где все ломается: частые ошибки и как их избежать
Даже с тегами и Cost Explorer можно наломать дров. Вот типичные ошибки:
| Ошибка | Последствие | Решение |
|---|---|---|
| Теги с ошибками в регистре (Project vs project) | Cost Explorer видит их как разные теги, атрибуция ломается | Используйте единый стандарт именования. Например, только lowercase. |
| Забыли передать ARN проекта в API вызовах | Затраты висят в "untagged", непонятно, кто виноват | Всегда передавайте customAttributes с ARN проекта. Настройте проверки в CI/CD. |
| Нет алертов на превышение бюджета | Узнаёте о перерасходе только когда приходит счёт | Настройте AWS Budgets с уведомлениями на 50%, 80%, 100%. |
| Игнорирование затрат на fine-tuning | Обучение моделей стоит дорого, но часто не учитывается | Отдельно тегируйте задания на fine-tuning. Смотрите статью про Reinforcement Fine-Tuning в Amazon Bedrock. |
И ещё: не надейтесь на память. Документируйте, какие теги используете, и для чего. Иначе через полгода никто не вспомнит, что значит тег "Env: prod".
FAQ: коротко о главном
Вопрос: Теги в Bedrock Projects автоматически появляются в Cost Explorer?
Ответ: Не всегда. Нужно убедиться, что детализация затрат включена и что теги правильно передаются. На 2026 год интеграция улучшена, но проверьте в своей учётной записи.
Вопрос: Можно ли тегировать отдельные вызовы моделей, а не только проекты?
Ответ: Да, через customAttributes в API вызова. Но это требует изменений в коде приложения. Для проектов достаточно указать ARN проекта.
Вопрос: Какой инструмент лучше для анализа затрат: Cost Explorer или кастомные скрипты?
Ответ: Cost Explorer хорош для ad-hoc анализа. Для автоматической отчётности и интеграции с другими системами (например, Jira для chargeback) используйте API Cost Explorer или специализированные инструменты типа FinOps агента.
Вопрос: Сколько стоит само тегирование и использование Cost Explorer?
Ответ: Тегирование бесплатно. Cost Explorer также бесплатен, но для детализации затрат может взиматься небольшая плата (около $0.01 за GB данных). Уточняйте в документации AWS на текущую дату.
И последнее: не зарывайтесь в цифрах
Контроль затрат - это не цель, а средство. Не превращайте его в самоцель, где вы экономите на всём, а функционал страдает. Баланс. Иногда дорогой вызов к модели приносит миллионы, а иногда дешёвый - только затраты.
Начните с тегирования. Затем настройте алерты. Затем автоматизируйте отчёты. И помните: самый дорогой токен - это токен, который не принёс ценности. Удачи, и пусть ваш счёт от AWS всегда будет предсказуемым.