(Facultatif) Migrer les données de Studio Classic vers Studio - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

(Facultatif) Migrer les données de Studio Classic vers Studio

Studio Classic et Studio utilisent deux types de volumes de stockage différents. Studio Classic utilise un volume Amazon Elastic File System (Amazon EFS) unique pour stocker les données de tous les utilisateurs et des espaces partagés du domaine. Dans Studio, chaque espace possède son propre volume Amazon Elastic Block Store (Amazon EBS). Lorsque vous mettez à jour l'expérience par défaut d'un domaine existant, SageMaker AI monte automatiquement un dossier dans un volume Amazon EFS pour chaque utilisateur d'un domaine. Par conséquent, les utilisateurs peuvent accéder aux fichiers depuis Studio Classic dans leurs applications Studio. Pour de plus amples informations, veuillez consulter Montage automatique d'Amazon EFS dans Studio.

Vous pouvez également désactiver le montage automatique d'Amazon EFS et migrer manuellement les données pour permettre aux utilisateurs d'accéder aux fichiers depuis les applications Studio Classic dans Studio. Pour ce faire, vous devez transférer les fichiers des répertoires personnels des utilisateurs vers les volumes Amazon EBS associés à ces espaces. La section suivante fournit des informations sur ce flux de travail. Pour plus d'informations sur la désactivation du montage automatique d'Amazon EFS, consultez. Désactiver le montage automatique d'Amazon EFS

Migrez manuellement toutes vos données depuis Studio Classic

La section suivante décrit comment migrer toutes les données de votre volume de stockage Studio Classic vers la nouvelle expérience Studio.

Lorsque vous migrez manuellement les données, le code et les artefacts d'un utilisateur de Studio Classic vers Studio, nous recommandons l'une des approches suivantes :

  1. Utilisation d'un volume Amazon EFS personnalisé

  2. Utilisation d'Amazon Simple Storage Service (Amazon S3)

Si vous avez utilisé Amazon SageMaker Data Wrangler dans Studio Classic et que vous souhaitez migrer vos fichiers de flux de données, choisissez l'une des options de migration suivantes :

  • Si vous souhaitez migrer toutes les données de votre volume de stockage Studio Classic, y compris vos fichiers de flux de données, consultez Migrez manuellement toutes vos données depuis Studio Classic et complétez la section Utiliser Amazon S3 pour migrer des données. Passez ensuite à la Importez les fichiers de flux dans Canvas section.

  • Si vous souhaitez uniquement migrer vos fichiers de flux de données et aucune autre donnée de votre volume de stockage Studio Classic, passez à la Migrer les flux de données depuis Data Wrangler section.

Prérequis

Avant d'exécuter ces étapes, remplissez les conditions requises dansConditions préalables complètes pour migrer l'expérience Studio. Vous devez également effectuer les étapes deMigrer l'interface utilisateur de Studio Classic vers Studio.

Choisir une approche

Tenez compte des points suivants lorsque vous choisissez une approche pour migrer vos données Studio Classic.

Avantages et inconvénients de l'utilisation d'un volume Amazon EFS personnalisé

Dans cette approche, vous utilisez une AWS DataSync tâche Amazon EFS-to-Amazon EFS (ponctuelle ou cadence) pour copier des données, puis vous montez le volume Amazon EFS cible sur les espaces d'un utilisateur. Cela permet aux utilisateurs d'accéder aux données de Studio Classic dans leurs environnements informatiques Studio.

Avantages :

  • Seules les données du répertoire personnel de l'utilisateur sont visibles dans les espaces de l'utilisateur. Il n'existe aucune donnée sur la pollinisation croisée.

  • La synchronisation entre le volume Amazon EFS source et un volume Amazon EFS cible est plus sûre que le montage direct du volume Amazon EFS source géré par SageMaker AI dans des espaces. Cela permet d'éviter tout impact potentiel sur les fichiers utilisateur du répertoire de base.

  • Les utilisateurs ont la possibilité de continuer à travailler dans les applications Studio Classic et Studio, tout en ayant leurs données disponibles dans les deux applications si elles AWS DataSync sont configurées à une cadence régulière.

  • Inutile de recourir à des commandes push et pull répétées avec Amazon S3.

