Implementar proyectos de Amazon Sagemaker con Terraform Cloud

Proyectos de Amazon Sagemaker Empodere a los científicos de datos para autodesivar los servicios web de Amazon (AWS) herramientas e infraestructura para organizar todas las entidades del ciclo de vida de aprendizaje automático (ML), y permitir aún más a las organizaciones estandarizar y limitar los recursos disponibles para sus equipos de ciencia de datos en plantillas preenvasadas.

Para los clientes de AWS usando Terraformado Para definir y administrar su infraestructura como código (IAC), la mejor práctica actual para habilitar los proyectos de Amazon SageMaker conlleva una dependencia de AWS CloudFormation para facilitar la integración entre Catálogo de servicios de AWS y Terraform. Esto bloquea a los clientes empresariales cuya gobernanza de TI prohíbe el uso de IAC específico del proveedor, como CloudFormation, usa Terraform Cloud.

Esta publicación describe cómo puede habilitar los proyectos de Sagemaker con Terraform Cloud, eliminando la dependencia de CloudFormation.

Motor de catálogo de servicio de AWS para Terraform Cloud

Los proyectos de Sagemaker se asignan directamente a los productos de catálogo de servicios de AWS. Para obviar el uso de CloudFormation, estos productos deben designarse como Productos Terraform que usan el AWS Service Catáloga Motor (SCE) para Terraform Cloud. Este módulo, mantenido activamente por Hashicorpcontiene una infraestructura nativa de AWS para integrar el catálogo de servicios con Terraform Cloud para que sus productos de catálogo de servicios se implementen utilizando la plataforma Terraform Cloud.

Siguiendo los pasos de esta publicación, puede usar el motor de catálogo de servicios para implementar proyectos de Sagemaker directamente desde Terraform Cloud.

Requisitos previos

Para implementar con éxito el ejemplo, debe tener lo siguiente:

  1. Una cuenta de AWS con los permisos necesarios para crear y administrar proyectos de Sagemaker y productos de catálogo de servicios. Ver el Documentación del catálogo de servicios Para obtener más información sobre los permisos de catálogo de servicios.
  2. Un dominio existente de Amazon Sagemaker Studio con un perfil de usuario asociado de Amazon Sagemaker. El dominio del estudio de Sagemaker debe tener proyectos de Sagemaker habilitados. Ver Use una configuración rápida para Amazon Sagemaker AI.
  3. Un terminal UNIX con la interfaz de línea de comando AWS (AWS CLI) y Terraform instalado. Ver el Instalación o actualización de la última versión del AWS CLIy el Instalar Terraform Para más información sobre la instalación.
  4. Una cuenta de Terraform Cloud existente con los permisos necesarios para crear y administrar espacios de trabajo. Vea los siguientes tutoriales para crear rápidamente su propia cuenta:
    1. HCP Terraform – Introducción y registro
    2. Inicie sesión en HCP Terraform de la CLI

Ver Documentación de equipos y organizaciones de Terraform Para obtener más información sobre los permisos de Terraform Cloud.

Pasos de implementación

  1. Clonar el sagemaker-custom-project-templates Repositorio de las muestras de AWS GitHub a su máquina local, actualice los submódulos y navegue hasta el mlops-terraform-cloud directorio.
    $ git clone https://github.com/aws-samples/sagemaker-custom-project-templates.git
    $ cd sagemaker-custom-project_templates
    $ git submodule update --init --recursive
    $ cd mlops-terraform-cloud

La base de código anterior anterior crea una cartera de catálogo de servicios, agrega la plantilla del proyecto Sagemaker como un producto de catálogo de servicios a la cartera, permite que el sagemaker Studio rol acceda al producto de catálogo de servicios, y agrega las etiquetas necesarias para hacer que el producto sea visible en Sagemaker Studio. Ver Crear plantillas de proyecto personalizadas En la documentación de los proyectos de Sagemaker para obtener más información sobre este proceso.

  1. Inicie sesión en su cuenta de Terraform Cloud

