Модели OpenAI GPT-6 Sol, GPT-6 Luna и GPT-6 Astra открылись в Amazon Bedrock через глобальные кросс-региональные профили инференса. Запуск сводится к трём действиям: выбрать исходный регион из пяти азиатско-тихоокеанских, подставить в поле model идентификатор профиля вида global.openai.gpt-6-sol и отправить запрос на эндпоинт bedrock-runtime через Converse API либо OpenAI-совместимый клиент.
Код занимает десяток строк. Возня начинается с прав и квот. При глобальном инференсе условие aws:RequestedRegion принимает значение unspecified, поэтому региональные allowlist-политики и SCP рубят вызовы с AccessDenied. Со стороны лимитов сюрприз тоже есть: выходные токены расходуют квоту в 10 раз быстрее входных.
Ниже разобраны обе ловушки плюс мониторинг. Оговорка на входе: часть эксплуатационных деталей, а именно точные формулировки условий IAM, значения квот и условия хранения данных, в исходном анонсе AWS не раскрыта. Такие места помечены как требующие сверки с документацией, а не поданы как факт.
Что такое глобальный кросс-региональный инференс и зачем он нужен
Глобальный кросс-региональный инференс маршрутизирует запросы по поддерживаемым коммерческим регионам AWS, где развёрнута модель, и даёт доступ к их совокупной мощности. В анонсе AWS механику описывают так: вы передаёте идентификатор профиля глобального кросс-регионального инференса вместо идентификатора модели.
Исходный регион (source Region) - это регион, откуда уходит вызов API. Целевой регион для обработки Amazon Bedrock подбирает сам, вручную его указывать не нужно.
Чем глобальный инференс отличается от регионального
При региональном инференсе модель развёрнута в конкретном регионе, и вызов уходит именно туда. Глобальный профиль снимает привязку к одной географии: запрос из Сингапура может обработаться в другом коммерческом регионе AWS.
Три практических следствия. Биллинг, отслеживание квот, AWS CloudTrail и Amazon CloudWatch остаются в исходном регионе, то есть счёт и логи не переезжают вслед за обработкой. Дашборды и алерты, настроенные на ваш регион, продолжают работать. Ручной выбор целевого региона не нужен, а значит не придётся переписывать код под конкретную географию.
Обратная сторона: политики, которые разрешают вызовы только по списку регионов, начинают блокировать глобальные профили. Разбор запуска GPT-5.6 из Sydney и Melbourne показывает, как отделить регион запроса от глобального инференса и не сломать существующие ограничения при миграции.
Какие модели OpenAI доступны и из каких регионов
Через глобальный инференс открыты три модели. GPT-6 Sol и GPT-6 Luna доступны из всех пяти регионов: Сингапур, Джакарта, Малайзия, Таиланд и Тайбэй. GPT-6 Astra доступна только из Азиатско-Тихоокеанского региона (Сингапур).
| Профиль | Модель | Исходные регионы | Назначение |
|---|---|---|---|
| global.openai.gpt-6-sol | GPT-6 Sol | Сингапур, Джакарта, Малайзия, Таиланд, Тайбэй | Сложные задачи рассуждения и программирования, включая работу, растянутую на неделю |
| global.openai.gpt-6-luna | GPT-6 Luna | Сингапур, Джакарта, Малайзия, Таиланд, Тайбэй | Сфокусированные повторяемые операции при большом объёме |
| global.openai.gpt-6-astra | GPT-6 Astra | Сингапур (ap-southeast-1) | Сложные рассуждения, программирование, длинные документы |
Коды регионов: ap-southeast-1 (Сингапур), ap-southeast-3 (Джакарта), ap-southeast-5 (Малайзия), ap-southeast-7 (Таиланд), ap-east-2 (Тайбэй). Все три модели вызываются на эндпоинте bedrock-runtime.
По назначению модели разведены чётко. Sol тянет сложные рассуждения и программирование: крупный рефакторинг, разбор архитектуры, многошаговые пайплайны. Luna рассчитана на сфокусированные повторяемые задачи при высоком объёме, где важнее задержка и цена вызова. Astra берёт сложные рассуждения, программирование и длинные документы. Корпоративные сценарии Astra разобраны отдельно в материале про GPT-6 Astra, AI-агентов и локальные модели.
Общее у всех трёх: приём текста и изображений, клиентское использование инструментов и кэширование промптов. Уровни reasoning effort различаются. Sol и Luna принимают none, low, medium, high, xhigh и max. Astra принимает те же уровни, кроме none.
Пошаговый запуск: от выбора региона до первого запроса
- Выберите исходный регион: Сингапур, Джакарта, Малайзия, Таиланд или Тайбэй. Для Astra остаётся только Сингапур.
- Проверьте, что нужная модель открыта в вашем аккаунте именно в этом регионе.
- Настройте IAM-политику с учётом aws:RequestedRegion=unspecified, детали в разделе ниже.
- Отправьте запрос на bedrock-runtime, указав в поле model идентификатор профиля, например global.openai.gpt-6-sol.
- Альтернативный путь: тот же профиль вызывается через OpenAI-совместимый эндпоинт или Codex CLI.
Вызов через Converse API
Пример на Python и boto3. Клиент создаётся в исходном регионе, в поле modelId идёт идентификатор профиля, а не модели.
import boto3
client = boto3.client("bedrock-runtime", region_name="ap-southeast-1")
response = client.converse(
modelId="global.openai.gpt-6-sol",
messages=[
{
"role": "user",
"content": [{"text": "Разбери стектрейс и предложи патч"}],
}
],
inferenceConfig={"maxTokens": 2048},
additionalModelRequestFields={"reasoning_effort": "high"},
)
print(response["output"]["message"]["content"][0]["text"])
Поле reasoning_effort в additionalModelRequestFields задаёт уровень усилий рассуждения. Точное имя ключа и допустимые значения сверяйте с документацией по модели: Sol и Luna принимают none, low, medium, high, xhigh, max, Astra те же уровни без none. Ответ придёт из целевого региона, а метрики и логи останутся в исходном.
Другие примеры работы с Converse API, включая разбор content blocks и вызов инструментов, собраны в руководстве по интеграции Claude Opus 5 на Amazon Bedrock. Механика вызова та же, меняются идентификатор модели и набор поддерживаемых возможностей.
Использование OpenAI-совместимых API и Codex CLI
Для OpenAI-совместимого доступа ключ и точка входа берутся из вашего окружения AWS: аутентификация идёт через IAM, а не через статический ключ OpenAI. Базовый путь эндпоинта уточняйте в документации Bedrock, ниже показана структура запроса.
from openai import OpenAI
client = OpenAI(
base_url="https://<bedrock-openai-endpoint>/openai/v1", # путь взять из документации Bedrock
api_key="<credentials из настроенного AWS-профиля>",
)
completion = client.chat.completions.create(
model="global.openai.gpt-6-luna",
messages=[{"role": "user", "content": "Суммаризируй лог инцидента"}],
)
print(completion.choices[0].message.content)
Codex CLI настраивается похожим образом: в конфигурации клиента указываются провайдер, базовый URL и модель в виде идентификатора профиля. Набор поддерживаемых возможностей у OpenAI-совместимого слоя может отличаться от самого OpenAI API, поэтому редкие параметры проверяйте на тестовом аккаунте, а не ожидайте полной совместимости. Пошаговый разбор более раннего семейства с примерами кода и сравнением затрат есть в гайде по запуску GPT-5.6 Sol, Terra и Luna на Amazon Bedrock.
Настройка IAM и SCP: почему обычные политики блокируют вызовы
При вызове глобального профиля регион запроса не задаётся явно, и в условии aws:RequestedRegion оказывается значение unspecified. Политика, которая разрешает bedrock:InvokeModel только для конкретных регионов, такой вызов отклонит. Анонс AWS описывает доступ и маршрутизацию, но готовых шаблонов политик и точных формулировок условий в нём нет. Шаблоны ниже - рабочие заготовки, которые нужно адаптировать под свой аккаунт и прогнать в песочнице.
Пример IAM-политики для глобального инференса
Разрешение выдаётся на ресурс профиля инференса, а не на модель, и дополняется условием по aws:RequestedRegion.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokeGlobalGpt6",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:*:*:inference-profile/global.openai.gpt-6-*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "unspecified"
}
}
}
]
}
Политика крепится к роли, из-под которой уходят вызовы. Две детали стоит проверить: точный формат ARN профиля инференса в вашем регионе и необходимость отдельного разрешения на доступ к базовой модели. Второе действие, bedrock:InvokeModelWithResponseStream, нужно только для потоковых вызовов, без него потоковые клиенты получат отказ.
Особенности SCP и aws:RequestedRegion=unspecified
SCP работает уровнем выше IAM и способен перекрыть любое разрешение. Типовая защита вида "запретить всё вне списка домашних регионов" ломает глобальный инференс, потому что для него региона в условии нет. Исправление: добавить unspecified в список допустимых значений или исключить глобальные профили из запрещающего условия.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyBedrockOutsideHomeRegions",
"Effect": "Deny",
"Action": "bedrock:*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-southeast-1",
"ap-southeast-3",
"ap-southeast-5",
"ap-southeast-7",
"ap-east-2",
"unspecified"
]
}
}
}
]
}
Правьте SCP только после теста в отдельном аккаунте или подразделении: ошибка в условии Deny моментально отрезает Bedrock у всей организации. AccessDenied при корректной IAM-политике почти всегда означает, что сработал именно SCP.
Квоты и биллинг: как не выйти за лимиты
Квоты измеряются в токенах в минуту (tokens per minute, TPM) и отслеживаются в исходном регионе, как и биллинг. Счёт и лимиты остаются там, откуда ушёл вызов, даже если обработал его другой регион.
Ключевая особенность: выходные токены расходуют квоту с 10-кратным коэффициентом, то есть один сгенерированный токен списывает десять токенов лимита. При лимите 100 000 TPM это не больше 10 000 выходных токенов в минуту, если ничего не оставлять на вход. Входные токены в таком расчёте идут по номиналу, хотя точные правила стоит подтвердить в Service Quotas для Amazon Bedrock: детали квот в анонсе AWS не раскрыты.
Как выходные токены влияют на квоту
Разрыв между ожиданием и реальностью здесь большой. Пайплайн, который генерирует по 1 000 токенов на запрос, съедает 10 000 TPM. Десять параллельных таких запросов выбирают 100 000 TPM, то есть весь лимит из примера. Astra добавляет риск: длинные ответы по документам быстро упираются в потолок.
Что помогает на практике:
- maxTokens задаёт жёсткий потолок генерации и не даёт модели разговориться.
- Понижение reasoning effort уменьшает объём служебных токенов на задачах, где глубокое рассуждение не нужно.
- Кэширование промптов переиспользует общие инструкции и описания инструментов между запросами, снижая долю входных токенов.
- Разделение ролей по моделям: Luna на маршрутизацию и извлечение данных, Sol на сложные случаи, Astra на длинные документы.
Лимиты и контроль расходов полезно закладывать в слой агентов, а не в приложение. Обзор обновлений Bedrock и AgentCore за август 2026 разбирает временные политики, лимиты запросов и контроль расходов, которые снимают часть этой работы с кода.
Мониторинг и наблюдаемость: CloudWatch и CloudTrail
CloudWatch и CloudTrail остаются в исходном регионе, поэтому наблюдаемость не разваливается при кросс-региональной обработке. Настраивать дашборды на целевой регион не нужно: ваших метрик там не будет.
Ключевые метрики CloudWatch для Bedrock
Минимальный набор для контроля: Invocations (число вызовов), InvocationLatency (задержка), InputTokenCount и OutputTokenCount (объём токенов), а также счётчики ошибок. Точные имена метрик и доступные измерения сверяйте в консоли CloudWatch для Bedrock: набор зависит от модели и версии сервиса.
- Алерт на OutputTokenCount помогает поймать приближение к квоте до того, как посыпятся отказы.
- Алерт на рост ошибок вызовов отделяет проблемы прав от проблем лимитов.
- Дашборд по Invocations и InvocationLatency показывает, как распределение нагрузки совпадает с ожиданиями по задержке.
Аудит через CloudTrail
CloudTrail пишет события вызовов, включая bedrock:InvokeModel, с указанием исходного региона, идентификатора профиля и того, кто сделал вызов. По этим событиям видно, кто и когда дёргал модели, и это удобная база для фильтров по конкретным профилям.
Ограничение, которое всплывает не сразу: событие фиксируется в исходном регионе, а целевой регион обработки в логе может не отражаться. Если для расследования важно знать, где именно обрабатывался запрос, на одну запись CloudTrail рассчитывать не стоит.
Безопасность, хранение данных и обнаружение злоупотреблений
Глобальный кросс-региональный инференс означает, что запрос может обрабатываться в другом коммерческом регионе AWS, а не только в том, откуда вы его отправили. Для большинства рабочих нагрузок это техническая деталь, для регулируемых отраслей - пункт, который нужно оценивать отдельно.
Честная оговорка: исходный анонс AWS описывает доступность моделей и маршрутизацию, но не раскрывает условий хранения данных, сроков и деталей автоматического обнаружения злоупотреблений. Утверждать, что именно происходит с вашими данными, опираясь на этот материал, нельзя. Перед продом поднимите документы AWS по защите данных для Bedrock и уточните три вопроса: как обрабатываются данные при кросс-региональной передаче, какие действуют сроки хранения и как AWS уведомляет о подозрительной активности.
Что известно точно из описания механики: биллинг, отслеживание квот, CloudTrail и CloudWatch остаются в исходном регионе. Это упрощает аудит, но не заменяет оценку соответствия для regulated-сценариев.
Типичные ошибки и как их избежать
- Региональная allowlist-политика без учёта unspecified. Вызовы глобальных профилей возвращают AccessDenied. Решение: отдельная политика с условием StringEquals aws:RequestedRegion=unspecified.
- SCP, который запрещает всё вне списка регионов. Ошибка проявляется как внезапный отказ на рабочих аккаунтах. Решение: добавить unspecified в список допустимых значений или исключить глобальные профили из Deny, изменения сначала прогнать в песочнице.
- Недооценка расхода квоты. Выходные токены списывают лимит с 10-кратным коэффициентом, и пайплайн упирается в потолок при штатной нагрузке. Решение: считать TPM по выходным токенам, а не по общему объёму, и ограничивать maxTokens.
- Отсутствие мониторинга. Квота заканчивается без предупреждения, ошибки всплывают у пользователей. Решение: алерт на OutputTokenCount и на рост числа отказов.
- Вызов Astra из региона, отличного от Сингапура. Профиль global.openai.gpt-6-astra доступен только из ap-southeast-1. Решение: маршрутизировать такие вызовы из Сингапура или брать Sol вместо Astra.
Проверьте эти пять пунктов до продакшн-нагрузки: отправьте по одному тестовому вызову global.openai.gpt-6-luna и global.openai.gpt-6-sol из своего аккаунта, посмотрите, что попало в CloudWatch и CloudTrail, и только после этого переводите трафик. Если AccessDenied всё равно прилетает при корректной IAM-политике, ищите причину в SCP и в условии по aws:RequestedRegion.