Inconvénients :

  • Aucun accès en écriture au volume Amazon EFS cible monté dans les espaces utilisateur. Pour obtenir un accès en écriture au volume Amazon EFS cible, les clients doivent monter le volume Amazon EFS cible sur une instance Amazon Elastic Compute Cloud et fournir les autorisations appropriées aux utilisateurs pour écrire dans le préfixe Amazon EFS.

  • Nécessite de modifier les groupes de sécurité gérés par l' SageMaker IA pour autoriser les flux entrants et sortants du système de fichiers réseau (NFS).

  • Coûte plus cher que d'utiliser Amazon S3.

  • Si vous migrez des flux de données depuis Data Wrangler dans Studio Classic, vous devez suivre les étapes d'exportation manuelle des fichiers de flux.

Avantages et inconvénients de l'utilisation d'Amazon S3

Dans cette approche, vous utilisez une AWS DataSync tâche Amazon EFS-to-Amazon S3 (ponctuelle ou cadence) pour copier des données, puis vous créez une configuration de cycle de vie pour copier les données de l'utilisateur depuis Amazon S3 vers le volume Amazon EBS de son espace privé.

Avantages :

  • Si le LCC est rattaché au domaine, les utilisateurs peuvent choisir d'utiliser le LCC pour copier des données dans leur espace ou d'exécuter l'espace sans script LCC. Cela donne aux utilisateurs le choix de copier leurs fichiers uniquement dans les espaces dont ils ont besoin.

  • Si une AWS DataSync tâche est configurée à une cadence, les utilisateurs peuvent redémarrer leur application Studio pour obtenir les derniers fichiers.

  • Les données étant copiées sur Amazon EBS, les utilisateurs disposent d'autorisations d'écriture sur les fichiers.

  • Le stockage Amazon S3 est moins cher qu'Amazon EFS.

  • Si vous migrez des flux de données depuis Data Wrangler dans Studio Classic, vous pouvez ignorer les étapes d'exportation manuelle et importer directement les flux de données dans SageMaker Canvas depuis Amazon S3.

Inconvénients :

  • Si les administrateurs doivent empêcher la pollinisation croisée, ils doivent créer des AWS Identity and Access Management politiques au niveau de l'utilisateur pour garantir que les utilisateurs ne peuvent accéder qu'au préfixe Amazon S3 qui contient leurs fichiers.

