Dominio de Amazon SageMaker en modo solo VPC para admitir SageMaker Studio con configuración de ciclo de vida de apagado automático y SageMaker Canvas con Terraform

Dominio de Amazon SageMaker en modo solo VPC para admitir SageMaker Studio y SageMaker Canvas con Terraform

El dominio de Amazon SageMaker admite entornos de aprendizaje automático (ML) de SageMaker, incluidos SageMaker Studio y SageMaker Canvas. SageMaker Studio es un entorno de desarrollo integrado (IDE) que proporciona una única interfaz visual basada en web donde puede acceder a herramientas específicas para realizar todos los pasos de desarrollo de ML, desde la preparación de datos hasta la construcción, entrenamiento e implementación de sus modelos de ML, mejorando la productividad del equipo de ciencia de datos hasta en un 10x. SageMaker Canvas expande el acceso al aprendizaje automático al proporcionar a los analistas de negocios una interfaz visual que les permite generar predicciones precisas de ML por sí mismos, sin necesidad de tener experiencia en ML ni de escribir una sola línea de código.

HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que le permite organizar su infraestructura en módulos de código reutilizables. Los clientes de AWS confían en la IaC para diseñar, desarrollar y gestionar su infraestructura en la nube, como los dominios de SageMaker. La IaC garantiza que la infraestructura y los servicios del cliente sean consistentes, escalables y reproducibles, siguiendo las mejores prácticas en el área de operaciones de desarrollo (DevOps). Usando Terraform, puede desarrollar y gestionar su dominio de SageMaker y su infraestructura de soporte de manera consistente y repetible.

En esta publicación, demostramos la implementación de Terraform para implementar un dominio de SageMaker y la Amazon Virtual Private Cloud (Amazon VPC) asociada a él. La solución utilizará Terraform para crear:

  • Una VPC con subredes, grupos de seguridad y puntos de conexión de VPC para admitir el modo de solo VPC para el dominio de SageMaker.
  • Un dominio de SageMaker en modo solo VPC con un perfil de usuario.
  • Una clave de AWS Key Management Service (AWS KMS) para cifrar el volumen de Amazon Elastic File System (Amazon EFS) de SageMaker Studio.
  • Una configuración de ciclo de vida adjunta al dominio de SageMaker para apagar automáticamente las instancias inactivas de los cuadernos de Studio.
  • Un rol de ejecución de dominio de SageMaker y políticas de IAM para habilitar las funcionalidades de SageMaker Studio y Canvas.

La solución descrita en esta publicación está disponible en este repositorio de GitHub.

Descripción general de la solución

La siguiente imagen muestra el dominio de SageMaker en modo solo VPC.

Al lanzar el dominio de SageMaker en su VPC, puede controlar el flujo de datos desde sus entornos de SageMaker Studio y Canvas. Esto le permite restringir el acceso a Internet, monitorear e inspeccionar el tráfico utilizando las capacidades estándar de redes y seguridad de AWS, y conectarse a otros recursos de AWS a través de puntos de conexión de VPC.

Requisitos de VPC para usar el modo de solo VPC

