Домен Amazon SageMaker лише в режимі VPC для підтримки SageMaker Studio з автоматичним вимкненням, налаштування життєвого циклу та SageMaker Canvas із Terraform | Веб-сервіси Amazon

Домен Amazon SageMaker лише в режимі VPC для підтримки SageMaker Studio з автоматичним вимкненням, налаштування життєвого циклу та SageMaker Canvas із Terraform | Веб-сервіси Amazon

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

HashiCorp Terraform це інструмент інфраструктури як коду (IaC), який дозволяє організувати вашу інфраструктуру в модулях коду для багаторазового використання. Клієнти AWS покладаються на IAC для проектування, розробки та керування своєю хмарною інфраструктурою, як-от SageMaker Domains. IaC гарантує, що клієнтська інфраструктура та послуги є послідовними, масштабованими та відтворюваними, дотримуючись найкращих практик у сфері операцій розробки (DevOps). Використовуючи Terraform, ви можете розробляти та керувати своїм доменом SageMaker та його допоміжною інфраструктурою послідовним і повторюваним способом.

У цій публікації ми демонструємо реалізацію Terraform для розгортання домену SageMaker і Віртуальна приватна хмара Amazon (Amazon VPC), з яким він асоціюється. Рішення використовуватиме Terraform для створення:

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

Рішення, описане в цій публікації, доступне за цим посиланням GitHub репо.

Огляд рішення

На наступному зображенні показано домен SageMaker лише в режимі VPC.

sagemaker_domain_vpc_only

Запустивши домен SageMaker у своєму VPC, ви зможете контролювати потік даних із середовищ SageMaker Studio та Canvas. Це дозволяє обмежувати доступ до Інтернету, контролювати та перевіряти трафік за допомогою стандартних мережевих можливостей і можливостей безпеки AWS, а також підключатися до інших ресурсів AWS через кінцеві точки VPC.

Вимоги VPC для використання режиму лише VPC

Для створення домену SageMaker лише в режимі 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:
    • API SageMaker: com.amazonaws.region.sagemaker.api. Це потрібно для зв’язку з API SageMaker.
    • Час виконання SageMaker: com.amazonaws.region.sagemaker.runtime. Це потрібно для запуску ноутбуків Studio, а також для навчання та розміщення моделей.
    • Магазин функцій SageMaker: com.amazonaws.region.sagemaker.featurestore-runtime. Це потрібно для використання SageMaker Feature Store.
    • Проекти SageMaker: com.amazonaws.region.servicecatalog. Це необхідно для використання проектів SageMaker.

Додаткові кінцеві точки VPC для використання SageMaker Canvas

На додаток до згаданих раніше кінцевих точок VPC, щоб використовувати SageMaker Canvas, вам також потрібно створити такі кінцеві точки інтерфейсу VPC:

  • Прогноз Amazon і запит Amazon Forecast: com.amazonaws.region.forecast та com.amazonaws.region.forecastquery. Вони потрібні для використання Amazon Forecast.
  • Визнання Amazon: com.amazonaws.region.rekognition. Це потрібно для використання Amazon Rekognition.
  • Текст Amazon: com.amazonaws.region.textract. Це потрібно для використання Amazon Texttract.
  • Amazon Comprehend: com.amazonaws.region.comprehend. Це потрібно для використання Amazon Comprehend.
  • Служба маркерів безпеки AWS (AWS STS): com.amazonaws.region.sts. Це потрібно, оскільки SageMaker Canvas використовує AWS STS для підключення до джерел даних.
  • Amazon Athena та AWS Glue: com.amazonaws.region.athena та com.amazonaws.region.glue. Це потрібно для підключення до AWS Glue Data Catalog через Amazon Athena.
  • Червоне зміщення Amazon: 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_auto_shutdown

Конфігурації життєвого циклу — це сценарії оболонки, які запускаються подіями життєвого циклу Amazon 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 з базою 64 і створіть конфігурацію життєвого циклу для домену SageMaker.
  3. Для налаштувань користувача домену SageMaker за замовчуванням укажіть параметр Lifecycle Configuration arn і встановіть його за замовчуванням.

Дозволи 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.
  • На панелі навігації в селекторі регіону виберіть Схід США (Н. Вірджинія).

Ваш браузер відкриє термінал 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

Очікуваний результат:

Usage: terraform [-version] [-help] <command> [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you’re just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. …

Клонуйте сховище коду

Виконайте наведені нижче дії в терміналі 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 has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work...

Тепер ви можете запустити:

terraform plan

Коли ви задоволені ресурсами, які планує створити, ви можете запустити:

terraform apply

Введіть "так“, коли буде запропоновано підтвердити розгортання.

У разі успішного розгортання ви повинні побачити результат, який виглядає так:

Apply complete! Resources: X added, 0 changed, 0 destroyed.

Доступ до SageMaker Studio та Canvas

Тепер у нас є домен Studio, пов’язаний з нашим VPC, і профіль користувача в цьому домені.

sagemaker_domain

Щоб скористатися консоллю SageMaker Studio, на панелі керування Studio знайдіть своє ім’я користувача (воно має бути defaultuser) і виберіть Відкрийте Studio.

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

studio_landing_page

Щоб використовувати консоль SageMaker Canvas, на панелі керування Canvas знайдіть своє ім’я користувача (має бути defaultuser) і виберіть Відкрити полотно.

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

canvas_landing_page

Не соромтеся досліджувати повну функціональність SageMaker Studio та Canvas! Будь ласка, зверніться до розділу «Висновки», щоб отримати додаткові семінари та навчальні посібники, які ви можете використати, щоб дізнатися більше про SageMaker.

Прибирати

Виконайте таку команду, щоб очистити ресурси:

terraform destroy

Чайові: якщо ви встановите політику збереження Amazon EFS як «Retain” (за умовчанням), у вас виникнуть проблеми під часterraform destroy», оскільки Terraform намагається видалити підмережі та VPC, коли том EFS, а також пов’язані з ним групи безпеки (створені SageMaker) все ще існують. Щоб виправити це, спочатку видаліть том EFS вручну, а потім видаліть підмережі та VPC вручну на консолі AWS.

Висновок

Рішення, описане в цій публікації, надає вам можливість створити домен SageMaker для підтримки середовищ ML, зокрема SageMaker Studio та SageMaker Canvas із Terraform. SageMaker Studio надає повністю керовану IDE, яка усуває важку роботу в процесі машинного навчання. За допомогою SageMaker Canvas наші бізнес-користувачі можуть легко досліджувати та створювати моделі ML, щоб робити точні прогнози без написання коду. Завдяки можливості запускати Studio та Canvas усередині VPC та використанню ключа KMS для шифрування тому EFS клієнти можуть використовувати середовища SageMaker ML із покращеною безпекою. Конфігурація життєвого циклу автоматичного вимкнення допомагає клієнтам заощаджувати витрати на неактивні екземпляри ноутбука Studio.

Спробуйте це рішення та повідомте нам свою думку. Щоб отримати додаткові відомості про те, як використовувати SageMaker Studio та Sagemaker Canvas, див.


Про автора

chen_yang_awsЧень Ян є інженером машинного навчання в Amazon Web Services. Вона є частиною команди AWS Professional Services і зосереджується на створенні безпечних середовищ машинного навчання для клієнтів. У вільний час вона захоплюється бігом і походами на північний захід Тихого океану.

Часова мітка:

Більше від AWS Машинне навчання