Dans cette approche, vous utilisez un Amazon EFS-to-Amazon EFS AWS DataSync pour copier le contenu d'un volume Amazon EFS Studio Classic sur un volume Amazon EFS cible une fois ou selon une cadence régulière, puis vous montez le volume Amazon EFS cible sur les espaces d'un utilisateur. Cela permet aux utilisateurs d'accéder aux données de Studio Classic dans leurs environnements informatiques Studio.

  1. Créez un volume Amazon EFS cible. Vous allez transférer les données vers ce volume Amazon EFS et les monter sur l'espace utilisateur correspondant à l'aide d'un montage au niveau du préfixe.

    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. Ajoutez des variables pour le volume Amazon EFS source actuellement attaché au domaine et utilisé par tous les utilisateurs. Les informations Amazon Virtual Private Cloud du domaine sont requises pour garantir que l'Amazon EFS cible est créé dans le même VPC Amazon et le même sous-réseau, avec la même configuration de groupe de sécurité.

    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. Créez une cible de montage Amazon EFS dans le même VPC Amazon et le même sous-réseau que le volume Amazon EFS source, avec la même configuration de groupe de sécurité. Il faut quelques minutes pour que la cible de montage soit 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. Créez les emplacements source et destination Amazon EFS pour la AWS DataSync tâche.

    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. Autorisez le trafic entre les montages du système de fichiers réseau (NFS) source et cible. Lorsqu'un nouveau domaine est créé, l' SageMaker IA crée 2 groupes de sécurité.

    • Groupe de sécurité entrant NFS avec trafic entrant uniquement.

    • Groupe de sécurité sortant NFS avec trafic sortant uniquement.

    Les NFS source et cible sont placés dans les mêmes groupes de sécurité. Vous pouvez autoriser le trafic entre ces supports depuis le AWS Management Console ou AWS CLI.

    • Autoriser le trafic en provenance du AWS Management Console

      1. Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. https://console.aws.amazon.com/vpc/

      2. Choisissez Security Groups.

      3. Recherchez l'ID du domaine existant sur la page Groupes de sécurité.

        d-xxxxxxx

        Les résultats devraient renvoyer deux groupes de sécurité incluant l'ID de domaine dans le nom.

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

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

      4. Sélectionnez l'ID du groupe de sécurité entrant. Cela ouvre une nouvelle page contenant des informations sur le groupe de sécurité.

      5. Sélectionnez l'onglet Règles sortantes.

      6. Sélectionnez Modifier les règles sortantes.

      7. Mettez à jour les règles sortantes existantes ou ajoutez-en une nouvelle avec les valeurs suivantes :

        • Type : NFS

        • Protocole : TCP

        • Portée de ports : 2049

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

      8. Sélectionnez Enregistrer les règles.

      9. Sélectionnez l'onglet Règles de trafic entrant.

      10. Sélectionnez Modifier les règles de trafic entrant.

      11. Mettez à jour les règles entrantes existantes ou ajoutez une nouvelle règle sortante avec les valeurs suivantes :

        • Type : NFS

        • Protocole : TCP

        • Portée de ports : 2049

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

      12. Sélectionnez Enregistrer les règles.

    • Autoriser le trafic en provenance du AWS CLI

      1. Mettez à jour les règles entrantes et sortantes du groupe de sécurité avec les valeurs suivantes :

        • Protocole : TCP

        • Portée de ports : 2049

        • ID de groupe : ID de groupe de sécurité entrant ou ID de groupe de sécurité sortant

        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. Ajoutez les groupes de sécurité entrants et sortants aux cibles de montage Amazon EFS source et cible. Cela permet le trafic entre les deux montages 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
  6. Créez une AWS DataSync tâche. Cela renvoie un ARN de tâche qui peut être utilisé pour exécuter la tâche à la demande ou dans le cadre d'une cadence normale.

    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. Démarrez une AWS DataSync tâche pour copier automatiquement les données de la source Amazon EFS vers le montage Amazon EFS cible. Cela ne conserve pas les autorisations POSIX du fichier, qui permettent aux utilisateurs de lire à partir du montage Amazon EFS cible, mais pas d'y écrire.

    aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
  8. Montez le volume Amazon EFS cible sur le domaine au niveau de la racine.

    aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
  9. Remplacez chaque profil utilisateur par un FileSystemPath préfixe. Le préfixe inclut l'UID de l'utilisateur, créé par SageMaker l'IA. Cela garantit que les utilisateurs n'ont accès qu'à leurs données et empêche la pollinisation croisée. Lorsqu'un espace est créé dans le domaine et que le volume Amazon EFS cible est monté sur l'application, le préfixe de l'utilisateur remplace le préfixe de domaine. Par conséquent, l' SageMaker IA monte uniquement le /user-id répertoire sur l'application de l'utilisateur.

    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. Les utilisateurs peuvent ensuite sélectionner le système de fichiers Amazon EFS personnalisé lors du lancement d'une application. Pour plus d’informations, consultez JupyterLab guide de l'utilisateur ou Lancer une application d'éditeur de code dans Studio.

Dans cette approche, vous utilisez une AWS DataSync tâche Amazon EFS-to-Amazon S3 pour copier le contenu d'un volume Amazon EFS Studio Classic dans un compartiment Amazon S3 une seule fois ou à une cadence normale, puis vous créez une configuration de cycle de vie pour copier les données de l'utilisateur depuis Amazon S3 vers le volume Amazon EBS de son espace privé.

Note