Crear un dominio de SageMaker en modo solo VPC requiere una VPC con las siguientes configuraciones:

  1. Al menos dos subredes privadas, cada una en una Zona de Disponibilidad diferente, para garantizar alta disponibilidad.
  2. Asegúrese de que sus subredes tengan el número requerido de direcciones IP necesarias. Recomendamos entre dos y cuatro direcciones IP por usuario. La capacidad total de direcciones IP para un dominio de Studio es la suma de las direcciones IP disponibles para cada subred proporcionada al crear el dominio.
  3. Configure uno o más grupos de seguridad con reglas de entrada y salida que permitan el siguiente tráfico en conjunto:
    • Tráfico NFS sobre TCP en el puerto 2049 entre el dominio y el volumen de Amazon EFS.
    • TCP tráfico dentro del grupo de seguridad. Esto es necesario para la conectividad entre la aplicación JupyterServer y las aplicaciones KernelGateway. Debe permitir el acceso al menos a los puertos en el rango 8192-65535.
  4. Cree un punto de enlace de gateway para Amazon Simple Storage Service (Amazon S3). SageMaker Studio necesita acceder a Amazon S3 desde su VPC utilizando puntos de enlace de Gateway VPC. Después de crear el punto de enlace de gateway, debe agregarlo como un destino en su tabla de rutas para el tráfico destinado desde su VPC a Amazon S3.
  5. Cree puntos de enlace de VPC de interfaz (AWS PrivateLink) para permitir que Studio acceda a los siguientes servicios con los nombres de servicio correspondientes. También debe asociar un grupo de seguridad para su VPC con estos puntos de enlace para permitir todo el tráfico entrante desde el puerto 443:
    • SageMaker API: com.amazonaws.region.sagemaker.api. Esto es necesario para comunicarse con la API de SageMaker.
    • SageMaker runtime: com.amazonaws.region.sagemaker.runtime. Esto es necesario para ejecutar cuadernos de Studio y para entrenar y alojar modelos.
    • SageMaker Feature Store: com.amazonaws.region.sagemaker.featurestore-runtime. Esto es necesario para usar SageMaker Feature Store.
    • SageMaker Projects: com.amazonaws.region.servicecatalog. Esto es necesario para usar SageMaker Projects.

Endpoint adicionales de VPC para usar SageMaker Canvas

Además de los puntos finales de VPC mencionados anteriormente, para usar SageMaker Canvas, también necesitas crear los siguientes puntos finales de interfaz de VPC:

  • Amazon Forecast y Amazon Forecast Query: com.amazonaws.region.forecast y com.amazonaws.region.forecastquery. Estos son necesarios para usar Amazon Forecast.
  • Amazon Rekognition: com.amazonaws.region.rekognition. Esto es necesario para usar Amazon Rekognition.
  • Amazon Textract: com.amazonaws.region.textract. Esto es necesario para usar Amazon Textract.
  • Amazon Comprehend: com.amazonaws.region.comprehend. Esto es necesario para usar Amazon Comprehend.
  • Servicio de tokens de seguridad de AWS (AWS STS): com.amazonaws.region.sts. Esto es necesario porque SageMaker Canvas utiliza AWS STS para conectarse a fuentes de datos.
  • Amazon Athena y AWS Glue: com.amazonaws.region.athena y com.amazonaws.region.glue. Esto es necesario para conectarse al catálogo de datos de AWS Glue a través de Amazon Athena.
  • Amazon Redshift: com.amazonaws.region.redshift-data. Esto es necesario para conectarse a la fuente de datos de Amazon Redshift.

Para ver todos los puntos finales de VPC para cada servicio que puedes usar con SageMaker Canvas, visita Configurar Amazon SageMaker Canvas en una VPC sin acceso a Internet.

Cifrado de AWS KMS para el volumen EFS de SageMaker Studio

La primera vez que un usuario de tu equipo se une a SageMaker Studio, SageMaker crea un volumen EFS para el equipo. Se crea un directorio principal en el volumen para cada usuario que se une a Studio como parte de tu equipo. Los archivos de cuaderno y los archivos de datos se almacenan en estos directorios.

Puedes cifrar el volumen EFS de SageMaker Studio con una clave de KMS para que los datos de los directorios principales estén cifrados en reposo. Esta solución de Terraform crea una clave de KMS y la utiliza para cifrar el volumen EFS de SageMaker Studio.

Configuración del ciclo de vida del dominio de SageMaker para apagar automáticamente los cuadernos de Studio inactivos

Las configuraciones de ciclo de vida son scripts de shell que se activan mediante eventos del ciclo de vida de Amazon SageMaker Studio, como iniciar un nuevo cuaderno de Studio. Puedes utilizar las configuraciones de ciclo de vida para automatizar la personalización de tu entorno de Studio.

