AISubHub/Новости ИИ
Разработка

Подробный разбор · Около 5 мин чтения

Руководство AWS по CDK: масштабирование endpoint зависит от порядка развёртывания

Инструкция SageMaker AI согласует снятие регистрации, обновление endpoint и готовность масштабирования. Ожидания, примерные ёмкости и созданные ресурсы требуют отдельных проверок.

Опубликовано здесь
Дата источника
Источник проверен

Руководство Lauren Eterno от 23 октября решает проблему обновления endpoint SageMaker AI с сохранением конфигурации Application Auto Scaling. Оно предлагает повторно используемый CDK construct, а не новую модель или сервис. AISubHub рассматривает переходы состояний и эксплуатационные проверки, выходящие за пределы успешной команды развёртывания.

Слушать новости

Прослушайте эту статью или включите новости подряд.

Руководство AWS по CDK: масштабирование endpoint зависит от порядка развёртывания

Подготовка чтения…

Голос устройства

Речь обрабатывает браузер или устройство. AISubHub не отправляет текст в аудио-API. Доступные голоса и работа при заблокированном экране зависят от устройства.

При продолжении короткая фраза может повториться.

Кратко

  • Порядок: снятие регистрации, обновление endpoint, готовность InService, регистрация target и возможность запросить его перед подключением политики.
  • Оба раздела конфигурации должны входить в ConfigHash. Опрос каждые 30 секунд и пределы ожидания в час или пятнадцать минут не гарантируют восстановления.
  • Три custom resources создают двенадцать функций Lambda и две машины состояний Step Functions; значения ёмкости и политики в примере не являются рекомендациями для production.

Три сбоя происходят в разных состояниях

Руководство описывает три сценария, когда нативные ресурсы автоматического масштабирования CloudFormation сопровождают обновление endpoint. Во-первых, оставленный зарегистрированным scalable target может вызвать отказ SageMaker в обновлении. Во-вторых, ручное снятие регистрации с изменением только конфигурации endpoint может завершиться успешным развёртыванием, но оставить систему без автомасштабирования: неизменённые параметры шаблона не заставят CloudFormation заново создать target или policy.

В-третьих, после ручного снятия регистрации изменение параметров автомасштабирования заставляет CloudFormation обновлять уже отсутствующий target. AWS описывает ошибку отсутствующего ресурса и неудачный откат, UPDATE_ROLLBACK_FAILED, требующий ручного восстановления. Это разные случаи: отклонённое обновление, незаметная потеря масштабирования и сломанный стек. Объединение их в общую проблему повторных попыток скрывает различие состояний.

Упорядочьте изменения и проверьте готовность

Construct заменяет нативные ScalableTarget и ScalingPolicy тремя custom resources. Deregister выполняется до обновления endpoint, управляемого CDK. Затем ресурс регистрации ждёт InService, регистрирует target и предшествует ресурсу политики. Последний ждёт возможности запросить target и лишь затем применяет target-tracking policy.

Вызовы CDK node.add_dependency задают порядок, а обработчики устанавливают готовность. Обработчик снятия регистрации допускает ObjectNotFoundException при первом развёртывании. Проверка регистрации использует describe_endpoint, продолжает ждать при состояниях, отличных от InService, и выдаёт ошибку при Failed. AISubHub видит здесь различие между порядком API-действий и проверкой состояния, необходимого следующему шагу, а не гарантию отсутствия простоя.

Изменение общей конфигурации должно запускать цепочку

Настройки endpoint и автомасштабирования собраны в конфигурации примера вместе. Свойство ConfigHash каждого custom resource заставляет CloudFormation повторно вызывать обработчики при изменении включённой конфигурации. Пример интеграции явно сериализует в config_hash и параметры endpoint, и параметры масштабирования, чтобы изменение любого раздела запускало оркестрацию.