Cette approche ne fonctionne que pour les domaines qui ont accès à Internet.

  1. Définissez l'ID du volume Amazon EFS source à partir du domaine contenant les données que vous êtes en train de migrer.

    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. Définissez le nom du compartiment Amazon S3 cible. Pour plus d'informations sur la création d'un compartiment Amazon S3, consultez Création d'un compartiment. Le bucket utilisé doit avoir une politique CORS telle que décrite dans(Facultatif) Mettez à jour votre politique CORS pour accéder aux compartiments Amazon S3. Les utilisateurs du domaine doivent également être autorisés à accéder au compartiment Amazon S3.

    Dans cet exemple, nous copions des fichiers dans un préfixe nomméstudio-new. Si vous utilisez un seul compartiment Amazon S3 pour migrer plusieurs domaines, utilisez le studio-new/<domain-id> préfixe pour restreindre les autorisations sur les fichiers à l'aide d'IAM.

    export BUCKET_NAME=s3-bucket-name export S3_DESTINATION_PATH=studio-new
  3. Créez une politique de confiance qui autorise AWS DataSync l'utilisateur à assumer le rôle d'exécution de votre compte.

    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. Créez un rôle IAM et associez la politique de confiance.

    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. Créez un groupe de sécurité pour donner accès à l'emplacement 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"
  6. Créez un emplacement Amazon EFS source pour la AWS DataSync tâche.

    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. Créez un emplacement Amazon S3 cible pour la AWS DataSync tâche.

    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. Créez une AWS DataSync tâche.

    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. Lancez la AWS DataSync tâche. Cette tâche copie automatiquement les données du volume Amazon EFS source vers le compartiment Amazon S3 cible. Attendez que la tâche soit terminée.

    aws datasync start-task-execution --task-arn $TASK_ARN
  10. Vérifiez le statut de la AWS DataSync tâche pour vérifier qu'elle est terminée. Transmettez l'ARN renvoyé à l'étape précédente.

    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. Une fois la AWS DataSync tâche terminée, nettoyez les ressources créées précédemment.

    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. À partir de votre ordinateur local, créez un fichier nommé on-start.sh avec le contenu suivant. Ce script copie le répertoire de base Amazon EFS de l'utilisateur dans Amazon S3 vers le volume Amazon EBS de l'utilisateur dans Studio et crée un préfixe pour chaque profil utilisateur.

    #!/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. Convertissez votre script au format base64. Cette exigence évite les erreurs dues à l'encodage des espacements et des sauts de ligne. Le type de script peut être JupyterLab soitCodeEditor.

    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. Vérifiez les points suivants avant d'utiliser le script :

    • Le volume Amazon EBS est suffisamment grand pour stocker les objets que vous exportez.

    • Vous ne migrez pas de fichiers et de dossiers cachés, comme .bashrc .condarc vous n'en avez pas l'intention.

    • Le rôle d'exécution AWS Identity and Access Management (IAM) associé aux profils utilisateur de Studio possède des politiques configurées pour accéder uniquement au répertoire de base correspondant dans Amazon S3.

  15. Créez une configuration du cycle de vie à l'aide de votre 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. Associez le LCC à votre domaine.

    aws sagemaker update-domain \ --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings ' {"JupyterLabAppSettings": {"LifecycleConfigArns": [ "lifecycle-config-arn" ] } }'
  17. Les utilisateurs peuvent ensuite sélectionner le script LCC lors du lancement d'une application. Pour plus d’informations, consultez JupyterLab guide de l'utilisateur ou Lancer une application d'éditeur de code dans Studio. Cela synchronise automatiquement les fichiers d'Amazon S3 avec le stockage Amazon EBS pour l'espace de l'utilisateur.

Migrer les flux de données depuis Data Wrangler

Si vous avez déjà utilisé Amazon SageMaker Data Wrangler dans Amazon SageMaker Studio Classic pour des tâches de préparation des données, vous pouvez migrer vers le nouvel Amazon SageMaker Studio et accéder à la dernière version de Data Wrangler dans Amazon Canvas. SageMaker Data Wrangler in SageMaker Canvas vous offre une expérience utilisateur améliorée et un accès aux dernières fonctionnalités, telles qu'une interface en langage naturel et des performances plus rapides.

Vous pouvez vous connecter à SageMaker Canvas à tout moment pour commencer à utiliser la nouvelle expérience Data Wrangler. Pour de plus amples informations, veuillez consulter Commencer à utiliser Amazon SageMaker Canvas.