Esta solución de Terraform crea una Configuración de ciclo de vida de SageMaker para detectar y detener los recursos inactivos que generan costos dentro de Studio utilizando una extensión de apagado automático de Jupyter. Bajo la capa, se crean o configuran los siguientes recursos para lograr el resultado deseado:

  1. Crea un bucket de S3 y carga la última versión de la extensión de apagado automático sagemaker_studio_autoshutdown-0.1.5.tar.gz. Más adelante, el script de apagado automático ejecutará el comando s3 cp para descargar el archivo de extensión del bucket de S3 en los arranques del servidor Jupyter. Consulta los siguientes repositorios de GitHub para obtener más información sobre la extensión de apagado automático y el script de apagado automático.
  2. Crea un recurso de configuración de ciclo de vida de aws_sagemaker_studio_lifecycle_config llamado “auto_shutdown“. Este recurso codificará el autoshutdown-script.sh con base 64 y creará una Configuración de ciclo de vida para el dominio de SageMaker.
  3. Para la configuración de usuario predeterminada del dominio de SageMaker, especifica el ARN de la Configuración de ciclo de vida y establécelo como predeterminado.

Permisos IAM del rol de ejecución de SageMaker

Como servicio administrado, SageMaker realiza operaciones en tu nombre en el hardware de AWS que es administrado por SageMaker. SageMaker solo puede realizar las operaciones que el usuario permite.

Un usuario de SageMaker puede asignar estos permisos con un rol IAM (llamado rol de ejecución). Al crear un dominio de SageMaker Studio, SageMaker te permite crear el rol de ejecución de forma predeterminada. Puedes restringir el acceso a los perfiles de usuario cambiando el rol del perfil de usuario de SageMaker. Esta solución de Terraform adjunta las siguientes políticas IAM al rol de ejecución de SageMaker:

  • Política administrada de SageMaker AmazonSageMakerFullAccess. Esta política otorga al rol de ejecución acceso completo para usar SageMaker Studio.
  • Una política IAM administrada por el cliente para acceder a la clave KMS utilizada para cifrar el volumen EFS de SageMaker Studio.
  • Políticas administradas de SageMaker AmazonSageMakerCanvasFullAccess y AmazonSageMakerCanvasAIServicesAccess. Estas políticas otorgan al rol de ejecución acceso completo para usar SageMaker Canvas.
  • Para habilitar el análisis de series temporales en SageMaker Canvas, también es necesario agregar la política de confianza IAM para Amazon Forecast.

Recorrido de la solución

En esta publicación de blog, demostramos cómo implementar la solución de Terraform. Antes de realizar la implementación, asegúrese de cumplir con los siguientes requisitos previos:

Requisitos previos

  • Una cuenta de AWS
  • Un usuario IAM con acceso administrativo

Pasos de implementación

Para brindar a los usuarios que siguen esta guía una experiencia de implementación unificada, demostramos el proceso de implementación con AWS CloudShell. Usando CloudShell, una terminal basada en navegador, puede ejecutar rápidamente scripts con la Interfaz de línea de comandos de AWS (AWS CLI), experimentar con las API de servicios utilizando la AWS CLI y utilizar otras herramientas para aumentar su productividad.

Para implementar la solución de Terraform, complete los siguientes pasos:

Configuración de inicio de CloudShell

  • Inicie sesión en la consola de administración de AWS y seleccione el servicio CloudShell.
  • En la barra de navegación, en el selector de región, elija US East (N. Virginia).

Se abrirá la terminal de CloudShell en su navegador.

Instalar Terraform

Los siguientes pasos deben ejecutarse en una terminal de CloudShell.

Consulte esta guía de Hashicorp para obtener instrucciones actualizadas sobre cómo instalar Terraform para Amazon Linux:

  • Instale yum-config-manager para administrar sus repositorios.
sudo yum install -y yum-utils
  • Use yum-config-manager para agregar el repositorio oficial de HashiCorp Linux.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
  • Instale Terraform desde el nuevo repositorio.
sudo yum -y install terraform
  • Verifique que la instalación haya funcionado enumerando los subcomandos disponibles de Terraform.
terraform -help

Salida esperada:

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.

…

Clonar el repositorio de código

Realice los siguientes pasos en una terminal de CloudShell.

  • Clone el repositorio y navegue hasta la carpeta 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
  • Descargue la extensión de autoapagado y colóquela en la carpeta 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

Implementar la solución de Terraform

En la terminal CloudShell, ejecute los siguientes comandos de Terraform:

terraform init

Debería ver un mensaje de éxito como este:

¡Terraform se inicializó correctamente!

Ahora puede comenzar a trabajar con Terraform. Intente ejecutar "terraform plan" para ver