Инженерный вывод AISubHub: этот триггер нужно проверять вместе с графом зависимостей. Включение только полей масштабирования может оставить изменение endpoint вне нужного запуска; включение только endpoint — пропустить изменение масштабирования. Хеш сигнализирует об изменении входа, а не проверяет соответствие развёрнутых ресурсов файлу. После развёртывания всё равно нужны чтение регистрации target и проверка реальных значений политики.

Пределы опроса ограничивают ожидание, не восстановление

Регистрация и подключение политики используют асинхронное завершение CDK provider. Их on_event возвращается сразу; provider вызывает is_complete каждые 30 секунд. total_timeout регистрации составляет один час, подключения политики — пятнадцать минут. Это границы ожидания provider, а не длительность одного вызова Lambda, SLA восстановления или обещание успешного завершения.

Вторая проверка готовности покрывает короткий промежуток между возвратом RegisterScalableTarget и доступностью target для запроса. Только после этого обработчик применяет policy. Цепочка deregister-update-register также создаёт период без обычной схемы масштабирования. По анализу AISubHub, командам нужно оценивать ёмкость в этом окне, обработку тайм-аутов и откаты для своей нагрузки; статья не демонстрирует непрерывную работу сервиса.

Считайте развёрнутую инфраструктуру и предусловия

Три custom resources не означают три Lambda-функции. AWS насчитывает двенадцать: пять содержат собственные обработчики construct, семь создаёт framework provider. Два асинхронных provider также создают две машины состояний Step Functions. Сгенерированные framework функции остаются развёрнутыми ресурсами, хотя пользователь не пишет их код; обзор ресурсов должен учитывать их, а не только видимые обработчики.

Инструкция требует AWS CDK v2, Python 3.12 или новее, uv и аккаунт AWS с правами на SageMaker AI, Lambda, IAM, Application Auto Scaling и CloudWatch. Указаны артефакт модели в S3 и образ ECR либо описанный путь контейнера встроенного алгоритма. AISubHub рекомендует до адаптации проверить минимальные права, доступ к артефактам и эксплуатационную ответственность; это инженерный анализ, а не выполненный аудит IAM.

Проверяйте обновление и очистку отдельно

Пример задаёт минимальную и максимальную ёмкости 1 и 10, target_value 100, scale_in_cooldown 600 и scale_out_cooldown 120. Это поля примера, а не рекомендуемая производственная ёмкость, тест пропускной способности или оценка цены. Инструкция проверяет scalable target и policy после развёртывания, меняет параметр endpoint, повторяет развёртывание и проверяет сохранение регистрации и обновлённых значений.

Очистка удаляет endpoint, его конфигурацию, модель, функции Lambda, роли IAM и созданные политикой сигналы CloudWatch, а также снимает регистрацию target, чтобы избежать будущих списаний. AISubHub эти действия не выполнял. Полезная приёмка для эксплуатационной команды шире успешного статуса стека: проверить активную конфигурацию, поведение масштабирования, восстановление после сбоев и границы очистки со своими правами и трафиком, не предполагая, что пример всё это доказывает.

Почему это важно

Переносимая идея — явно задавать зависимости развёртывания, проверки готовности и триггеры изменений конфигурации. По выводу AISubHub, это может облегчить изучение жизненного цикла масштабирования, но construct добавляет управляемую provider инфраструктуру и эксплуатационные обязанности. Успех нужно установить для собственного endpoint и нагрузки, а не выводить из параметров примера.

Ограничения и доступность

Это анализ технической инструкции Lauren Eterno на AWS от 23 октября, прочитанной 24 октября. Мы не выполняли код, не развёртывали платные ресурсы, не проверяли связанный репозиторий, не измеряли производительность и не верифицировали конкретный регион или аккаунт. Пределы ожидания не являются SLA, значения примера не являются рекомендациями; конкретная базовая модель или новый выпуск сервиса не установлены.

Источники и подтверждения

AWS Machine Learning Blog · Lauren Eterno

Дата источника: · Источник проверен:

Материалы подготовлены с помощью ИИ и сверены с указанными первоисточниками. Заявления поставщиков атрибутированы; публикация не означает рекомендацию.