Si vous avez enregistré des fichiers de flux de données dans Studio Classic sur lesquels vous travailliez auparavant, vous pouvez les intégrer à Studio, puis les importer dans Canvas. Les options de migration disponibles sont les suivantes :

  • Migration en un clic : lorsque vous vous connectez à Canvas, vous pouvez utiliser une option d'importation unique qui migre tous vos fichiers de flux en votre nom.

  • Migration manuelle : vous pouvez importer manuellement vos fichiers de flux dans Canvas. Depuis Studio Classic, exportez les fichiers vers Amazon S3 ou téléchargez-les sur votre machine locale. Ensuite, vous vous connectez à l'application SageMaker Canvas, vous importez les fichiers de flux et vous poursuivez vos tâches de préparation des données.

Le guide suivant décrit les conditions préalables à la migration et explique comment migrer vos fichiers de flux de données à l'aide de l'option manuelle ou en un clic.

Prérequis

Passez en revue les conditions préalables suivantes avant de commencer à migrer vos fichiers de flux.

Étape 1. Migrer le domaine et accorder des autorisations

Avant de migrer des fichiers de flux de données, vous devez suivre les étapes spécifiques du Migration depuis Amazon SageMaker Studio Classic guide pour vous assurer que le rôle d'exécution AWS IAM de votre profil utilisateur dispose des autorisations requises. Migrer l'interface utilisateur de Studio Classic vers StudioAvant de continuer, suivez les prérequis, qui décrivent comment accorder les autorisations requises, configurer Studio comme nouvelle expérience et migrer votre domaine existant.

Plus précisément, vous devez disposer des autorisations nécessaires pour créer une application SageMaker Canvas et utiliser les fonctionnalités de préparation des données SageMaker Canvas. Pour obtenir ces autorisations, vous pouvez soit :

Assurez-vous d'utiliser le même profil utilisateur pour Studio et SageMaker Canvas.

Après avoir rempli les conditions requises décrites dans le guide de migration, vous devriez disposer d'un nouveau domaine avec les autorisations requises pour accéder à SageMaker Canvas via Studio.

Étape 2. (Facultatif) Préparez un emplacement Amazon S3

Si vous effectuez une migration manuelle et que vous prévoyez d'utiliser Amazon S3 pour transférer vos fichiers de flux au lieu d'utiliser l'option de téléchargement local, vous devez disposer d'un compartiment Amazon S3 dans votre compte que vous souhaitez utiliser pour stocker les fichiers de flux.

Méthode de migration en un clic

SageMaker Canvas propose une option d'importation unique pour migrer vos flux de données de Data Wrangler dans Studio Classic vers Data Wrangler dans Canvas. SageMaker Tant que vos applications Studio Classic et Canvas partagent le même volume de stockage Amazon EFS, vous pouvez effectuer la migration en un clic depuis Canvas. Ce processus rationalisé élimine le besoin d'étapes manuelles d'exportation et d'importation, et vous pouvez importer tous vos flux en une seule fois.

Pour migrer tous vos fichiers de flux, procédez comme suit :

  1. Ouvrez votre dernière version de Studio.

  2. Dans Studio, dans le volet de navigation de gauche, choisissez le menu déroulant Données.

  3. Dans les options de navigation, choisissez Data Wrangler.

  4. Sur la page Data Wrangler, choisissez Exécuter dans Canvas. Si vous avez correctement configuré les autorisations, cela crée une application Canvas pour vous. L'application Canvas peut prendre quelques minutes avant d'être prête.

  5. Lorsque Canvas est prêt, choisissez Ouvrir dans Canvas.

  6. Canvas s'ouvre sur la page Data Wrangler, et une bannière apparaît en haut de la page indiquant « Importez vos flux de données depuis Data Wrangler dans Studio Classic vers Canvas ». Il s'agit d'une importation unique. En savoir plus. Dans la bannière, choisissez Tout importer.

    Avertissement

    Si vous fermez la bannière de notification, vous ne pourrez plus la rouvrir ni utiliser la méthode de migration en un clic.

Une notification contextuelle apparaît, indiquant que Canvas importe vos fichiers de flux depuis Studio Classic. Si l'importation est entièrement réussie, vous recevez une autre notification indiquant qu'un X certain nombre de fichiers de flux ont été importés, et vous pouvez voir vos fichiers de flux sur la page Data Wrangler de l'application Canvas. Tous les fichiers de flux importés portant le même nom que les flux de données existants dans votre application Canvas sont renommés avec un suffixe. Vous pouvez ouvrir un flux de données pour vérifier qu'il s'affiche comme prévu.

