Искусственный интеллект
Manage AI costs with Amazon Bedrock Projects
По мере масштабирования AI-нагрузок в Amazon Bedrock понимание того, что именно формирует расходы, становится критически важным. Командам может понадобиться выполнять chargeback, разбираться в скачках затрат и принимать решения по оптимизации — для этого нужна атрибуция расходов на уровне конкретной нагрузки.
С помощью Amazon Bedrock Projects можно относить затраты на inference к конкретным рабочим нагрузкам и анализировать их в AWS Cost Explorer и AWS Data Exports. В этой статье показано, как настроить Projects end-to-end — от разработки стратегии тегирования до анализа расходов.
Как работают Amazon Bedrock Projects и распределение затрат
Project в Amazon Bedrock — это логическая граница, которая представляет рабочую нагрузку, например приложение, окружение или эксперимент. Чтобы отнести стоимость проекта, нужно добавить resource tags и передать project ID в API-вызовах. Затем можно активировать cost allocation tags в AWS Billing, чтобы фильтровать, группировать и анализировать расходы в AWS Cost Explorer и AWS Data Exports.
Следующая диаграмма показывает полный поток работы:

Figure 1: End-to-end cost attribution flow with Amazon Bedrock Projects
Примечания:
- Amazon Bedrock Projects поддерживают OpenAI-compatible APIs: Responses API и Chat Completions API.
- Запросы без project ID автоматически связываются с default project в вашем AWS account.
Предварительные требования
Чтобы повторить шаги из этой статьи, вам потребуется:
- Доступ к Amazon Bedrock через OpenAI SDK. Начать можно с Amazon Bedrock Quickstart.
- IAM permissions для Amazon Bedrock Projects, inference и tagging. Для этого примера можно прикрепить AWS managed policy AmazonBedrockMantleFullAccess. Для production см. Implementing least privilege for Amazon Bedrock.
- Доступ к консоле AWS Billing and Cost Management console.
Определите стратегию тегирования
Теги, которые вы прикрепляете к project, становятся измерениями, по которым можно фильтровать и группировать данные в отчетах о расходах. Мы рекомендуем продумать их до создания первого project. Распространенный подход — тегировать по application, environment, team и cost center:
| Tag key | Purpose | Example values |
| Application | Какой workload или service | CustomerChatbot, Experiments, DataAnalytics |
| Environment | Стадия жизненного цикла | Production, Development, Staging, Research |
| Team | Владелец | CustomerExperience, PlatformEngineering, DataScience |
| CostCenter | Привязка к финансам | CC-1001, CC-2002, CC-3003 |
Подробнее о построении стратегии распределения затрат см. в Best Practices for Tagging AWS Resources. Когда стратегия тегирования определена, можно создавать projects и начинать атрибутировать затраты.
Создайте project
Когда стратегия тегирования и permissions настроены, можно создать первый project. У каждого project есть собственный набор cost allocation tags, который попадает в billing data. В следующем примере показано, как создать project с помощью Projects API.
Сначала установите необходимые зависимости:
$ pip3 install openai requests
Создайте project с вашей таксономией тегов:
OpenAI SDK использует переменную среды OPENAI_API_KEY. Укажите в ней ваш Bedrock API key.
import os
import requests
# Configuration
BASE_URL = "https://bedrock-mantle.<YOUR-REGION-HERE>.api.aws/v1"
API_KEY = os.environ.get("OPENAI_API_KEY") # Your Amazon Bedrock API key
def create_project(name: str, tags: dict) -> dict:
"""Create a Bedrock project with cost allocation tags."""
response = requests.post(
f"{BASE_URL}/organization/projects",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={"name": name, "tags": tags}
)
if response.status_code != 200:
raise Exception(
f"Failed to create project: {response.status_code} - {response.text}"
)
return response.json()
# Create a production project with full tag taxonomy
project = create_project(
name="CustomerChatbot-Prod",
tags={
"Application": "CustomerChatbot",
"Environment": "Production",
"Team": "CustomerExperience",
"CostCenter": "CC-1001",
"Owner": "alice"
}
)
print(f"Created project: {project['id']}")
API возвращает сведения о project, включая project ID и ARN:
{
"id": "proj_123",
"arn": "arn:aws:bedrock-mantle:<YOUR-REGION-HERE>:<YOUR-ACCOUNT-ID-HERE>:project/<YOUR-PROJECT-ID>"
}
Сохраните project ID. Он понадобится, чтобы связать inference requests на следующем шаге. ARN используется для прикрепления IAM policy, если вам нужно ограничить доступ к этому project. Повторите это для каждой workload. В следующей таблице показан пример структуры project для организации с тремя application:
| Project name | Application | Environment | Team | Cost Center |
| CustomerChatbot-Prod | CustomerChatbot | Production | CustomerExperience | CC-1001 |
| CustomerChatbot-Dev | CustomerChatbot | Development | CustomerExperience | CC-1001 |
| Experiments-Research | Experiments | Production | PlatformEngineering | CC-2002 |
| DataAnalytics-Prod | DataAnalytics | Production | DataScience | CC-3003 |
В одном AWS account можно создать до 1 000 projects, чтобы подстроиться под потребности вашей организации.
Свяжите inference requests с вашим project
Когда projects созданы, можно связать inference requests, передавая project ID в API-вызовах. Следующий пример использует Responses API:
from openai import OpenAI
client = OpenAI(
base_url="https://bedrock-mantle.<YOUR-REGION-HERE>.api.aws/v1",
project="<YOUR-PROJECT-ID>", # ID returned when you created the project
)
response = client.responses.create(
model="openai.gpt-oss-120b",
input="Summarize the key findings from our Q4 earnings report."
)
print(response.output_text)
Чтобы обеспечить корректную атрибуцию расходов, всегда указывайте project ID в API-вызовах вместо того, чтобы полагаться на default project.
Активируйте cost allocation tags
Прежде чем теги project появятся в отчетах о расходах, их нужно активировать как cost allocation tags в AWS Billing. Эта одноразовая настройка связывает теги project с billing pipeline. Подробнее об активации cost allocation tags см. в документации AWS Billing.
Для распространения тегов в AWS Cost Explorer и AWS Data Exports может потребоваться до 24 часов. Чтобы избежать пробелов в данных о расходах, можно активировать теги сразу после создания первого project.
Просмотр расходов по project
Когда projects созданы, inference requests размечены и cost allocation tags активированы, вы можете точно увидеть, куда уходит ваш Amazon Bedrock spend. Теперь каждое измерение из вашей таксономии доступно как фильтр или группировка в отчетах AWS Billing.
AWS Cost Explorer
AWS Cost Explorer — самый быстрый способ визуализировать расходы по project. Выполните следующие шаги, чтобы посмотреть расходы по project:
- Откройте AWS Billing and Cost Management console и выберите Cost Explorer.
- В панели Filters разверните Service и выберите Amazon Bedrock.
- В разделе Group by выберите Tag и укажите ключ тега, например Application.

Figure 2: Cost Explorer showing daily Amazon Bedrock spending grouped by the Application tag
Другие способы уточнить представление см. в Analyzing your costs and usage with AWS Cost Explorer.
Для более детального анализа и line-item detail по вашим project tags см. раздел Creating Data Exports в документации AWS Billing.
Заключение
С помощью Amazon Bedrock Projects можно относить затраты к отдельным workload и отслеживать расходы с помощью инструментов AWS, на которые ваша организация уже опирается. По мере масштабирования workloads используйте стратегию тегирования и подходы к видимости затрат, описанные в этой статье, чтобы сохранять ответственность между командами и приложениями.
Дополнительные сведения см. в документации Amazon Bedrock Projects и в AWS Cost Management User Guide.
Материал — перевод статьи с английского.
