Amazon SageMaker Domain в режиме только в VPC для поддержки SageMaker Studio с автоматической конфигурацией жизненного цикла и SageMaker Canvas с помощью Terraform

Amazon SageMaker Domain в режиме только в VPC для поддержки SageMaker Studio и SageMaker Canvas с автоматической конфигурацией и Terraform

Amazon SageMaker Domain поддерживает среды машинного обучения (ML) SageMaker, включая SageMaker Studio и SageMaker Canvas. SageMaker Studio – это полностью интегрированная среда разработки (IDE), предоставляющая единый веб-интерфейс, где вы можете получить доступ к специальным инструментам для выполнения всех шагов разработки ML, от подготовки данных до создания, обучения и развертывания ваших ML-моделей, повышая производительность команды по науке о данных в 10 раз. SageMaker Canvas расширяет доступ к машинному обучению, предоставляя аналитикам бизнеса визуальный интерфейс, который позволяет им генерировать точные прогнозы ML самостоятельно, не требуя никакого опыта работы с ML или написания кода.

HashiCorp Terraform – это инструмент инфраструктуры в виде кода (IaC), который позволяет организовывать вашу инфраструктуру в виде повторно используемых модулей кода. Заказчики AWS полагаются на IaC для проектирования, разработки и управления своей облачной инфраструктурой, такой как SageMaker Domains. IaC гарантирует, что инфраструктура и сервисы клиентов являются согласованными, масштабируемыми и воспроизводимыми, при этом следуя передовым практикам в области операций разработки (DevOps). С помощью Terraform вы можете разрабатывать и управлять своим SageMaker Domain и его вспомогательной инфраструктурой последовательным и повторяемым образом.

В этой статье мы демонстрируем реализацию Terraform для развертывания SageMaker Domain и связанной с ним виртуальной частной сети Amazon (Amazon VPC). Решение будет использовать Terraform для создания:

  • VPC с подсетями, группами безопасности и конечными точками VPC для поддержки режима VPC только для SageMaker Domain.
  • SageMaker Domain в режиме VPC только с профилем пользователя.
  • KMS (AWS Key Management Service) ключ для шифрования тома Amazon Elastic File System (Amazon EFS) SageMaker Studio.
  • Конфигурацию жизненного цикла, привязанную к SageMaker Domain, для автоматического выключения неактивных экземпляров блокнотов Studio.
  • Роль выполнения SageMaker Domain и политики IAM для включения функциональностей SageMaker Studio и Canvas.

Решение, описанное в этой статье, доступно в этом репозитории GitHub.

Обзор решения

На следующем изображении показан SageMaker Domain в режиме VPC только.

Запуская SageMaker Domain в вашей VPC, вы можете контролировать поток данных из вашей среды SageMaker Studio и Canvas. Это позволяет ограничить доступ к интернету, отслеживать и проверять трафик с использованием стандартных возможностей сети и безопасности AWS, а также подключаться к другим ресурсам AWS через конечные точки VPC.

Требования VPC для использования режима VPC только