Si l'importation de l'un de vos fichiers de flux échoue, vous recevez une notification indiquant que l'importation a été partiellement réussie ou qu'elle a échoué. Choisissez Afficher les erreurs dans le message de notification pour consulter les messages d'erreur individuels et obtenir des conseils sur la manière de reformater les fichiers de flux mal formatés.

Après avoir importé vos fichiers de flux, vous devriez pouvoir continuer à utiliser Data Wrangler pour préparer les données dans SageMaker Canvas.

Méthode de migration manuelle

Les sections suivantes décrivent comment importer manuellement vos fichiers de flux dans Canvas au cas où la méthode de migration en un clic ne fonctionnerait pas.

Exporter les fichiers de flux depuis Studio Classic

Note

Si vous avez déjà migré vos données Studio Classic vers Amazon S3 en suivant les instructions fournies(Facultatif) Migrer les données de Studio Classic vers Studio, vous pouvez ignorer cette étape et passer directement à la Importez les fichiers de flux dans Canvas section dans laquelle vous importez vos fichiers de flux depuis l'emplacement Amazon S3 où vos données Studio Classic sont stockées.

Vous pouvez exporter vos fichiers de flux en les enregistrant sur Amazon S3 ou en les téléchargeant sur votre machine locale. Lorsque vous importez vos fichiers de flux dans SageMaker Canvas à l'étape suivante, si vous choisissez l'option de téléchargement local, vous ne pouvez télécharger que 20 fichiers de flux à la fois. Si vous avez un grand nombre de fichiers de flux à importer, nous vous recommandons d'utiliser Amazon S3 à la place.

Suivez les instructions indiquées dans l'une ou l'autre de ces instructions Méthode 1 : utiliser Amazon S3 pour transférer des fichiers de flux ou Méthode 2 : utiliser votre machine locale pour transférer des fichiers de flux pour continuer.

Méthode 1 : utiliser Amazon S3 pour transférer des fichiers de flux

Avec cette méthode, vous utilisez Amazon S3 comme intermédiaire entre Data Wrangler dans Studio Classic et Data Wrangler dans SageMaker Canvas (accessible via la dernière version de Studio). Vous exportez les fichiers de flux de Studio Classic vers Amazon S3, puis à l'étape suivante, vous accédez à Canvas via Studio et vous importez les fichiers de flux depuis Amazon S3.

Assurez-vous d'avoir préparé un compartiment Amazon S3 comme emplacement de stockage pour les fichiers de flux.

