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) Migración de datos de Studio Classic a Studio
Studio Classic y Studio utilizan dos tipos diferentes de volúmenes de almacenamiento. Studio Classic utiliza un solo volumen de Amazon Elastic File System (Amazon EFS) para almacenar datos de todos los usuarios y espacios compartidos del dominio. En Studio, cada espacio tiene su propio volumen de Amazon Elastic Block Store (Amazon EBS). Al actualizar la experiencia predeterminada de un dominio existente, SageMaker AI monta automáticamente una carpeta en un volumen de Amazon EFS para cada usuario de un dominio. A consecuencia de ello, los usuarios pueden obtener acceso a los archivos de Studio Classic en sus aplicaciones de Studio. Para obtener más información, consulte Montaje automático de Amazon EFS en Studio.
También puede dar de baja el montaje automático de Amazon EFS y migrar los datos manualmente para que los usuarios puedan obtener acceso a los archivos de Studio Classic en las aplicaciones de Studio. Para ello, debe transferir los archivos de los directorios principales de los usuarios a los volúmenes de Amazon EBS asociados a esos espacios. En la siguiente sección se proporciona información sobre este flujo de trabajo. Para obtener más información sobre cómo dar de baja el montaje automático de Amazon EFS, consulte Exclusión del montaje automático de Amazon EFS.
Migración manual de todos los 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:
-
Uso de un volumen personalizado de Amazon EFS
-
Uso de 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 Migración manual de todos los datos desde Studio Classic y lleve a cabo la sección Uso de Amazon S3 para migrar datos. Después, vaya directamente a la sección Importación de los archivos de flujo a Canvas.
-
Si solo quiere migrar sus archivos de flujo de datos y ningún otro dato de su volumen de almacenamiento de Studio Classic, vaya directamente a la sección Migración de los flujos de datos desde Data Wrangler.
Requisitos previos
Antes de llevar a cabo estos pasos, debe cumplir los requisitos previos de Requisitos previos completos para migrar la experiencia de Studio. También debe realizar los pasos que se indican en Migración de la interfaz de usuario de Studio Classic a Studio.
Elección de un enfoque
Tenga en cuenta lo siguiente al elegir un enfoque para migrar los datos de Studio Classic.
Pros y contras de usar un volumen personalizado de Amazon EFS
En este enfoque, utiliza una AWS DataSync tarea de Amazon EFS-to-Amazon EFS (una vez o cada vez) para copiar los datos y, a continuación, montar el volumen de Amazon EFS de destino en los espacios de un usuario. Esto permite a los usuarios obtener acceso a los datos de sus entornos de computación de Studio desde Studio Classic.
Ventajas:
-
Solo los datos del directorio principal del usuario están visibles en los espacios del usuario. No se produce polinización cruzada entre los datos.
-
La sincronización desde el volumen de Amazon EFS de origen con un volumen de Amazon EFS de destino es más segura que montar directamente el volumen de Amazon EFS de origen gestionado por la SageMaker IA en espacios. Esto evita la posibilidad de que los archivos de usuario del directorio principal se vean afectados.
-
Los usuarios tienen la flexibilidad de seguir trabajando en las aplicaciones de Studio Classic y Studio, mientras tienen los datos disponibles en ambas aplicaciones si AWS DataSync se ha configurado con una cadencia periódica.
-
No es necesario insertar y extraer los datos repetidamente con Amazon S3.
Desventajas:
-
No se produce ningún acceso de escritura al volumen de Amazon EFS de destino montado en los espacios del usuario. Para obtener acceso de escritura al volumen de Amazon EFS de destino, los clientes deberán montar el volumen de Amazon EFS de destino en una instancia de Amazon Elastic Compute Cloud y proporcionar los permisos adecuados para que los usuarios escriban en el prefijo de Amazon EFS.
-
Es necesario modificar los grupos de seguridad gestionados por la SageMaker IA para permitir el flujo de entrada y salida del sistema de archivos de red (NFS).
-
Es más costoso 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.
Pros y contras de usar 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 volumen de Amazon EBS de su espacio privado.
Ventajas:
-
Si la configuración de ciclo de vida está asociada al dominio, los usuarios pueden usarla para copiar los datos en su espacio o administrar el espacio sin un script de configuración de ciclo de vida. Esto les permite copiar los archivos solo en los espacios que necesiten.
-
Si una AWS DataSync tarea se configura de forma continua, los usuarios pueden reiniciar su aplicación Studio para obtener los archivos más recientes.
-
Como los datos se copian en Amazon EBS, los usuarios tienen permisos de escritura en los archivos.
-
El almacenamiento de Amazon S3 es más económico que el de Amazon EFS.
-
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 políticas de AWS Identity and Access Management para usuarios a fin de garantizar que estos solo puedan obtener acceso al prefijo de Amazon S3 que contiene sus propios archivos.
En este enfoque, utiliza un Amazon EFS-to-Amazon EFS AWS DataSync para copiar el contenido de un volumen Amazon EFS de Studio Classic a un volumen Amazon EFS de destino una vez o con una cadencia normal y, a continuación, monta el volumen Amazon EFS de destino en los espacios de un usuario. Esto permite a los usuarios obtener acceso a los datos de sus entornos de computación de Studio desde Studio Classic.
-
Cree un volumen de Amazon EFS de destino. Transferirá los datos a este volumen de Amazon EFS y lo montará en el espacio del usuario correspondiente mediante un montaje por 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" -
Agregue variables para el volumen de Amazon EFS de origen que se encuentra asociado al dominio y que utilizan todos los usuarios. La información de Amazon Virtual Private Cloud del dominio es necesaria para asegurarse de que el volumen de Amazon EFS de destino se cree en la misma subred y VPC de Amazon y 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"
-
Cree un destino de montaje de Amazon EFS en la misma subred y VPC de Amazon que el volumen de Amazon EFS de origen y con la misma configuración de grupo de seguridad. El destino 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
-
Cree las ubicaciones de origen y destino de Amazon EFS 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")
-
Permita el tráfico entre los montajes del sistema de archivos de red (NFS) de origen y de destino. Cuando se crea un dominio nuevo, la SageMaker IA crea 2 grupos de seguridad.
-
Un grupo de seguridad entrante de NFS que solo tiene tráfico entrante.
-
Un grupo de seguridad saliente de NFS que solo tiene tráfico saliente.
Los NFS de origen y de destino 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 procedente del AWS Management Console
Inicie sesión en la consola de Amazon VPC AWS Management Console y ábrala en. https://console.aws.amazon.com/vpc/
-
Seleccione Security Groups.
-
Busque el ID del dominio existente en la página Grupos de seguridad.
d-
xxxxxxx
Los resultados deberían devolver dos grupos de seguridad en cuyo nombre se incluya el ID de dominio.
-
security-group-for-inbound-nfs-
domain-id
-
security-group-for-outbound-nfs-
domain-id
-
-
Seleccione el ID del grupo de seguridad entrante. Se abre una nueva página con detalles sobre el grupo de seguridad.
-
Seleccione la pestaña Reglas de salida.
-
Seleccione Editar reglas de salida.
-
Actualice las reglas de salida existentes o agregue una nueva regla de salida con los siguientes valores:
-
Type (Tipo): NFS
-
Protocolo: TCP
-
Rango de puertos: 2049
-
Destino: security-group-for-outbound -nfs- |
domain-id
security-group-id
-
-
Seleccione Guardar reglas.
-
Seleccione la pestaña Reglas de entrada.
-
A continuación, seleccione Editar reglas de entrada.
-
Actualice las reglas de entrada existentes o agregue una nueva regla de salida con los siguientes valores:
-
Type (Tipo): NFS
-
Protocolo: TCP
-
Rango de puertos: 2049
-
Destino: security-group-for-outbound -nfs- |
domain-id
security-group-id
-
-
Seleccione Guardar reglas.
-
Permita el tráfico procedente del AWS CLI
-
Actualice las reglas de entrada y salida de los grupos de seguridad con los valores siguientes:
-
Protocolo: TCP
-
Rango de puertos: 2049
-
ID de grupo: del grupo de seguridad entrante o ID del 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
-
-
Agregue los grupos de seguridad entrantes y salientes a los destinos de montaje de Amazon EFS de origen y destino. Esto permite el tráfico entre los dos montajes de Amazon EFS.
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
-
-
-
Crea una AWS DataSync tarea. Esto devuelve un ARN de tarea que se puede usar para ejecutar la tarea 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")
-
Inicie una AWS DataSync tarea para copiar automáticamente los datos del Amazon EFS de origen al montaje de Amazon EFS de destino. Con esto, no se retienen los permisos de POSIX del archivo, lo que permite a los usuarios leer el montaje de Amazon EFS de destino, pero no escribir en él.
aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
-
Monte el volumen de Amazon EFS de destino en el nivel raíz del dominio.
aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
-
Sobrescriba todos los perfiles de usuario con un prefijo
FileSystemPath
. El prefijo incluye el UID del usuario, creado por SageMaker AI. 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 volumen de Amazon EFS de destino se monta en la aplicación, el prefijo del usuario sobrescribe el prefijo del dominio. Como resultado, SageMaker AI 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
-
A continuación, los usuarios pueden seleccionar el sistema de archivos de Amazon EFS personalizado al inicializar una aplicación. Para obtener más información, consulte JupyterLab guía de usuario o Inicialización de una aplicación de editor 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 volumen Amazon EFS 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 volumen Amazon EBS de su espacio privado.
nota
Este enfoque solo funciona para los dominios que tienen acceso a Internet.
-
Establezca el ID del volumen de Amazon EFS de origen del dominio que contiene los datos que se van 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') -
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 Crear un bucket. El bucket utilizado debe tener una política de CORS, tal y como se describe en (Opcional) Actualización de la política de CORS para obtener acceso a los buckets de Amazon S3. Los usuarios del dominio también deben tener permisos para obtener acceso al bucket de Amazon S3.
En este ejemplo, copiamos archivos en un prefijo denominado
studio-new
. Si utiliza un único bucket de Amazon S3 para migrar varios dominios, utilice el prefijostudio-new/<domain-id>
para restringir los permisos sobre los archivos mediante IAM.export BUCKET_NAME=
s3-bucket-name
export S3_DESTINATION_PATH=studio-new -
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 )
-
Cree un rol de IAM y asóciele 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"
-
Cree un grupo de seguridad para dar acceso a la ubicación de Amazon EFS.
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"
-
Cree una ubicación Amazon EFS 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"
-
Cree una ubicación de 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"
-
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"
-
Inicie la AWS DataSync tarea. Esta tarea copia automáticamente los datos del volumen de Amazon EFS de origen al bucket de Amazon S3 de destino. Espere a que la tarea se lleve a cabo.
aws datasync start-task-execution --task-arn $TASK_ARN
-
Compruebe el estado de la AWS DataSync tarea para comprobar que se ha completado. Utilice el 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 -
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"
-
En su equipo local, cree un archivo con el nombre
on-start.sh
que contenga lo siguiente. En este script se copia el directorio principal de Amazon EFS del usuario de Amazon S3 en el volumen de Amazon EBS del usuario de Studio y se 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 -
Convierta el 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
JupyterLab
oCodeEditor
.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}` -
Compruebe lo siguiente antes de utilizar el script:
-
Que el volumen de Amazon EBS sea lo bastante grande como para almacenar los objetos que se van a exportar.
-
Que no se migren archivos y carpetas ocultos, por ejemplo
.bashrc
y.condarc
, si no se tiene 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.
-
-
Cree un script de configuración de ciclo de vida.
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
-
Asocie la configuración de ciclo de vida al dominio.
aws sagemaker update-domain \ --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings ' {"JupyterLabAppSettings": {"LifecycleConfigArns": [ "
lifecycle-config-arn
" ] } }' -
A continuación, los usuarios pueden seleccionar el script de la configuración de ciclo de vida al inicializar una aplicación. Para obtener más información, consulte JupyterLab guía de usuario o Inicialización de una aplicación de editor de código en Studio. Con ello, se sincronizan automáticamente los archivos de Amazon S3 con el almacenamiento de Amazon EBS del espacio del usuario.
Migración de 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 realizar la incorporación a Studio y, a continuación, importarlos a Canvas. Dispone de las siguientes opciones de migración:
Migración con un clic: al iniciar sesión en Canvas, puede usar una opción de importación única que migre 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.
En la siguiente guía se describen 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 comenzar 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 ejecución de AWS IAM de su perfil de usuario tenga los permisos necesarios. Antes de continuar, cumpla los requisitos previos y las instrucciones de Migración de la interfaz de usuario de Studio Classic a Studio, en los que se describe cómo conceder los permisos necesarios, configurar Studio como nueva experiencia y migrar el dominio existente.
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:
Añada la AmazonSageMakerCanvasDataPrepFullAccesspolítica a su función de IAM, o
Adjunta una política de permisos mínimos, como se muestra en la sección Migración (opcional) de Data Wrangler en Studio Classic a SageMaker Canvas de la página. Migración de la interfaz de usuario de Studio Classic a Studio
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 tiene previsto 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 la cuenta que desee utilizar para almacenar los archivos de flujo.
Método de migración con un 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 y cuando sus aplicaciones de Studio Classic y Canvas compartan el mismo volumen de almacenamiento de Amazon EFS, puede realizar la migración desde Canvas con un solo clic. Con este proceso simplificado, se elimina la necesidad de realizar pasos de exportación e importación manuales, y es posible importar todos los flujos a la vez.
Utilice el siguiente procedimiento para migrar todos los archivos de flujo:
-
Abra la versión más reciente de Studio.
-
En Studio, seleccione el menú desplegable Datos en el panel de navegación izquierdo.
-
En las opciones de navegación, elija Data Wrangler.
-
En la página Data Wrangler, seleccione Ejecutar en Canvas. Si ha configurado correctamente los permisos, se creará su aplicación de Canvas. La aplicación de Canvas puede tardar unos minutos en estar lista.
-
Cuando Canvas esté listo, seleccione Abrir en Canvas.
-
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. Esta es una importación que se realiza una sola vez. Más información
. En el banner, seleccione Importar todo.aviso
Si cierra la notificación del banner, no podrá volver a abrirla ni utilizar el método de migración con un clic.
Aparece una notificación emergente que indica que Canvas está importando los archivos de flujo de Studio Classic. Si la importación se realiza correctamente, recibirá otra notificación que le indicará que X
archivos de flujo se han importado y podrá ver los archivos de flujo en la página Data Wrangler de la aplicación de Canvas. Cualquier archivo de flujo importado que tenga el mismo nombre que los flujos de datos existentes en su aplicación de Canvas se renombrará con un sufijo. Puede abrir un flujo de datos para comprobar que tiene el aspecto esperado.
En caso de que alguno de los archivos de flujo no se importe correctamente, recibirá una notificación en la que se indica que la importación se ha realizado solo parcialmente o no se ha realizado. Seleccione Ver errores en el mensaje de notificación para comprobar los mensajes de error individuales y obtener instrucciones sobre cómo reformatear los archivos de flujo cuyo formato sea 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 clic no haya funcionado.
Exportación de 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) Migración de datos de Studio Classic a Studio, puede omitir este paso e ir directamente a la sección Importación de los archivos de flujo a Canvas en la que se importan los archivos de flujo desde la ubicación de Amazon S3 en la que están almacenados los datos de Studio Classic.
Para exportar sus archivos de flujo, puede guardarlos en Amazon S3 o descargarlos 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 gran cantidad de archivos de flujo, recomendamos utilizar Amazon S3 en su lugar.
Siga las instrucciones que se indican en Método 1: uso de Amazon S3 para transferir archivos de flujo o en Método 2: uso de su equipo local para transferir los archivos de flujo para continuar.
Método 1: uso de 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 (al que se accede a través de la última versión de Studio). Se exportan los archivos de flujo de Studio Classic a Amazon S3 y, a continuación, en el siguiente paso, se accede a Canvas a través de Studio y se importan los archivos de flujo desde Amazon S3.
Asegúrese de tener un bucket 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:
-
Abra Studio Classic.
-
Abra un nuevo terminal de la siguiente manera:
-
En la barra de navegación, elija Archivo.
-
En el menú contextual, sitúe el cursor sobre Nuevo y, a continuación, seleccione Terminal.
-
-
De forma predeterminada, el terminal debería abrirse en su directorio principal. Acceda la carpeta que contiene todos los archivos de flujo que desea migrar.
-
Utilice el siguiente comando para sincronizar todos los archivos de flujo con la ubicación de Amazon S3 especificada. Sustituya
y{bucket-name}
por la ruta de 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 comandos. AWS AWS CLI{folder}
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 clave de KMS. Asegúrese de que al rol de ejecución de IAM del usuario (que debe ser el mismo que se ha utilizado en Paso 1. Migre el dominio y conceda permisos de los Requisitos previos anteriores) se le haya concedido acceso para usar la clave de KMS.
aws s3 sync . s3://
{bucket-name}
/{folder}
/ --exclude "*.*" --include "*.flow" --sse-kms-key-id{your-key-id}
Sus archivos de flujo deberían exportarse ahora. Puede comprobar su bucket de Amazon S3 para asegurarse de que los archivos de flujo se han sincronizado correctamente.
Para importar estos archivos en la versión más reciente de Data Wrangler, siga los pasos que se indican en Importación de los archivos de flujo a Canvas.
Método 2: uso de su equipo local para transferir los archivos de flujo
Con este método, se descargan los archivos de flujo de Studio Classic a su equipo local. Puede descargar los archivos directamente o comprimirlos en un archivo zip. A continuación, descomprima el archivo zip localmente (si corresponde), inicie sesión en Canvas y cargue los archivos de flujo desde su máquina local para importarlos.
Utilice el siguiente procedimiento para descargar los archivos desde flujo de Studio Classic:
-
Abra Studio Classic.
-
(Opcional) Si desea comprimir varios archivos de flujo en un archivo zip y descargarlos todos a la vez, haga lo siguiente:
-
En la barra de navegación de Studio Classic, elija Archivo.
-
En el menú contextual, sitúe el cursor sobre Nuevo y, a continuación, seleccione Terminal.
-
De forma predeterminada, el terminal se abre en su directorio principal. Acceda la carpeta que contiene todos los archivos de flujo que desea migrar.
-
Utilice el siguiente comando para comprimir los archivos de flujo del directorio actual en un archivo zip. El comando excluye todos los archivos ocultos:
find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
-
-
Descargue el archivo zip o los archivos de flujo individuales a su máquina local de la siguiente manera:
-
En el panel de navegación izquierdo de Studio Classic, seleccione Explorador de archivos.
-
Busque el archivo que desee descargar en el explorador de archivos.
-
Haga clic con el botón derecho en el archivo y, en el menú contextual, seleccione Descargar.
-
El archivo debería descargarse en el equipo local. Si ha comprimido los archivos en un archivo zip, extráigalos localmente. Después de extraer los archivos, para importarlos en la versión más reciente de Data Wrangler, siga los pasos que se indican en Importación de los archivos de flujo a Canvas.
Importación de los archivos de flujo a Canvas
Después de exportar los archivos de flujo, obtenga acceso a Canvas a través de Studio e importe los archivos.
Utilice el siguiente procedimiento para importar los archivos de flujo a Canvas:
-
Abra la versión más reciente de Studio.
-
En Studio, seleccione el menú desplegable Datos en el panel de navegación izquierdo.
-
En las opciones de navegación, elija Data Wrangler.
-
En la página Data Wrangler, seleccione Ejecutar en Canvas. Si ha configurado correctamente los permisos, se creará su aplicación de Canvas. La aplicación de Canvas puede tardar unos minutos en estar lista.
-
Cuando Canvas esté listo, seleccione Abrir en Canvas.
-
Canvas se abre en la página Data Wrangler. En el panel superior, seleccione Importar flujos de datos.
-
En el menú desplegable Origen de datos, seleccione Amazon S3 o Carga local.
-
Seleccione los archivos de flujo de su bucket de Amazon S3 o cargue los archivos desde su equipo local.
nota
En la carga local, puede cargar un máximo de 20 archivos de flujo a la vez. Para importaciones mayores, utilice Amazon S3. Si selecciona una carpeta para importarla, también se importarán todos los archivos de flujo de las subcarpetas.
-
Elija Importar datos.
Si la importación se ha realizado correctamente, recibirá una notificación en la que se indicará que X
archivos de flujo se han 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 reformatear los archivos de flujo cuyo formato sea incorrecto.
Una vez que los archivos de flujo hayan terminado de importarse, 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.