Для создания SageMaker Domain в режиме VPC только требуется VPC со следующей конфигурацией:

  1. Как минимум две частные подсети, каждая в разных доступных зонах, для обеспечения высокой доступности.
  2. Убедитесь, что ваши подсети имеют необходимое количество IP-адресов. Мы рекомендуем от двух до четырех IP-адресов на пользователя. Общая пропускная способность IP-адресов для домена Studio – это сумма доступных IP-адресов для каждой подсети, указанной при создании домена.
  3. Настройте одну или несколько групп безопасности с правилами входящего и исходящего трафика, которые вместе разрешают следующий трафик:
    • Трафик NFS по протоколу TCP на порту 2049 между доменом и томом Amazon EFS.
    • TCP-трафик внутри группы безопасности. Это требуется для связи между приложением JupyterServer и приложениями KernelGateway. Вы должны разрешить доступ к как минимум портам в диапазоне 8192–65535.
  4. Создайте конечную точку шлюза для Amazon Simple Storage Service (Amazon S3). SageMaker Studio должен получать доступ к Amazon S3 из вашей VPC с использованием конечных точек Gateway VPC. После создания конечной точки шлюза вам нужно добавить ее в качестве цели в вашу таблицу маршрутов для трафика, предназначенного из вашей VPC в Amazon S3.
  5. Создайте конечные точки VPC (AWS PrivateLink), чтобы Studio могла получить доступ к следующим сервисам с соответствующими именами сервисов. Вы также должны связать группу безопасности вашей VPC с этими конечными точками, чтобы разрешить весь входящий трафик с порта 443:
    • SageMaker API: com.amazonaws.region.sagemaker.api. Требуется для взаимодействия с SageMaker API.
    • SageMaker runtime: com.amazonaws.region.sagemaker.runtime. Требуется для запуска блокнотов Studio и обучения и размещения моделей.
    • SageMaker Feature Store: com.amazonaws.region.sagemaker.featurestore-runtime. Требуется для использования SageMaker Feature Store.
    • SageMaker Projects: com.amazonaws.region.servicecatalog. Требуется для использования SageMaker Projects.

Дополнительные конечные точки VPC для использования SageMaker Canvas

Помимо ранее упомянутых конечных точек VPC, для использования SageMaker Canvas вам также необходимо создать следующие конечные точки VPC:

  • Amazon Forecast и Amazon Forecast Query: com.amazonaws.region.forecast и com.amazonaws.region.forecastquery. Это необходимо для использования Amazon Forecast.
  • Amazon Rekognition: com.amazonaws.region.rekognition. Это необходимо для использования Amazon Rekognition.
  • Amazon Textract: com.amazonaws.region.textract. Это необходимо для использования Amazon Textract.
  • Amazon Comprehend: com.amazonaws.region.comprehend. Это необходимо для использования Amazon Comprehend.
  • AWS Security Token Service (AWS STS): com.amazonaws.region.sts. Это необходимо, потому что SageMaker Canvas использует AWS STS для подключения к источникам данных.
  • Amazon Athena и AWS Glue: com.amazonaws.region.athena и com.amazonaws.region.glue. Это необходимо для подключения к каталогу данных AWS Glue через Amazon Athena.
  • Amazon Redshift: com.amazonaws.region.redshift-data. Это необходимо для подключения к источнику данных Amazon Redshift.

Чтобы просмотреть все конечные точки VPC для каждой службы, которые вы можете использовать с SageMaker Canvas, перейдите в раздел Настройка Amazon SageMaker Canvas в VPC без доступа в Интернет.

Шифрование AWS KMS для тома EFS SageMaker Studio

При первом входе пользователя в SageMaker Studio система SageMaker создает том EFS для команды. Для каждого пользователя, который входит в Studio в составе вашей команды, в том создается домашний каталог. В этих каталогах хранятся файлы для блокнотов и файлы данных.

Вы можете зашифровать том EFS SageMaker Studio с помощью ключа KMS, чтобы данные ваших домашних каталогов были зашифрованы в покое. Это решение Terraform создает ключ KMS и использует его для шифрования тома EFS SageMaker Studio.

Настройка жизненного цикла домена SageMaker для автоматического выключения неактивных блокнотов Studio

Конфигурации жизненного цикла – это скрипты оболочки, запускаемые событиями жизненного цикла SageMaker Studio, такими как запуск нового блокнота Studio. Вы можете использовать конфигурации жизненного цикла для автоматизации настройки вашей среды Studio.

Это решение Terraform создает конфигурацию жизненного цикла SageMaker для обнаружения и остановки неактивных ресурсов, которые вызывают затраты в Studio с помощью расширения Jupyter для автоматического выключения. Под капотом создаются или настраиваются следующие ресурсы для достижения нужного результата:

  1. Создается бакет S3 и загружается последняя версия расширения автоматического выключения sagemaker_studio_autoshutdown-0.1.5.tar.gz. Позже, скрипт автоматического выключения будет выполнять команду s3 cp для загрузки файла расширения из бакета S3 при запуске Jupyter Server. Подробную информацию о расширении автоматического выключения и скрипте автоматического выключения можно найти в следующих репозиториях GitHub.
  2. Создается ресурс aws_sagemaker_studio_lifecycle_config «auto_shutdown». Этот ресурс кодирует скрипт autoshutdown-script.sh с использованием base 64 и создает конфигурацию жизненного цикла для домена SageMaker.
  3. Для настроек пользователей по умолчанию домена SageMaker указывается арн конфигурации жизненного цикла и она устанавливается по умолчанию.

Разрешения IAM для роли выполнения SageMaker

Как управляемый сервис, SageMaker выполняет операции от вашего имени на оборудовании AWS, управляемом SageMaker. SageMaker может выполнять только операции, разрешенные пользователем.

Пользователь SageMaker может предоставить эти разрешения с помощью роли IAM (называемой ролью выполнения). При создании домена SageMaker Studio, SageMaker позволяет вам создать роль выполнения по умолчанию. Вы можете ограничить доступ к профилям пользователей, изменив роль профиля пользователя SageMaker. Это решение Terraform присоединяет следующие политики IAM к роли выполнения SageMaker:

  • Управляемая политика SageMaker AmazonSageMakerFullAccess. Эта политика предоставляет исполнительной роли полный доступ к использованию SageMaker Studio.
  • Политика IAM, управляемая клиентом, для доступа к ключу KMS, используемому для шифрования EFS-тома SageMaker Studio.
  • Управляемые политики SageMaker AmazonSageMakerCanvasFullAccess и AmazonSageMakerCanvasAIServicesAccess. Эти политики предоставляют исполнительной роли полный доступ к использованию SageMaker Canvas.
  • Для включения анализа временных рядов в SageMaker Canvas необходимо также добавить доверительную политику IAM для Amazon Forecast.

Пошаговое решение

В этом блоге мы демонстрируем, как развернуть решение с помощью Terraform. Перед развертыванием убедитесь, что выполнены следующие предварительные требования:

Предварительные требования

  • Учетная запись AWS
  • Пользователь IAM с административным доступом

Шаги развертывания

Для того, чтобы предоставить пользователям, следующим этому руководству, унифицированный опыт развертывания, мы демонстрируем процесс развертывания с помощью AWS CloudShell. Используя CloudShell – оболочку на основе браузера, вы можете быстро запускать скрипты с помощью интерфейса командной строки AWS (AWS CLI), экспериментировать с API-интерфейсами службы с помощью AWS CLI и использовать другие инструменты для повышения продуктивности.

Для развертывания решения Terraform выполните следующие шаги:

Настройки запуска CloudShell

  • Войдите в консоль управления AWS и выберите сервис CloudShell.
  • В панели навигации, в селекторе региона, выберите US East (N. Virginia).

Ваш браузер откроет терминал CloudShell.

Установка Terraform

Следующие шаги должны быть выполнены в терминале CloudShell.

Ознакомьтесь с руководством Hashicorp для получения актуальных инструкций по установке Terraform для Amazon Linux:

  • Установите yum-config-manager для управления репозиториями.
sudo yum install -y yum-utils
  • Используйте yum-config-manager для добавления официального репозитория HashiCorp Linux.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
  • Установите Terraform из нового репозитория.
sudo yum -y install terraform
  • Проверьте, что установка прошла успешно, перечислив доступные подкоманды Terraform.
terraform -help

Ожидаемый вывод:

Использование: terraform [-version] [-help] <command> [args]

Доступные команды для выполнения перечислены ниже.

Наиболее распространенные и полезные команды показаны первыми, за ними

идут менее распространенные или более продвинутые команды. Если вы только начинаете

использовать Terraform, оставайтесь с обычными командами. Для

других команд ознакомьтесь с помощью и документацией перед использованием.

...

Клонирование репозитория кода

Выполните следующие шаги в терминале CloudShell.

  • Клонируйте репозиторий и перейдите в папку sagemaker-domain-vpconly-canvas-with-terraform:
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git

cd sagemaker-domain-vpconly-canvas-with-terraform
  • Скачайте расширение автоматического выключения и поместите его в папку assets/auto_shutdown_template:
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template

Развертывание решения Terraform

В терминале CloudShell выполните следующие команды Terraform:

terraform init

Вы должны увидеть сообщение об успешной инициализации:

Terraform был успешно инициализирован!

Теперь вы можете начать работу с Terraform. Попробуйте выполнить "terraform plan", чтобы увидеть

все изменения, необходимые для вашей инфраструктуры. Теперь все команды Terraform

должны работать...

Теперь вы можете выполнить:

terraform plan

После того, как вы будете удовлетворены ресурсами, которые план предлагает создать, вы можете выполнить команду:

terraform apply

Введите “да”, когда будет запрошено подтверждение развертывания.

Если развертывание прошло успешно, вы должны увидеть вывод, похожий на:

Применение завершено! Ресурсы: X добавлено, 0 изменено, 0 удалено.

Доступ к SageMaker Studio и Canvas

Теперь у нас есть домен Studio, связанный с нашей VPC, и профиль пользователя в этом домене.

Чтобы использовать консоль SageMaker Studio, на панели управления Studio найдите ваше имя пользователя (оно должно быть defaultuser) и выберите Открыть Studio.

Мы сделали это! Теперь вы можете использовать свой браузер для подключения к среде SageMaker Studio. Через несколько минут Studio завершит создание вашей среды, и вы будете встречены экраном запуска.

Чтобы использовать консоль SageMaker Canvas, на панели управления Canvas найдите ваше имя пользователя (оно должно быть defaultuser) и выберите Открыть Canvas.

Теперь вы можете использовать свой браузер для подключения к среде SageMaker Canvas. Через несколько минут Canvas завершит создание вашей среды, и вы будете встречены экраном запуска.

Не стесняйтесь исследовать все функциональные возможности SageMaker Studio и Canvas! Дополнительные мастер-классы и учебники, которые помогут вам узнать больше о SageMaker, вы найдете в разделе Заключение.

Очистка

Выполните следующую команду для очистки ресурсов:

terraform destroy

Совет: Если вы установили политику сохранения Amazon EFS как “Retain” (по умолчанию), вы можете столкнуться с проблемами при выполнении команды “terraform destroy”, потому что Terraform пытается удалить подсети и VPC, когда том EFS и связанные с ним группы безопасности (созданные SageMaker) все еще существуют. Чтобы исправить это, сначала вручную удалите том EFS, а затем вручную удалите подсети и VPC в консоли AWS.

Заключение

Решение, описанное в этом сообщении, предоставляет вам возможность создавать домен SageMaker для поддержки сред разработки машинного обучения, включая SageMaker Studio и SageMaker Canvas с помощью Terraform. SageMaker Studio предоставляет полностью управляемую среду разработки, которая упрощает процесс машинного обучения. С помощью SageMaker Canvas наши бизнес-пользователи могут легко исследовать и создавать модели машинного обучения для точных прогнозов без написания какого-либо кода. Благодаря возможности запуска Studio и Canvas внутри VPC и использованию ключа KMS для шифрования тома EFS, клиенты могут использовать среды машинного обучения SageMaker с улучшенной безопасностью. Конфигурация жизненного цикла автоматического выключения помогает клиентам экономить затраты на неактивные экземпляры рабочих записей Studio.

Проверьте это решение и дайте нам знать, что вы думаете. Дополнительную информацию о том, как использовать SageMaker Studio и SageMaker Canvas, вы найдете по следующим ссылкам:

  • Amazon SageMaker Immersion Day
  • SageMaker Canvas Immersion Day