Esto solicita a su navegador que inicie sesión en su cuenta HCP y genera un token de seguridad. Copie este token de seguridad y péguelo nuevamente en su terminal.

  1. Navegue a su cuenta de AWS y recupere el Nombre de recursos de Amazon de Amazon Rol de Sagemaker para el perfil de usuario de Sagemaker asociado con su dominio SageMaker Studio. Este papel se utiliza para otorgar permisos de usuarios de estudio de Sagemaker para crear y administrar proyectos de Sagemaker.
    • En la consola de administración de AWS para Amazon Sagemaker, elija Dominio del panel de navegación
    • Seleccione su dominio de estudio
      Pantalla de gestión de dominios de Amazon Sagemaker con un dominio de servicio, enfatizando el entorno compartido para la colaboración del equipo
    • Bajo Perfiles de usuarioseleccione su perfil de usuario
      Interfaz de administración de dominio de Amazon Sagemaker que muestra la pestaña Perfiles de usuario con opciones de configuración y controles de lanzamiento
    • En el Detalles del usuariocopia el ARN
      Configuración del perfil de sagemaker-data-cientist con rol de IAM y detalles de creación
  2. Crear un tfvars Archivo con las variables necesarias para el espacio de trabajo de Terraform Cloud
    $ cp terraform.tfvars.example terraform.tfvars

  3. Establezca los valores apropiados en el recién creado tfvars archivo. Se requieren las siguientes variables:
    tfc_organization = "my-tfc-organization"
    tfc_team = "aws-service-catalog"
    token_rotation_interval_in_days = 30
    sagemaker_user_role_arns = ["arn:aws:iam::XXXXXXXXXXX:role/service-role/AmazonSageMaker-ExecutionRole"]

Asegúrese de que su organización deseada de Terraform Cloud (TFC) tenga los derechos adecuados y que su tfc_team es único para esta implementación. Ver el Descripción general de las organizaciones de Terraform Para obtener más información sobre la creación de organizaciones.

  1. Inicializar el espacio de trabajo de Terraform Cloud
  2. Aplicar el espacio de trabajo de Terraform Cloud
  3. Vuelve a la consola Sagemaker utilizando el perfil de usuario asociado con el rol de usuario de Sagemaker ARN que copió anteriormente y eligió Estudio abierto solicitud
    Sagemaker Studio Welcome Screen destacando el entorno de desarrollo de ML integrado con opciones de inicio de sesión
  4. En el panel de navegación, elija Despliegues Y luego elige Proyectos
    Sagemaker Studio Home Interface destacando las opciones de flujo de trabajo de ML, incluidos Jupyterlab y editor de código, con la sección de proyectos enfatizados para la implementación del modelo
  5. Elegir Crear proyectoseleccione el mlops-tf-cloud-example producto y luego elegir Próximo
    Sagemaker Studio Project Creation Flujo de trabajo que muestra el paso de selección de plantillas con la pestaña Plantillas de organización y la opción de automatización de flujo de trabajo de MLOPS
  6. En Detalles del proyectoingrese un nombre único para la plantilla y (opción) Ingrese una descripción del proyecto. Elegir Crear
    Interfaz de configuración del proyecto Sagemaker en el paso de detalles del proyecto, exhibir convenciones de nomenclatura, campo de descripción y opciones de etiquetado para el flujo de trabajo MLOPS
  7. En una pestaña o ventana separada, regrese a los espacios de trabajo de su cuenta de Terraform Cloud y verá un espacio de trabajo que se aprovechará directamente de su implementación del proyecto Sagemaker. La convención de nombres del espacio de trabajo será
    Terraform Workspaces Panel de control que muestra los recuentos de estado y un espacio de trabajo con estado aplicado

Personalización adicional

Este ejemplo se puede modificar para incluir Terraform personalizado en su plantilla de proyecto Sagemaker. Para hacerlo, defina su Terraform en el directorio MLOPS-Product/Product. Cuando esté listo para implementar, asegúrese de archivar y comprimir este Terraform utilizando el siguiente comando:

$ cd mlops-product
$ tar -czf product.tar.gz product

Limpieza

Para eliminar los recursos implementados con este ejemplo, ejecute lo siguiente desde el directorio del proyecto:

Conclusión

En esta publicación, definió, desplegó y aprovisionó una plantilla personalizada del Proyecto Sagemaker únicamente en Terraform. Sin dependencias en otras herramientas de IAC, ahora puede habilitar los proyectos de Sagemaker estrictamente dentro de su infraestructura empresarial de Terraform.


Sobre el autor

Max Copeland es ingeniero de aprendizaje automático para AWS, compromisos de clientes líderes que abarcan ML-OP, ciencia de datos, ingeniería de datos e IA generativa.