cualquier cambio que sea necesario para su infraestructura. Ahora todos los comandos de Terraform

deberían funcionar...

Ahora puede ejecutar:

terraform plan

Después de estar satisfecho con los recursos que el plan indica que se crearán, puedes ejecutar:

terraform apply

Ingrese “sí” cuando se le solicite confirmar la implementación.

Si la implementación se realiza correctamente, debería ver una salida que se ve así:

¡Implementación completa! Recursos: X agregados, 0 cambios, 0 destruidos.

Accediendo a SageMaker Studio y Canvas

Ahora tenemos un dominio de Studio asociado con nuestra VPC y un perfil de usuario en este dominio.

Para usar la consola de SageMaker Studio, en el Panel de control de Studio, localice su nombre de usuario (debe ser defaultuser) y elija Abrir Studio.

¡Lo logramos! Ahora puedes usar tu navegador para conectarte al entorno de SageMaker Studio. Después de unos minutos, Studio termina de crear tu entorno y te da la bienvenida con la pantalla de inicio.

Para usar la consola de SageMaker Canvas, en el Panel de control de Canvas, localice su nombre de usuario (debe ser defaultuser) y elija Abrir Canvas.

Ahora puedes usar tu navegador para conectarte al entorno de SageMaker Canvas. Después de unos minutos, Canvas termina de crear tu entorno y te da la bienvenida con la pantalla de inicio.

¡Siéntete libre de explorar toda la funcionalidad que SageMaker Studio y Canvas tienen para ofrecer! Consulta la sección de Conclusiones para obtener talleres y tutoriales adicionales que puedes utilizar para aprender más sobre SageMaker.

Limpieza

Ejecuta el siguiente comando para limpiar tus recursos:

terraform destroy

Consejo: Si estableces la política de retención de Amazon EFS como “Retener” (el valor predeterminado), tendrás problemas durante “terraform destroy” porque Terraform intenta eliminar las subredes y la VPC cuando el volumen de EFS y sus grupos de seguridad asociados (creados por SageMaker) aún existen. Para solucionar esto, primero elimina el volumen de EFS manualmente y luego elimina las subredes y la VPC manualmente en la consola de AWS.

Conclusión

La solución en esta publicación te brinda la capacidad de crear un dominio de SageMaker para admitir entornos de ML, incluidos SageMaker Studio y SageMaker Canvas con Terraform. SageMaker Studio proporciona un IDE completamente administrado que elimina la carga pesada en el proceso de ML. Con SageMaker Canvas, nuestros usuarios comerciales pueden explorar y construir modelos de ML fácilmente para hacer predicciones precisas sin escribir ningún código. Con la capacidad de iniciar Studio y Canvas dentro de una VPC y el uso de una clave de KMS para cifrar el volumen de EFS, los clientes pueden utilizar entornos de ML de SageMaker con una seguridad mejorada. La configuración de ciclo de vida de apagado automático ayuda a los clientes a ahorrar costos en instancias de bloc de notas de Studio inactivas.

Prueba esta solución y dinos qué piensas. Para obtener más información sobre cómo usar SageMaker Studio y SageMaker Canvas, consulta lo siguiente:

  • Día de Inmersión de Amazon SageMaker
  • Día de Inmersión de SageMaker Canvas

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Detecta cualquier cosa que desees con UniDetector

El aprendizaje profundo y la IA han avanzado notablemente en los últimos años, especialmente en los modelos de detecc...

Inteligencia Artificial

Explora el poder de las imágenes dinámicas con Text2Cinemagraph una nueva herramienta de IA para la generación de cinemagraphs a partir de indicaciones de texto

Si eres nuevo en la terminología, quizás te estés preguntando qué son los cinemagraphs, pero puedo asegurarte que pro...

Inteligencia Artificial

Herramientas de IA principales para emprendedores 2023

Grammarly es una herramienta de escritura impulsada por IA que garantiza que tu escritura esté libre de errores y pul...

Ciencias de la Computación

El Avance en la Computación Cuántica Inicia una Nueva Era, Dice IBM.

Un ordenador cuántico encontró mejores respuestas a un problema de física que un superordenador convencional.