Athrun Data Intelligence


Adjuntar una imagen de Docker personalizada a un Amazon Sagemaker Studio El dominio implica varios pasos. Primero, debe construir y empujar la imagen a Registro de contenedores elásticos de Amazon (Amazon ECR). Incluso debes asegurarte de que el Amazon Sagemaker El rol de ejecución del dominio tiene los permisos necesarios para extraer la imagen de Amazon ECR. Luego de que la imagen se empuja a Amazon ECR, crea una imagen personalizada de Sagemaker en el Consola de encargo de AWS. Por posterior, actualiza la configuración del dominio de Sagemaker para especificar el nombre de medios de Amazon (ARN) personalizado. Este proceso de varios pasos debe seguirse manualmente cada vez que los usuarios finales crean nuevas imágenes de Docker personalizadas para que estén disponibles en Sagemaker Studio.

En esta publicación, explicamos cómo automatizar este proceso. Este enfoque le permite refrescar la configuración de Sagemaker sin escribir código de infraestructura adicional, provisar imágenes personalizadas y adjuntarlas a los dominios SageMaker. Al adoptar esta automatización, puede implementar entornos de prospección consistentes y estandarizados en toda su ordenamiento, lo que lleva a una longevo productividad del equipo y mitigan los riesgos de seguridad asociados con el uso de imágenes únicas.

La opción descrita en esta publicación está dirigida a ingenieros de enseñanza espontáneo (ML) y equipos de plataforma que a menudo son responsables de dirigir y estandarizar entornos personalizados a escalera en una ordenamiento. Para los científicos de datos individuales que buscan una experiencia de hipermercado, le recomendamos que utilice el soporte nativo de Docker en Sagemaker Studio, como se describe en Acelerar los flujos de trabajo de ML con Amazon Sagemaker Studio Modo particular y soporte de Docker. Esta característica permite a los científicos de datos construir, probar e implementar contenedores de Docker personalizados directamente adentro del entorno de exposición integrado de SageMaker Studio (IDE), lo que le permite constatar iterativamente con sus entornos analíticos sin problemas adentro de la interfaz deudo de SageMaker Studio.

Descripción universal de la opción

El posterior diagrama ilustra la construcción de la opción.

Arquitectura de soluciones

Implementamos una tubería usando AWS Codepipelineque automatiza una creación de imágenes de Docker personalizada y un archivo adjunto de la imagen a un dominio de Sagemaker. La tubería primero verifica la cojín del código desde el repositorio de GitHub y crea imágenes de Docker personalizadas basadas en la configuración declarada en los archivos de configuración. Luego de crear y empujar con éxito las imágenes de Docker a Amazon ECR, la tubería valida la imagen por exploración y revisar las vulnerabilidades de seguridad en la imagen. Si no se encuentran vulnerabilidades críticas o de suscripción seguridad, la tubería continúa a la etapa de aprobación manual antaño del despliegue. Luego de que se complete la aprobación manual, la tubería implementa el dominio Sagemaker y adjunta imágenes personalizadas al dominio automáticamente.

Requisitos previos

Los requisitos previos para implementar la opción descrita en esta publicación incluyen:

Implementar la opción

Complete los siguientes pasos para implementar la opción:

  1. Inicie sesión en su cuenta de AWS utilizando la CLI de AWS en un terminal de shell (para más detalles, consulte Autenticando con credenciales a corto plazo para el AWS CLI).
  2. Ejecute el posterior comando para comprobar de ocurrir iniciado sesión con éxito en su cuenta de AWS:
aws sts get-caller-identity

  1. Bifurca el Repositorio de Github a su cuenta de Github.
  2. Clon el repositorio dividido a su fase de trabajo particular utilizando el posterior comando:
  1. Inicie sesión en la consola y cree un AWS Codestar conexión al repositorio de GitHub en el paso precedente. Para obtener instrucciones, ver Cree una conexión a GitHub (consola).
  2. Copie el ARN para la conexión que creó.
  3. Vaya al terminal y ejecute el posterior comando para CD en el directorio de repositorio:
cd streamline-sagemaker-custom-images-cicd

  1. Ejecute el posterior comando para instalar todas las bibliotecas desde NPM:
  1. Ejecute los siguientes comandos para ejecutar un script de shell en el terminal. Este script tomará su número de cuenta de AWS y la región de AWS como parámetros de entrada e implementará una pila AWS CDK, que implementa componentes como Codepipeline, AWS CodeBuildel repositorio de ECR, y así sucesivamente. Use un VPC existente para configurar la variable de exportación VPC_ID a continuación. Si no tiene un VPC, cree uno con al menos dos subredes y úselo.
export AWS_ACCOUNT=$(aws sts get-caller-identity --query Account --output text)
export AWS_REGION=
export VPC_ID=
export CODESTAR_CONNECTION_ARN=
export REPOSITORY_OWNER=

  1. Ejecute el posterior comando para implementar la infraestructura de AWS usando el AWS CDK V2 y asegúrese de esperar a que la plantilla tenga éxito:
cdk deploy PipelineStack --require-approval never

  1. En la consola CodePipeline, elija Tuberías En el panel de navegación.
  2. Elija el enlace para la tubería nombrada sagemaker-custom-image-pipeline.

Sagemaker Customed Image Wipeline

  1. Puede seguir el progreso de la tubería en la consola y proporcionar aprobación en la etapa de aprobación manual para implementar la infraestructura de Sagemaker. La tubería tarda aproximadamente 5-8 minutos en construir la imagen y acaecer a la etapa de aprobación manual
  2. Espere a que la tubería complete la etapa de implementación.

La tubería crea medios de infraestructura en su cuenta de AWS con un dominio de Sagemaker y una imagen personalizada de Sagemaker. Incluso adjunta la imagen personalizada al dominio Sagemaker.

  1. En la consola de Sagemaker, elija Dominio bajo Configuraciones de compañía En el panel de navegación.

  1. Fiordo el dominio llamado Team-DS y navegue al Medio ambiente

Debería poder ver una imagen personalizada que se adjunta.

Cómo se implementan y adjuntan las imágenes personalizadas

Codepipeline tiene una etapa citación BuildCustomImages Eso contiene los pasos automatizados para crear una imagen personalizada de Sagemaker utilizando la CLI de imagen personalizada Sagemaker y empujarla al repositorio ECR creado en la cuenta AWS. La pila AWS CDK en la etapa de implementación tiene los pasos requeridos para crear un dominio Sagemaker y adjuntar una imagen personalizada al dominio. Los parámetros para crear el dominio Sagemaker, la imagen personalizada, etc., se configuran en formato JSON y se utilizan en la pila de Sagemaker en el directorio LIB. Consulte el sagemakerConfig sección de environments/config.json para parámetros declarativos.

Unir más imágenes personalizadas

Ahora puede juntar su propia imagen de Docker personalizada para adjuntar al dominio Sagemaker creado por la tubería. Para las imágenes personalizadas que se crean, consulte Especificaciones de Dockerfile Para las especificaciones de imagen de Docker.

  1. CD en el directorio de imágenes en el repositorio en el terminal:
  1. Cree un nuevo directorio (por ejemplo, personalizado) en el directorio de imágenes:
  1. Agregue su propio Dockerfile a este directorio. Para las pruebas, puede usar la posterior configuración de DockerFile:
FROM public.ecr.aws/amazonlinux/amazonlinux:2
ARG NB_USER="sagemaker-user"
ARG NB_UID="1000"
ARG NB_GID="100"
RUN yum update -y && 
    yum install python3 python3-pip shadow-utils -y && 
    yum clean all
RUN yum install --assumeyes python3 shadow-utils && 
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && 
    yum clean all && 
    python3 -m pip install jupyterlab
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install --upgrade urllib3==1.26.6
USER ${NB_UID}
CMD jupyter lab --ip 0.0.0.0 --port 8888 
--ServerApp.base_url="/jupyterlab/default" 
--ServerApp.token='' 
--ServerApp.allow_origin='*'

  1. Actualice la sección de imágenes en el archivo JSON en el directorio de entornos para juntar el nuevo nombre del directorio de imágenes que ha creado:
"images": (
      "repositoryName": "research-platform-ecr",
       "tags":(
         "jlab",
         "custom" << Add here
       )
      }
    )

  1. Modernizar el mismo nombre de imagen en customImages Bajo la configuración de dominio Sagemaker creada:
"customImages":(
          "jlab",
          "custom" << Add here
 ),

  1. Comprometer y empujar los cambios en el repositorio de GitHub.
  2. Debería ver que CodePipeline se activa al empujar. Siga el progreso de la tubería y proporcione la aprobación manual para la implementación.

Una vez que la implementación se complete con éxito, debe poder ver que la imagen personalizada que ha adjunto se adjunta a la configuración del dominio (como se muestra en la posterior captura de pantalla).

Imagen personalizada 2

Expurgar

Para alejar sus medios, cala la consola AWS CloudFormation y elimine las pilas SagemakerImageStack y PipelineStack en ese orden. Si encuentra errores como «El cubo S3 no está hueco» o «El repositorio de ECR tiene imágenes», puede eliminar manualmente el repositorio de cubo S3 y ECR que se creó. Luego puede retornar a intentar eliminar las pilas de CloudFormation.

Conclusión

En esta publicación, mostramos cómo crear una opción de tubería de integración y entrega continua (CI/CD) automatizada para construir, escanear e implementar imágenes de Docker personalizadas en Sagemaker Studio Dominios. Puede usar esta opción para promover la consistencia de los entornos analíticos para los equipos de ciencia de datos en toda su empresa. Este enfoque lo ayuda a ganar la gobernanza, la escalabilidad y la estandarización de enseñanza espontáneo (ML).


Sobre los autores

Muni Annachiun consejero senior de DevOps en AWS, cuenta con más de una división de experiencia en construcción e implementación de sistemas de software y plataformas en la nubarrón. Se especializa en enfilar a las organizaciones sin fines de beneficio a adoptar arquitecturas DevOps CI/CD, adhiriéndose a las mejores prácticas de AWS y el ámbito correctamente arquitectado de AWS. Más allá de sus esfuerzos profesionales, Muni es un ávido entusiasta del deporte y alcahuetería de su suerte en la cocina.

Ajay Raghunathan es ingeniero de enseñanza espontáneo en AWS. Su trabajo contemporáneo se centra en la construcción e implementación de soluciones ML a escalera. Es un entusiasta de la tecnología y un constructor con un campo de acción central de interés en IA/ML, prospección de datos, sin servidor y DevOps. Fuera del trabajo, le gusta acaecer tiempo con la comunidad, alucinar y desafiar al fútbol.

Arun Dyasani es un arquitecto senior de aplicaciones en la nubarrón en AWS. Su trabajo contemporáneo se centra en diseñar e implementar soluciones innovadoras de software. Su rol se centra en la elaboración de arquitecturas robustas para aplicaciones complejas, aprovechando su profundo conocimiento y experiencia en el exposición de sistemas a gran escalera.

Shweta Singh es director de productos senior en el equipo de la plataforma de enseñanza espontáneo de Amazon Sagemaker en AWS, liderando el Sagemaker Python SDK. Ha trabajado en varios roles de productos en Amazon durante más de 5 primaveras. Tiene una carrera en ingeniería informática y una Industria en Ciencias en Ingeniería Financiera, entreambos de la Universidad de Nueva York.

Jenna Eun es un director de habilidad principal para el equipo de Compute de Sanidad y Innovador en AWS Professional Services. Su equipo se enfoca en diseñar y entregar datos, ML y soluciones de computación avanzadas para el sector sabido, incluidos los gobiernos federales, estatales y locales, los centros médicos académicos, las organizaciones de atención médica sin fines de beneficio e instituciones de investigación.

Meenakshi Ponn Shankaran es un arquitecto principal de dominio en AWS en Data & ML Professional Services org. Tiene una amplia experiencia en el diseño y la construcción de lagos de datos a gran escalera, manejando petabytes de datos. Actualmente, se enfoca en ofrecer liderazgo técnico a los clientes del sector sabido de AWS, guiándolos en el uso de servicios innovadores de AWS para cumplir con sus objetivos estratégicos y desbloquear todo el potencial de sus datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *