(Opcional) Migrar datos de Studio Classic a Studio - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

(Opcional) Migrar datos de Studio Classic a Studio

Studio Classic y Studio utilizan dos tipos diferentes de volúmenes de almacenamiento. Studio Classic utiliza un único volumen de Amazon Elastic File System (AmazonEFS) para almacenar los datos de todos los usuarios y espacios compartidos del dominio. En Studio, cada espacio tiene su propio volumen de Amazon Elastic Block Store (AmazonEBS). Al actualizar la experiencia predeterminada de un dominio existente, monta SageMaker automáticamente una carpeta en un EFS volumen de Amazon para cada usuario de un dominio. Como resultado, los usuarios pueden acceder a los archivos de Studio Classic en sus aplicaciones de Studio. Para obtener más información, consulte EFSMontaje automático de Amazon en Studio.

También puedes inhabilitar el EFS montaje automático de Amazon y migrar los datos manualmente para que los usuarios puedan acceder a los archivos de Studio Classic en las aplicaciones de Studio Studio. Para ello, debe transferir los archivos de los directorios principales de los usuarios a los EBS volúmenes de Amazon asociados a esos espacios. La siguiente sección proporciona información sobre este flujo de trabajo. Para obtener más información sobre cómo inhabilitar el EFS montaje automático de Amazon, consulta. Optar por no utilizar el montaje EFS automático de Amazon

Migre manualmente todos sus datos desde Studio Classic

En la siguiente sección, se describe cómo migrar todos los datos del volumen de almacenamiento de Studio Classic a la nueva experiencia de Studio.

Al migrar manualmente los datos, el código y los artefactos de un usuario de Studio Classic a Studio, recomendamos uno de los siguientes enfoques:

  1. Uso de un EFS volumen de Amazon personalizado

  2. Uso del Amazon Simple Storage Service (Amazon S3)

Si utilizó Amazon SageMaker Data Wrangler en Studio Classic y desea migrar los archivos de flujo de datos, elija una de las siguientes opciones de migración:

  • Si desea migrar todos los datos de su volumen de almacenamiento de Studio Classic, incluidos los archivos de flujo de datos, vaya a la sección Use Amazon S3 para migrar datos Migre manualmente todos sus datos desde Studio Classic y complete dicha sección. A continuación, pase a la Importe los archivos de flujo a Canvas sección.

  • Si solo quieres migrar tus archivos de flujo de datos y ningún otro dato de tu volumen de almacenamiento de Studio Classic, pasa a la Migre los flujos de datos desde Data Wrangler sección.

Requisitos previos

Antes de ejecutar estos pasos, complete los requisitos previos que se indican enComplete los requisitos previos para migrar la experiencia de Studio. También debe completar los pasos que se indican enMigración de la interfaz de usuario de Studio Classic a Studio.

Elegir un enfoque

Tenga en cuenta lo siguiente al elegir un enfoque para migrar los datos de Studio Classic.

Pros y contras de usar un EFS volumen de Amazon personalizado

En este enfoque, se utiliza una EFS-to-Amazon EFS AWS DataSync tarea de Amazon (una vez o cada cierto tiempo) para copiar los datos y, a continuación, se monta el EFS volumen de Amazon objetivo en los espacios de un usuario. Esto permite a los usuarios acceder a los datos de Studio Classic en sus entornos informáticos de Studio.

Ventajas:

  • Solo los datos del directorio principal del usuario están visibles en los espacios del usuario. No hay polinización cruzada de datos.

  • Sincronizar desde el EFS volumen de Amazon de origen con un EFS volumen de Amazon de destino es más seguro que montar directamente el EFS volumen de Amazon de origen gestionado SageMaker en espacios. Esto evita la posibilidad de que afecten a los archivos de usuario del directorio principal.

  • Los usuarios tienen la flexibilidad de seguir trabajando en las aplicaciones de Studio Classic y Studio, y tener sus datos disponibles en ambas aplicaciones si AWS DataSync se configuran de forma regular.

  • No es necesario empujar y tirar repetidamente con Amazon S3.

Desventajas:

  • No hay acceso de escritura al EFS volumen de Amazon de destino montado en los espacios de usuario. Para obtener acceso de escritura al EFS volumen de Amazon de destino, los clientes deberán montar el EFS volumen de Amazon de destino en una instancia de Amazon Elastic Compute Cloud y proporcionar los permisos adecuados para que los usuarios escriban en el EFS prefijo de Amazon.

  • Es necesario modificar los grupos de seguridad que administran SageMaker para permitir el flujo entrante y saliente del sistema de archivos de red (NFS).

  • Cuesta más que usar Amazon S3.

  • Si migra flujos de datos desde Data Wrangler en Studio Classic, debe seguir los pasos para exportar manualmente los archivos de flujo.

Ventajas y desventajas del uso de Amazon S3

En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon S3 (una vez o cada vez) para copiar los datos y, a continuación, crea una configuración de ciclo de vida para copiar los datos del usuario de Amazon S3 al EBS volumen de Amazon de su espacio privado.

Ventajas:

  • Si LCC está asociado al dominio, los usuarios pueden elegir entre usarlo para copiar los datos a su espacio o administrar el espacio sin ningún LCC script. LCC Esto les da a los usuarios la opción de copiar sus archivos solo en los espacios que necesitan.

  • Si una AWS DataSync tarea se configura de forma continua, los usuarios pueden reiniciar la aplicación Studio para obtener los archivos más recientes.

  • Como los datos se copian en AmazonEBS, los usuarios tienen permisos de escritura en los archivos.

  • El almacenamiento de Amazon S3 es más económico que AmazonEFS.

  • Si migra flujos de datos desde Data Wrangler en Studio Classic, puede omitir los pasos de exportación manual e importar directamente los flujos de datos a SageMaker Canvas desde Amazon S3.

Desventajas:

  • Si los administradores necesitan evitar la polinización cruzada, deben crear AWS Identity and Access Management políticas a nivel de usuario para garantizar que los usuarios solo puedan acceder al prefijo Amazon S3 que contiene sus archivos.

En este enfoque, se utiliza un Amazon EFS-to-Amazon EFS AWS DataSync para copiar el contenido de un volumen de Amazon de Studio Classic a un EFS volumen de Amazon objetivo una vez o EFS siguiendo un ritmo normal y, a continuación, se monta el EFS volumen de Amazon de destino en los espacios de un usuario. Esto permite a los usuarios acceder a los datos de Studio Classic en sus entornos informáticos de Studio.

  1. Crea un EFS volumen objetivo de Amazon. Transferirás los datos a este EFS volumen de Amazon y lo montarás en el espacio de usuario correspondiente mediante un montaje a nivel de prefijo.

    export SOURCE_DOMAIN_ID="domain-id" export REGION="region" export TARGET_EFS=$(aws efs create-file-system --performance-mode generalPurpose --throughput-mode bursting --encrypted --region $REGION | jq -r '.FileSystemId') echo "Target EFS volume Created: $TARGET_EFS"
  2. Añade variables para el EFS volumen de Amazon de origen actualmente adjunto al dominio y utilizado por todos los usuarios. La información de Amazon Virtual Private Cloud del dominio es necesaria para garantizar que el Amazon de destino EFS se cree en la misma Amazon VPC y subred, con la misma configuración de grupo de seguridad.

    export SOURCE_EFS=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId') export VPC_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.VpcId') echo "EFS managed by SageMaker: $SOURCE_EFS | VPC: $VPC_ID"
  3. Cree un destino de EFS montaje de Amazon en la misma subred VPC y Amazon que el EFS volumen de Amazon de origen, con la misma configuración de grupo de seguridad. El objetivo de montaje tarda unos minutos en estar disponible.

    export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].VpcId") export EFS_AZ_NAME=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneName") export EFS_AZ_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneId") export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].SubnetId") export EFS_MOUNT_TARG_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId") export EFS_SG_IDS=$(aws efs describe-mount-target-security-groups --mount-target-id $EFS_MOUNT_TARG_ID | jq -r '.SecurityGroups[]') aws efs create-mount-target \ --file-system-id $TARGET_EFS \ --subnet-id $EFS_SUBNET_ID \ --security-groups $EFS_SG_IDS
  4. Crea las ubicaciones EFS de origen y destino de Amazon para la AWS DataSync tarea.

    export SOURCE_EFS_ARN=$(aws efs describe-file-systems --file-system-id $SOURCE_EFS | jq -r ".FileSystems[0].FileSystemArn") export TARGET_EFS_ARN=$(aws efs describe-file-systems --file-system-id $TARGET_EFS | jq -r ".FileSystems[0].FileSystemArn") export EFS_SUBNET_ID_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r ".Subnets[0].SubnetArn") export ACCOUNT_ID=$(aws ec2 describe-security-groups --group-id $EFS_SG_IDS | jq -r ".SecurityGroups[0].OwnerId") export EFS_SG_ID_ARN=arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$EFS_SG_IDS export SOURCE_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $SOURCE_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn") export DESTINATION_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $TARGET_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn")
  5. Permita que el tráfico entre los montantes del sistema de archivos de red de origen y destino (NFS). Cuando se crea un dominio nuevo, SageMaker crea 2 grupos de seguridad.

    • NFSgrupo de seguridad entrante con solo tráfico entrante.

    • NFSgrupo de seguridad saliente con solo tráfico saliente.

    El origen y el destino NFS se encuentran dentro de los mismos grupos de seguridad. Puede permitir el tráfico entre estos soportes desde el AWS Management Console quirófano AWS CLI.

    • Permita el tráfico desde AWS Management Console

      1. Inicia sesión en la VPC consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/vpc/.

      2. Seleccione Security Groups.

      3. Busca el ID del dominio existente en la página de grupos de seguridad.

        d-xxxxxxx

        Los resultados deberían arrojar dos grupos de seguridad que incluyan el ID de dominio en el nombre.

        • security-group-for-inbound-nfs-domain-id

        • security-group-for-outbound-nfs-domain-id

      4. Seleccione el ID del grupo de seguridad entrante. Esto abre una nueva página con detalles sobre el grupo de seguridad.

      5. Seleccione la pestaña Reglas de salida.

      6. Selecciona Editar reglas de salida.

      7. Actualice las reglas de salida existentes o añada una nueva regla de salida con los siguientes valores:

        • Tipo: NFS

        • Protocolo: TCP

        • Rango de puertos: 2049

        • Destino: security-group-for-outbound -nfs-domain-id | security-group-id

      8. Seleccione Guardar reglas.

      9. Selecciona la pestaña Reglas de entrada.

      10. A continuación, seleccione Editar reglas de entrada.

      11. Actualice las reglas de entrada existentes o añada una nueva regla de salida con los siguientes valores:

        • Tipo: NFS

        • Protocolo: TCP

        • Rango de puertos: 2049

        • Destino: security-group-for-outbound -nfs-domain-id | security-group-id

      12. Seleccione Guardar reglas.

    • Permita el tráfico procedente del AWS CLI

      1. Actualice las reglas de entrada y salida del grupo de seguridad con los siguientes valores:

        • Protocolo: TCP

        • Rango de puertos: 2049

        • ID de grupo: ID de grupo de seguridad entrante o ID de grupo de seguridad saliente

        export INBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-inbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId") export OUTBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-outbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId") echo "Outbound SG ID: $OUTBOUND_SG_ID | Inbound SG ID: $INBOUND_SG_ID" aws ec2 authorize-security-group-egress \ --group-id $INBOUND_SG_ID \ --protocol tcp --port 2049 \ --source-group $OUTBOUND_SG_ID aws ec2 authorize-security-group-ingress \ --group-id $OUTBOUND_SG_ID \ --protocol tcp --port 2049 \ --source-group $INBOUND_SG_ID
      2. Agregue los grupos de seguridad entrantes y salientes a los destinos de Amazon EFS Mount de origen y destino. Esto permite el tráfico entre las dos EFS monturas de Amazon.

        export SOURCE_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId") export TARGET_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $TARGET_EFS | jq -r ".MountTargets[0].MountTargetId") aws efs modify-mount-target-security-groups \ --mount-target-id $SOURCE_EFS_MOUNT_TARGET \ --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID aws efs modify-mount-target-security-groups \ --mount-target-id $TARGET_EFS_MOUNT_TARGET \ --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID
  6. Crea una AWS DataSync tarea. Esto devuelve una tarea ARN que se puede usar para ejecutarla bajo demanda o como parte de una cadencia normal.

    export EXTRA_XFER_OPTIONS='VerifyMode=ONLY_FILES_TRANSFERRED,OverwriteMode=ALWAYS,Atime=NONE,Mtime=NONE,Uid=NONE,Gid=NONE,PreserveDeletedFiles=REMOVE,PreserveDevices=NONE,PosixPermissions=NONE,TaskQueueing=ENABLED,TransferMode=CHANGED,SecurityDescriptorCopyFlags=NONE,ObjectTags=NONE' export DATASYNC_TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_LOCATION_ARN --destination-location-arn $DESTINATION_LOCATION_ARN --name "SMEFS_to_CustomEFS_Sync" --region $REGION --options $EXTRA_XFER_OPTIONS | jq -r ".TaskArn")
  7. Inicie una AWS DataSync tarea para copiar automáticamente los datos de la Amazon de origen EFS a la EFS montura de Amazon de destino. Esto no conserva los POSIX permisos del archivo, lo que permite a los usuarios leer desde la EFS montura de Amazon de destino, pero no escribir en ella.

    aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
  8. Monta el EFS volumen de Amazon objetivo en el dominio en el nivel raíz.

    aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
  9. Sobrescribe todos los perfiles de usuario con un FileSystemPath prefijo. El prefijo incluye el del usuarioUID, creado por. SageMaker Esto garantiza que los usuarios solo tengan acceso a sus datos y evita la polinización cruzada. Cuando se crea un espacio en el dominio y el EFS volumen de Amazon de destino se monta en la aplicación, el prefijo del usuario sobrescribe el prefijo del dominio. Como resultado, SageMaker solo monta el /user-id directorio en la aplicación del usuario.

    aws sagemaker list-user-profiles --domain-id $SOURCE_DOMAIN_ID | jq -r '.UserProfiles[] | "\(.UserProfileName)"' | while read user; do export uid=$(aws sagemaker describe-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user | jq -r ".HomeEfsFileSystemUid") echo "$user $uid" aws sagemaker update-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user --user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig":{"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "'"/$uid/"'"}}]}' done
  10. A continuación, los usuarios pueden seleccionar el EFS sistema de archivos Amazon personalizado al lanzar una aplicación. Para obtener más información, consulte JupyterLab guía de usuario o Lanza una aplicación de edición de código en Studio.

En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon S3 para copiar el contenido de un EFS volumen de Amazon de Studio Classic a un bucket de Amazon S3 una vez o siguiendo un ritmo normal y, a continuación, crea una configuración de ciclo de vida para copiar los datos del usuario de Amazon S3 al EBS volumen de Amazon de su espacio privado.

nota

Este enfoque solo funciona para los dominios que tienen acceso a Internet.

  1. Configura el identificador de EFS volumen de Amazon de origen del dominio que contiene los datos que vas a migrar.

    timestamp=$(date +%Y%m%d%H%M%S) export SOURCE_DOMAIN_ID="domain-id" export REGION="region" export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) export EFS_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId')
  2. Establezca el nombre del bucket de Amazon S3 de destino. Para obtener información sobre la creación de un bucket de Amazon S3, consulte Creación de un bucket. El bucket utilizado debe tener una CORS política como la que se describe en(Opcional) Actualice su CORS política para acceder a los buckets de Amazon S3. Los usuarios del dominio también deben tener permisos para acceder al bucket de Amazon S3.

    En este ejemplo, copiamos archivos a un prefijo denominadostudio-new. Si utiliza un único bucket de Amazon S3 para migrar varios dominios, utilice el studio-new/<domain-id> prefijo para restringir los permisos a los archivos que lo utilizanIAM.

    export BUCKET_NAME=s3-bucket-name export S3_DESTINATION_PATH=studio-new
  3. Cree una política de confianza que otorgue AWS DataSync permisos para asumir la función de ejecución de su cuenta.

    export TRUST_POLICY=$(cat <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "$ACCOUNT_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:datasync:$REGION:$ACCOUNT_ID:*" } } } ] } EOF )
  4. Crea un IAM rol y adjunta la política de confianza.

    export timestamp=$(date +%Y%m%d%H%M%S) export ROLE_NAME="DataSyncS3Role-$timestamp" aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document "$TRUST_POLICY" aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess echo "Attached IAM Policy AmazonS3FullAccess" aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess echo "Attached IAM Policy AmazonSageMakerFullAccess" export ROLE_ARN=$(aws iam get-role --role-name $ROLE_NAME --query 'Role.Arn' --output text) echo "Created IAM Role $ROLE_ARN"
  5. Crea un grupo de seguridad para dar acceso a la EFS ubicación de Amazon.

    export EFS_ARN=$(aws efs describe-file-systems --file-system-id $EFS_ID | jq -r '.FileSystems[0].FileSystemArn' ) export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].SubnetId') export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].VpcId') export MOUNT_TARGET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].MountTargetId ') export EFS_SECURITY_GROUP_ID=$(aws efs describe-mount-target-security-groups --mount-target-id $MOUNT_TARGET_ID | jq -r '.SecurityGroups[0]') export EFS_SUBNET_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r '.Subnets[0].SubnetArn') echo "Subnet ID: $EFS_SUBNET_ID" echo "Security Group ID: $EFS_SECURITY_GROUP_ID" echo "Subnet ARN: $EFS_SUBNET_ARN" timestamp=$(date +%Y%m%d%H%M%S) sg_name="datasync-sg-$timestamp" export DATASYNC_SG_ID=$(aws ec2 create-security-group --vpc-id $EFS_VPC_ID --group-name $sg_name --description "DataSync SG" --output text --query 'GroupId') aws ec2 authorize-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID aws ec2 authorize-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID export DATASYNC_SG_ARN="arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$DATASYNC_SG_ID" echo "Security Group ARN: $DATASYNC_SG_ARN"
  6. Crea una EFS ubicación de Amazon de origen para la AWS DataSync tarea.

    export SOURCE_ARN=$(aws datasync create-location-efs --efs-filesystem-arn $EFS_ARN --ec2-config "{\"SubnetArn\": \"$EFS_SUBNET_ARN\", \"SecurityGroupArns\": [\"$DATASYNC_SG_ARN\"]}" | jq -r '.LocationArn') echo "Source Location ARN: $SOURCE_ARN"
  7. Cree una ubicación Amazon S3 de destino para la AWS DataSync tarea.

    export BUCKET_ARN="arn:aws:s3:::$BUCKET_NAME" export DESTINATION_ARN=$(aws datasync create-location-s3 --s3-bucket-arn $BUCKET_ARN --s3-config "{\"BucketAccessRoleArn\": \"$ROLE_ARN\"}" --subdirectory $S3_DESTINATION_PATH | jq -r '.LocationArn') echo "Destination Location ARN: $DESTINATION_ARN"
  8. Cree una AWS DataSync tarea.

    export TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_ARN --destination-location-arn $DESTINATION_ARN | jq -r '.TaskArn') echo "DataSync Task: $TASK_ARN"
  9. Inicie la AWS DataSync tarea. Esta tarea copia automáticamente los datos del EFS volumen de Amazon de origen al bucket de Amazon S3 de destino. Espere a que se complete la tarea.

    aws datasync start-task-execution --task-arn $TASK_ARN
  10. Compruebe el estado de la AWS DataSync tarea para comprobar que se ha completado. Pase lo ARN devuelto en el paso anterior.

    export TASK_EXEC_ARN=datasync-task-arn echo "Task execution ARN: $TASK_EXEC_ARN" export STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status') echo "Execution status: $STATUS" while [ "$STATUS" = "QUEUED" ] || [ "$STATUS" = "LAUNCHING" ] || [ "$STATUS" = "PREPARING" ] || [ "$STATUS" = "TRANSFERRING" ] || [ "$STATUS" = "VERIFYING" ]; do STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status') if [ $? -ne 0 ]; then echo "Error Running DataSync Task" exit 1 fi echo "Execution status: $STATUS" sleep 30 done
  11. Una vez completada la AWS DataSync tarea, limpie los recursos creados anteriormente.

    aws datasync delete-task --task-arn $TASK_ARN echo "Deleted task $TASK_ARN" aws datasync delete-location --location-arn $SOURCE_ARN echo "Deleted location source $SOURCE_ARN" aws datasync delete-location --location-arn $DESTINATION_ARN echo "Deleted location source $DESTINATION_ARN" aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess aws iam delete-role --role-name $ROLE_NAME echo "Deleted IAM Role $ROLE_NAME" echo "Wait 5 minutes for the elastic network interface to detach..." start_time=$(date +%s) while [[ $(($(date +%s) - start_time)) -lt 300 ]]; do sleep 1 done aws ec2 revoke-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID echo "Revoked Ingress from $EFS_SECURITY_GROUP_ID" aws ec2 revoke-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID echo "Revoked Egress from $DATASYNC_SG_ID" aws ec2 delete-security-group --group-id $DATASYNC_SG_ID echo "Deleted DataSync SG $DATASYNC_SG_ID"
  12. En su equipo local, cree un archivo con el nombre on-start.sh que contenga lo siguiente. Este script copia el directorio EFS principal de Amazon del usuario en Amazon S3 al EBS volumen de Amazon del usuario en Studio y crea un prefijo para cada perfil de usuario.

    #!/bin/bash set -eo pipefail sudo apt-get install -y jq # Studio Variables DOMAIN_ID=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.DomainId') SPACE_NAME=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.SpaceName') USER_PROFILE_NAME=$(aws sagemaker describe-space --domain-id=$DOMAIN_ID --space-name=$SPACE_NAME | jq -r '.OwnershipSettings.OwnerUserProfileName') # S3 bucket to copy from BUCKET=s3-bucket-name # Subfolder in bucket to copy PREFIX=studio-new # Getting HomeEfsFileSystemUid for the current user-profile EFS_FOLDER_ID=$(aws sagemaker describe-user-profile --domain-id $DOMAIN_ID --user-profile-name $USER_PROFILE_NAME | jq -r '.HomeEfsFileSystemUid') # Local destination directory DEST=./studio-classic-efs-backup mkdir -p $DEST echo "Bucket: s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/" echo "Destination $DEST/" echo "Excluding .*" echo "Excluding .*/*" aws s3 cp s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/ $DEST/ \ --exclude ".*" \ --exclude "**/.*" \ --recursive
  13. Convierte tu script al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea. El tipo de script puede ser uno de los dosJupyterLab. CodeEditor

    export LCC_SCRIPT_NAME='studio-classic-sync' export SCRIPT_FILE_NAME='on-start.sh' export SCRIPT_TYPE='JupyterLab-or-CodeEditor' LCC_CONTENT=`openssl base64 -A -in ${SCRIPT_FILE_NAME}`
  14. Compruebe lo siguiente antes de utilizar el script:

    • El EBS volumen de Amazon es lo suficientemente grande como para almacenar los objetos que estás exportando.

    • No vas a migrar archivos y carpetas ocultos, por ejemplo .bashrc y .condarc si no tienes intención de hacerlo.

    • La función de ejecución AWS Identity and Access Management (IAM) asociada a los perfiles de usuario de Studio tiene las políticas configuradas para acceder únicamente al directorio principal correspondiente en Amazon S3.

  15. Cree una configuración de ciclo de vida con su script.

    aws sagemaker create-studio-lifecycle-config \ --studio-lifecycle-config-name $LCC_SCRIPT_NAME \ --studio-lifecycle-config-content $LCC_CONTENT \ --studio-lifecycle-config-app-type $SCRIPT_TYPE
  16. Adjunta el LCC archivo a tu dominio.

    aws sagemaker update-domain \ --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings ' {"JupyterLabAppSettings": {"LifecycleConfigArns": [ "lifecycle-config-arn" ] } }'
  17. A continuación, los usuarios pueden seleccionar el LCC script al iniciar una aplicación. Para obtener más información, consulte JupyterLab guía de usuario o Lanza una aplicación de edición de código en Studio. Esto sincroniza automáticamente los archivos de Amazon S3 con el EBS almacenamiento de Amazon del espacio del usuario.

Migre los flujos de datos desde Data Wrangler

Si ha utilizado anteriormente Amazon SageMaker Data Wrangler en Amazon SageMaker Studio Classic para tareas de preparación de datos, puede migrar al nuevo Amazon SageMaker Studio y acceder a la versión más reciente de Data Wrangler en Amazon Canvas. SageMaker Data Wrangler en SageMaker Canvas le proporciona una experiencia de usuario mejorada y acceso a las funciones más recientes, como una interfaz en lenguaje natural y un rendimiento más rápido.

Puede incorporarse a SageMaker Canvas en cualquier momento para empezar a utilizar la nueva experiencia de Data Wrangler. Para obtener más información, consulte Cómo empezar a usar Amazon SageMaker Canvas.

Si tiene archivos de flujo de datos guardados en Studio Classic en los que estaba trabajando anteriormente, puede incorporarlos a Studio y, a continuación, importar los archivos de flujo a Canvas. Dispone de las siguientes opciones de migración:

  • Migración con un solo clic: cuando inicia sesión en Canvas, puede usar una opción de importación única que migra todos sus archivos de flujo en su nombre.

  • Migración manual: puede importar manualmente sus archivos de flujo a Canvas. Desde Studio Classic, exporte los archivos a Amazon S3 o descárguelos a su máquina local. A continuación, inicia sesión en la aplicación SageMaker Canvas, importa los archivos de flujo y continúa con las tareas de preparación de datos.

La siguiente guía describe los requisitos previos para la migración y cómo migrar los archivos de flujo de datos mediante la opción manual o con un solo clic.

Requisitos previos

Revise los siguientes requisitos previos antes de empezar a migrar los archivos de flujo.

Paso 1. Migre el dominio y conceda permisos

Antes de migrar los archivos de flujo de datos, debe seguir los pasos específicos de la Migración desde Amazon SageMaker Studio Classic guía para asegurarse de que la función de AWS IAM ejecución de su perfil de usuario tenga los permisos necesarios. Migración de la interfaz de usuario de Studio Classic a StudioAntes de continuar, sigue los requisitos previos, en los que se describe cómo conceder los permisos necesarios, configurar Studio como la nueva experiencia y migrar tu dominio actual.

En concreto, debe tener permisos para crear una aplicación de SageMaker Canvas y utilizar las funciones de preparación de datos de SageMaker Canvas. Para obtener estos permisos, puede:

Asegúrese de utilizar el mismo perfil de usuario para Studio y Canvas. SageMaker

Tras cumplir los requisitos previos descritos en la guía de migración, debería disponer de un nuevo dominio con los permisos necesarios para acceder a SageMaker Canvas a través de Studio.

Paso 2. (Opcional) Prepare una ubicación de Amazon S3

Si va a realizar una migración manual y piensa utilizar Amazon S3 para transferir los archivos de flujo en lugar de utilizar la opción de descarga local, debe tener un bucket de Amazon S3 en su cuenta que desee utilizar para almacenar los archivos de flujo.

Método de migración con un solo clic

SageMaker Canvas ofrece una opción de importación única para migrar sus flujos de datos de Data Wrangler en Studio Classic a Data Wrangler en Canvas. SageMaker Siempre que sus aplicaciones Studio Classic y Canvas compartan el mismo volumen de EFS almacenamiento de Amazon, puede migrar desde Canvas con un solo clic. Este proceso simplificado elimina la necesidad de realizar pasos de exportación e importación manuales, y puede importar todos sus flujos a la vez.

Utilice el siguiente procedimiento para migrar todos los archivos de flujo:

  1. Abre la versión más reciente de Studio.

  2. En Studio, en el panel de navegación izquierdo, selecciona el menú desplegable Datos.

  3. En las opciones de navegación, selecciona Data Wrangler.

  4. En la página Data Wrangler, selecciona Ejecutar en Canvas. Si ha configurado correctamente los permisos, se creará una aplicación de Canvas para usted. La aplicación Canvas puede tardar unos minutos en estar lista.

  5. Cuando Canvas esté listo, selecciona Abrir en Canvas.

  6. Canvas se abre en la página Data Wrangler y aparece un encabezado en la parte superior de la página que dice Importe sus flujos de datos de Data Wrangler en Studio Classic a Canvas. Se trata de una importación que se realiza una sola vez. Más información. En el banner, selecciona Importar todo.

    aviso

    Si cierras la notificación del banner, no podrás volver a abrirla ni utilizar el método de migración con un solo clic.

Aparece una notificación emergente que indica que Canvas está importando los archivos de flujo de Studio Classic. Si la importación se ha realizado correctamente, recibirá otra notificación indicando el X número de archivos de flujo que se han importado y podrá ver sus archivos de flujo en la página Data Wrangler de la aplicación Canvas. Cualquier archivo de flujo importado que tenga el mismo nombre que los flujos de datos existentes en su aplicación Canvas se renombra con un sufijo. Puede abrir un flujo de datos para comprobar que tiene el aspecto esperado.

En caso de que alguno de sus archivos de flujo no se importe correctamente, recibirá una notificación en la que se indica que la importación se ha realizado parcialmente correctamente o ha fallado. Seleccione Ver los errores en el mensaje de notificación para comprobar los mensajes de error individuales y obtener instrucciones sobre cómo volver a formatear cualquier archivo de flujo con un formato incorrecto.

Tras importar los archivos de flujo, ahora debería poder seguir utilizando Data Wrangler para preparar los datos en Canvas. SageMaker

Método de migración manual

En las siguientes secciones se describe cómo importar manualmente los archivos de flujo a Canvas en caso de que el método de migración con un solo clic no funcione.

Exporte los archivos de flujo desde Studio Classic

nota

Si ya ha migrado sus datos de Studio Classic a Amazon S3 siguiendo las instrucciones de(Opcional) Migrar datos de Studio Classic a Studio, puede omitir este paso e ir directamente a la Importe los archivos de flujo a Canvas sección en la que importa los archivos de flujo desde la ubicación de Amazon S3 en la que se almacenan los datos de Studio Classic.

Puede exportar sus archivos de flujo guardándolos en Amazon S3 o descargándolos en su máquina local. Cuando importe sus archivos de flujo a SageMaker Canvas en el siguiente paso, si elige la opción de carga local, solo podrá cargar 20 archivos de flujo a la vez. Si tiene que importar un gran número de archivos de flujo, le recomendamos que utilice Amazon S3 en su lugar.

Siga las instrucciones que se indican en Método 1: usar Amazon S3 para transferir archivos de flujo cualquiera de Método 2: utilice su máquina local para transferir los archivos de flujo ellos para continuar.

Método 1: usar Amazon S3 para transferir archivos de flujo

Con este método, utiliza Amazon S3 como intermediario entre Data Wrangler en Studio Classic y Data Wrangler en SageMaker Canvas (se accede a través de la última versión de Studio). Exporta los archivos de flujo de Studio Classic a Amazon S3 y, en el siguiente paso, accede a Canvas a través de Studio e importa los archivos de flujo desde Amazon S3.

Asegúrese de tener un depósito de Amazon S3 preparado como ubicación de almacenamiento para los archivos de flujo.

Utilice el siguiente procedimiento para exportar los archivos de flujo de Studio Classic a Amazon S3:

  1. Abre Studio Classic.

  2. Abra una nueva terminal de la siguiente manera:

    1. En la barra de navegación superior, selecciona Archivo.

    2. En el menú contextual, coloca el cursor sobre Nuevo y, a continuación, selecciona Terminal.

  3. De forma predeterminada, el terminal debería abrirse en tu directorio principal. Navegue hasta la carpeta que contiene todos los archivos de flujo que desee migrar.

  4. Utilice el siguiente comando para sincronizar todos los archivos de flujo con la ubicación de Amazon S3 especificada. Sustituya {bucket-name} y {folder} por la ruta a la ubicación de Amazon S3 que desee. Para obtener más información sobre el comando y los parámetros, consulte el comando sync en la Referencia de AWS AWS CLI comandos.

    aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow"

    Si utiliza el suyo propio AWS KMS key, utilice el siguiente comando en su lugar para sincronizar los archivos y especifique su ID de KMS clave. Asegúrese de que la función de IAM ejecución del usuario (que debe ser la misma que se utilizó en el paso 1). Al migrar el dominio y conceder los permisos de los requisitos anteriores, se le ha concedido el acceso para usar la KMS clave.

    aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow" --sse-kms-key-id {your-key-id}