Suivez la procédure suivante pour exporter vos fichiers de flux de Studio Classic vers Amazon S3 :

  1. Ouvrez Studio Classic.

  2. Ouvrez un nouveau terminal en procédant comme suit :

    1. Dans la barre de navigation supérieure, choisissez Fichier.

    2. Dans le menu contextuel, survolez Nouveau, puis sélectionnez Terminal.

  3. Par défaut, le terminal doit s'ouvrir dans votre répertoire personnel. Accédez au dossier contenant tous les fichiers de flux que vous souhaitez migrer.

  4. Utilisez la commande suivante pour synchroniser tous les fichiers de flux avec l'emplacement Amazon S3 spécifié. Remplacez {bucket-name} et {folder} par le chemin d'accès à l'emplacement Amazon S3 de votre choix. Pour plus d'informations sur la commande et les paramètres, consultez la commande de synchronisation dans le manuel de référence des AWS AWS CLI commandes.

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

    Si vous utilisez le vôtre AWS KMS key, utilisez plutôt la commande suivante pour synchroniser les fichiers et spécifiez votre ID de clé KMS. Assurez-vous que le rôle d'exécution IAM de l'utilisateur (qui doit être le même que celui utilisé à l'étape 1) Migrer le domaine et accorder les autorisations (conformément aux conditions préalables précédentes) a été autorisé à utiliser la clé KMS.

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

Vos fichiers de flux doivent maintenant être exportés. Vous pouvez vérifier votre compartiment Amazon S3 pour vous assurer que les fichiers de flux sont correctement synchronisés.

Pour importer ces fichiers dans la dernière version de Data Wrangler, suivez les étapes décrites dans. Importez les fichiers de flux dans Canvas

Méthode 2 : utiliser votre machine locale pour transférer des fichiers de flux

Cette méthode vous permet de télécharger les fichiers de flux depuis Studio Classic sur votre machine locale. Vous pouvez télécharger les fichiers directement ou les compresser sous forme d'archive zip. Ensuite, vous décompressez le fichier zip localement (le cas échéant), vous vous connectez à Canvas et vous importez les fichiers de flux en les téléchargeant depuis votre machine locale.

Pour télécharger vos fichiers de flux depuis Studio Classic, procédez comme suit :

  1. Ouvrez Studio Classic.

  2. (Facultatif) Si vous souhaitez compresser plusieurs fichiers de flux dans une archive zip et les télécharger tous en une seule fois, procédez comme suit :

    1. Dans la barre de navigation supérieure de Studio Classic, sélectionnez Fichier.

    2. Dans le menu contextuel, survolez Nouveau, puis sélectionnez Terminal.

    3. Par défaut, le terminal s'ouvre dans votre répertoire personnel. Accédez au dossier contenant tous les fichiers de flux que vous souhaitez migrer.

    4. Utilisez la commande suivante pour compresser les fichiers de flux dans le répertoire actuel sous forme de fichier zip. La commande exclut tous les fichiers cachés :

      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
  3. Téléchargez l'archive zip ou les fichiers de flux individuels sur votre machine locale en procédant comme suit :

    1. Dans le volet de navigation de gauche de Studio Classic, sélectionnez Navigateur de fichiers.

    2. Recherchez le fichier que vous souhaitez télécharger dans le navigateur de fichiers.

    3. Cliquez avec le bouton droit sur le fichier, puis dans le menu contextuel, sélectionnez Télécharger.

Le fichier doit être téléchargé sur votre ordinateur local. Si vous les avez compressés sous forme d'archive zip, extrayez-les localement. Une fois les fichiers extraits, pour les importer dans la dernière version de Data Wrangler, suivez les étapes décrites dans. Importez les fichiers de flux dans Canvas

Importez les fichiers de flux dans Canvas

Après avoir exporté vos fichiers de flux, accédez à Canvas via Studio et importez les fichiers.

Pour importer des fichiers de flux dans Canvas, procédez comme suit :

  1. Ouvrez votre dernière version de Studio.

  2. Dans Studio, dans le volet de navigation de gauche, choisissez le menu déroulant Données.

  3. Dans les options de navigation, choisissez Data Wrangler.

  4. Sur la page Data Wrangler, choisissez Exécuter dans Canvas. Si vous avez correctement configuré les autorisations, cela crée une application Canvas pour vous. L'application Canvas peut prendre quelques minutes avant d'être prête.

  5. Lorsque Canvas est prêt, choisissez Ouvrir dans Canvas.

  6. Canvas s'ouvre sur la page Data Wrangler. Dans le volet supérieur, choisissez Importer des flux de données.

  7. Pour Source de données, choisissez Amazon S3 ou Téléchargement local.

  8. Sélectionnez vos fichiers de flux dans votre compartiment Amazon S3 ou téléchargez-les depuis votre machine locale.

    Note

    Pour le téléchargement local, vous pouvez télécharger un maximum de 20 fichiers de flux à la fois. Pour les importations plus importantes, utilisez Amazon S3. Si vous sélectionnez un dossier à importer, tous les fichiers de flux des sous-dossiers sont également importés.

  9. Choisissez Import data (Importer les données).

Si l'importation est réussie, vous recevez une notification indiquant qu'un X certain nombre de fichiers de flux ont été importés avec succès.

Si l'importation de vos fichiers de flux échoue, vous recevez une notification dans l'application SageMaker Canvas. Choisissez Afficher les erreurs dans le message de notification pour consulter les messages d'erreur individuels et obtenir des conseils sur la manière de reformater les fichiers de flux mal formatés.

Une fois l'importation de vos fichiers de flux terminée, rendez-vous sur la page Data Wrangler de l'application SageMaker Canvas pour afficher vos flux de données. Vous pouvez essayer d'ouvrir un flux de données pour vérifier qu'il s'affiche comme prévu.