Sus archivos de flujo ahora deberían exportarse. Puede comprobar su bucket de Amazon S3 para asegurarse de que los archivos de flujo se sincronizaron correctamente.

Para importar estos archivos en la última versión de Data Wrangler, sigue los pasos que se indican. Importe los archivos de flujo a Canvas

Método 2: utilice su máquina local para transferir los archivos de flujo

Con este método, descarga los archivos de flujo de Studio Classic a su máquina local. Puede descargar los archivos directamente o comprimirlos como un archivo zip. A continuación, desempaqueta el archivo zip localmente (si corresponde), inicia sesión en Canvas e importa los archivos de flujo subiéndolos desde su máquina local.

Utilice el siguiente procedimiento para descargar los archivos de flujo de Studio Classic:

  1. Abre Studio Classic.

  2. (Opcional) Si desea comprimir varios archivos de flujo en un archivo zip y descargarlos todos a la vez, haga lo siguiente:

    1. En la barra de navegación superior de Studio Classic, selecciona Archivo.

    2. En el menú contextual, coloque el cursor sobre Nuevo y, a continuación, seleccione Terminal.

    3. De forma predeterminada, el terminal se abre en tu directorio principal. Navegue hasta la carpeta que contiene todos los archivos de flujo que desee migrar.

    4. Utilice el siguiente comando para empaquetar los archivos de flujo del directorio actual en forma de zip. El comando excluye todos los archivos ocultos:

      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
  3. Descargue el archivo zip o los archivos de flujo individuales a su máquina local de la siguiente manera:

    1. En el panel de navegación izquierdo de Studio Classic, elija Explorador de archivos.

    2. Busque el archivo que desee descargar en el explorador de archivos.

    3. Haga clic con el botón derecho en el archivo y, en el menú contextual, seleccione Descargar.

El archivo debería descargarse en su máquina local. Si los empaquetó como un archivo zip, extraiga los archivos localmente. Una vez extraídos los archivos, para importarlos a la última versión de Data Wrangler, siga los pasos que se indican. Importe los archivos de flujo a Canvas

Importe los archivos de flujo a Canvas

Después de exportar los archivos de flujo, acceda a Canvas a través de Studio e importe los archivos.

Utilice el siguiente procedimiento para importar archivos de flujo a Canvas:

  1. Abre la última versión de Studio.

  2. En Studio, en el panel de navegación izquierdo, selecciona el menú desplegable Datos.

  3. En las opciones de navegación, selecciona Data Wrangler.

  4. En la página Data Wrangler, selecciona Ejecutar en Canvas. Si ha configurado correctamente los permisos, se creará una aplicación de Canvas para usted. La aplicación Canvas puede tardar unos minutos en estar lista.

  5. Cuando Canvas esté listo, selecciona Abrir en Canvas.

  6. Canvas se abre en la página Data Wrangler. En el panel superior, selecciona Importar flujos de datos.

  7. En Fuente de datos, elija Amazon S3 o Carga local.

  8. Seleccione los archivos de flujo de su bucket de Amazon S3 o cargue los archivos desde su máquina local.

    nota

    Para la carga local, puede cargar un máximo de 20 archivos de flujo a la vez. Para importaciones más grandes, utilice Amazon S3. Si selecciona una carpeta para importar, también se importarán todos los archivos de flujo de las subcarpetas.

  9. Elija Importar datos.

Si la importación se ha realizado correctamente, recibirá una notificación en la que se indica que el X número de archivos de flujo se ha importado correctamente.

En caso de que sus archivos de flujo no se importen correctamente, recibirá una notificación en la aplicación SageMaker Canvas. Seleccione Ver errores en el mensaje de notificación para comprobar los mensajes de error individuales y obtener instrucciones sobre cómo volver a formatear cualquier archivo de flujo con un formato incorrecto.

Una vez que haya terminado de importar los archivos de flujo, vaya a la página Data Wrangler de la aplicación SageMaker Canvas para ver los flujos de datos. Puede intentar abrir un flujo de datos para comprobar que tiene el aspecto esperado.