(Opsional) Migrasikan data dari Studio Classic ke Studio - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

(Opsional) Migrasikan data dari Studio Classic ke Studio

Studio Classic dan Studio menggunakan dua jenis volume penyimpanan yang berbeda. Studio Classic menggunakan satu volume Amazon Elastic File System (AmazonEFS) untuk menyimpan data di semua pengguna dan spasi bersama di domain. Di Studio, setiap ruang mendapatkan volume Amazon Elastic Block Store (AmazonEBS) sendiri. Saat Anda memperbarui pengalaman default domain yang ada, SageMaker secara otomatis memasang folder dalam EFS volume Amazon untuk setiap pengguna dalam domain. Akibatnya, pengguna dapat mengakses file dari Studio Classic di aplikasi Studio mereka. Untuk informasi selengkapnya, lihat EFSPemasangan otomatis Amazon di Studio.

Anda juga dapat memilih keluar dari EFS pemasangan otomatis Amazon dan memigrasikan data secara manual untuk memberi pengguna akses ke file dari aplikasi Studio Classic di Studio. Untuk mencapai ini, Anda harus mentransfer file dari direktori home pengguna ke EBS volume Amazon yang terkait dengan spasi tersebut. Bagian berikut memberikan informasi tentang alur kerja ini. Untuk informasi selengkapnya tentang memilih keluar dari EFS pemasangan otomatis Amazon, lihat. Menyisih dari pemasangan EFS otomatis Amazon

Migrasi semua data Anda secara manual dari Studio Classic

Bagian berikut menjelaskan cara memigrasikan semua data dari volume penyimpanan Studio Classic ke pengalaman Studio yang baru.

Saat memigrasikan data, kode, dan artefak pengguna secara manual dari Studio Classic ke Studio, kami merekomendasikan salah satu pendekatan berikut:

  1. Menggunakan EFS volume Amazon khusus

  2. Menggunakan Amazon Simple Storage Service (Amazon S3)

Jika Anda menggunakan Amazon SageMaker Data Wrangler di Studio Classic dan ingin memigrasikan file aliran data Anda, pilih salah satu opsi berikut untuk migrasi:

  • Jika Anda ingin memigrasikan semua data dari volume penyimpanan Studio Classic, termasuk file aliran data, buka Migrasi semua data Anda secara manual dari Studio Classic dan lengkapi bagian Gunakan Amazon S3 untuk memigrasikan data. Kemudian, lewati ke Impor file aliran ke Canvas bagian.

  • Jika Anda hanya ingin memigrasikan file aliran data dan tidak ada data lain dari volume penyimpanan Studio Classic, lewati ke Migrasi aliran data dari Data Wrangler bagian tersebut.

Prasyarat

Sebelum menjalankan langkah-langkah ini, selesaikan prasyarat di. Prasyarat lengkap untuk memigrasikan pengalaman Studio Anda juga harus menyelesaikan langkah-langkahnyaMigrasi UI dari Studio Classic ke Studio.

Memilih pendekatan

Pertimbangkan hal berikut saat memilih pendekatan untuk memigrasikan data Studio Classic Anda.

Pro dan kontra menggunakan EFS volume Amazon khusus

Dalam pendekatan ini, Anda menggunakan EFS-to-Amazon EFS AWS DataSync tugas Amazon (satu kali atau irama) untuk menyalin data, lalu memasang EFS volume Amazon target ke spasi pengguna. Ini memberi pengguna akses ke data dari Studio Classic di lingkungan komputasi Studio mereka.

Kelebihan:

  • Hanya data direktori home pengguna yang terlihat di ruang pengguna. Tidak ada data penyerbukan silang.

  • Menyinkronkan dari sumber EFS volume Amazon ke EFS volume Amazon target lebih aman daripada langsung memasang sumber EFS volume Amazon yang dikelola oleh SageMaker ke dalam spasi. Ini menghindari potensi untuk memengaruhi file pengguna direktori home.

  • Pengguna memiliki fleksibilitas untuk terus bekerja di aplikasi Studio Classic dan Studio, sementara data mereka tersedia di kedua aplikasi jika AWS DataSync diatur pada irama reguler.

  • Tidak perlu push and pull berulang dengan Amazon S3.

Kontra:

  • Tidak ada akses tulis ke EFS volume Amazon target yang dipasang ke ruang pengguna. Untuk mendapatkan akses tulis ke EFS volume Amazon target, pelanggan harus memasang EFS volume Amazon target ke instans Amazon Elastic Compute Cloud dan memberikan izin yang sesuai bagi pengguna untuk menulis ke awalan AmazonEFS.

  • Memerlukan modifikasi pada grup keamanan yang dikelola oleh SageMaker untuk memungkinkan sistem file jaringan (NFS) aliran masuk dan keluar.

  • Harganya lebih mahal daripada menggunakan Amazon S3.

  • Jika memigrasikan aliran data dari Data Wrangler di Studio Classic, Anda harus mengikuti langkah-langkah untuk mengekspor file aliran secara manual.

Pro dan kontra menggunakan Amazon S3

Dalam pendekatan ini, Anda menggunakan AWS DataSync tugas Amazon EFS-to-Amazon S3 (satu kali atau irama) untuk menyalin data, lalu membuat konfigurasi siklus hidup untuk menyalin data pengguna dari Amazon S3 ke volume Amazon ruang pribadinya. EBS

Kelebihan:

  • Jika LCC dilampirkan ke domain, pengguna dapat memilih untuk menggunakan LCC untuk menyalin data ke ruang mereka atau untuk menjalankan ruang tanpa LCC skrip. Ini memberi pengguna pilihan untuk menyalin file mereka hanya ke ruang yang mereka butuhkan.

  • Jika AWS DataSync tugas diatur berdasarkan irama, pengguna dapat memulai ulang aplikasi Studio mereka untuk mendapatkan file terbaru.

  • Karena data disalin ke AmazonEBS, pengguna memiliki izin menulis pada file.

  • Penyimpanan Amazon S3 lebih murah daripada Amazon. EFS

  • Jika memigrasikan aliran data dari Data Wrangler di Studio Classic, Anda dapat melewati langkah ekspor manual dan langsung mengimpor aliran data ke SageMaker Canvas dari Amazon S3.

Kontra:

  • Jika administrator perlu mencegah penyerbukan silang, mereka harus membuat AWS Identity and Access Management kebijakan di tingkat pengguna untuk memastikan pengguna hanya dapat mengakses awalan Amazon S3 yang berisi file mereka.

Dalam pendekatan ini, Anda menggunakan Amazon EFS-to-Amazon EFS AWS DataSync untuk menyalin konten volume Amazon Studio Classic ke EFS EFS volume Amazon target sekali atau dalam irama reguler, lalu pasang EFS volume Amazon target ke spasi pengguna. Ini memberi pengguna akses ke data dari Studio Classic di lingkungan komputasi Studio mereka.

  1. Buat EFS volume target Amazon. Anda akan mentransfer data ke EFS volume Amazon ini dan memasangnya ke ruang pengguna yang sesuai menggunakan pemasangan tingkat awalan.

    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. Tambahkan variabel untuk EFS volume sumber Amazon yang saat ini dilampirkan ke domain dan digunakan oleh semua pengguna. Informasi Amazon Virtual Private Cloud domain diperlukan untuk memastikan target Amazon EFS dibuat di Amazon VPC dan subnet yang sama, dengan konfigurasi grup keamanan yang sama.

    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. Buat target EFS pemasangan Amazon di Amazon VPC dan subnet yang sama dengan EFS volume Amazon sumber, dengan konfigurasi grup keamanan yang sama. Target pemasangan membutuhkan waktu beberapa menit untuk tersedia.

    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. Buat lokasi EFS sumber dan tujuan Amazon untuk AWS DataSync tugas tersebut.

    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. Izinkan lalu lintas antara sistem file jaringan sumber dan target (NFS) mount. Saat domain baru dibuat, SageMaker buat 2 grup keamanan.

    • NFSgrup keamanan masuk dengan hanya lalu lintas masuk.

    • NFSgrup keamanan keluar dengan hanya lalu lintas keluar.

    Sumber dan target NFS ditempatkan di dalam kelompok keamanan yang sama. Anda dapat mengizinkan lalu lintas antara tunggangan ini dari AWS Management Console atau AWS CLI.

    • Izinkan lalu lintas dari AWS Management Console

      1. Masuk ke AWS Management Console dan buka VPC konsol Amazon di https://console.aws.amazon.com/vpc/.

      2. Pilih Grup Keamanan.

      3. Cari ID domain yang ada di halaman Grup Keamanan.

        d-xxxxxxx

        Hasilnya harus mengembalikan dua grup keamanan yang menyertakan ID domain dalam nama.

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

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

      4. Pilih ID grup keamanan masuk. Ini membuka halaman baru dengan detail tentang grup keamanan.

      5. Pilih tab Aturan Keluar.

      6. Pilih Edit aturan keluar.

      7. Perbarui aturan keluar yang ada atau tambahkan aturan keluar baru dengan nilai berikut:

        • Jenis: NFS

        • Protokol: TCP

        • Rentang pelabuhan: 2049

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

      8. Pilih Simpan aturan.

      9. Pilih tab Aturan Masuk.

      10. Pilih Edit aturan masuk.

      11. Perbarui aturan masuk yang ada atau tambahkan aturan keluar baru dengan nilai berikut:

        • Jenis: NFS

        • Protokol: TCP

        • Rentang pelabuhan: 2049

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

      12. Pilih Simpan aturan.

    • Izinkan lalu lintas dari AWS CLI

      1. Perbarui aturan masuk dan keluar grup keamanan dengan nilai berikut:

        • Protokol: TCP

        • Rentang pelabuhan: 2049

        • ID Grup: ID grup keamanan masuk atau ID grup keamanan keluar

        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. Tambahkan grup keamanan masuk dan keluar ke sumber dan targetkan target EFS pemasangan Amazon. Ini memungkinkan lalu lintas antara 2 EFS dudukan 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. Buat AWS DataSync tugas. Ini mengembalikan tugas ARN yang dapat digunakan untuk menjalankan tugas sesuai permintaan atau sebagai bagian dari irama reguler.

    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. Mulai AWS DataSync tugas untuk secara otomatis menyalin data dari sumber Amazon EFS ke EFS mount Amazon target. Ini tidak mempertahankan POSIX izin file, yang memungkinkan pengguna membaca dari EFS mount Amazon target, tetapi tidak menulis ke sana.

    aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
  8. Pasang EFS volume Amazon target pada domain di tingkat root.

    aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
  9. Timpa setiap profil pengguna dengan FileSystemPath awalan. Awalan termasuk penggunaUID, yang dibuat oleh SageMaker. Ini memastikan pengguna hanya memiliki akses ke data mereka dan mencegah penyerbukan silang. Saat spasi dibuat di domain dan EFS volume Amazon target dipasang ke aplikasi, awalan pengguna menimpa awalan domain. Akibatnya, SageMaker hanya memasang /user-id direktori pada aplikasi pengguna.

    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. Pengguna kemudian dapat memilih sistem EFS file Amazon khusus saat meluncurkan aplikasi. Untuk informasi selengkapnya, lihat JupyterLab panduan pengguna atau Luncurkan aplikasi Editor Kode di Studio.

Dalam pendekatan ini, Anda menggunakan AWS DataSync tugas Amazon EFS-to-Amazon S3 untuk menyalin konten EFS volume Amazon Studio Classic ke bucket Amazon S3 sekali atau dalam irama reguler, lalu buat konfigurasi siklus hidup untuk menyalin data pengguna dari Amazon S3 ke volume Amazon ruang pribadinya. EBS

catatan

Pendekatan ini hanya berfungsi untuk domain yang memiliki akses internet.

  1. Tetapkan ID EFS volume Amazon sumber dari domain yang berisi data yang Anda migrasi.

    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. Tetapkan nama bucket Amazon S3 target. Untuk informasi tentang membuat bucket Amazon S3, lihat Membuat bucket. Bucket yang digunakan harus memiliki CORS kebijakan seperti yang dijelaskan dalam(Opsional) Perbarui CORS kebijakan Anda untuk mengakses bucket Amazon S3. Pengguna di domain juga harus memiliki izin untuk mengakses bucket Amazon S3.

    Dalam contoh ini, kita menyalin file ke awalan bernama. studio-new Jika Anda menggunakan satu bucket Amazon S3 untuk memigrasikan beberapa domain, gunakan studio-new/<domain-id> awalan untuk membatasi izin ke file yang digunakan. IAM

    export BUCKET_NAME=s3-bucket-name export S3_DESTINATION_PATH=studio-new
  3. Buat kebijakan kepercayaan yang memberikan AWS DataSync izin untuk mengambil peran eksekusi akun Anda.

    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. Buat IAM peran dan lampirkan kebijakan kepercayaan.

    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. Buat grup keamanan untuk memberikan akses ke EFS lokasi 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. Buat EFS lokasi sumber Amazon untuk AWS DataSync tugas tersebut.

    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. Buat lokasi target Amazon S3 untuk tugas tersebut. AWS DataSync

    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. Buat AWS DataSync tugas.

    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. Mulai AWS DataSync tugas. Tugas ini secara otomatis menyalin data dari sumber EFS volume Amazon ke bucket Amazon S3 target. Tunggu tugas selesai.

    aws datasync start-task-execution --task-arn $TASK_ARN
  10. Periksa status AWS DataSync tugas untuk memverifikasi bahwa itu selesai. Lewati yang ARN dikembalikan pada langkah sebelumnya.

    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. Setelah AWS DataSync tugas selesai, bersihkan sumber daya yang dibuat sebelumnya.

    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. Dari mesin lokal Anda, buat file bernama on-start.sh dengan konten berikut. Skrip ini menyalin direktori EFS home Amazon pengguna di Amazon S3 ke EBS volume Amazon pengguna di Studio dan membuat awalan untuk setiap profil pengguna.

    #!/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. Ubah skrip Anda menjadi format base64. Persyaratan ini mencegah kesalahan yang terjadi dari spasi dan pengkodean jeda baris. Jenis skrip dapat berupa JupyterLab atauCodeEditor.

    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. Verifikasi hal-hal berikut sebelum Anda menggunakan skrip:

    • EBSVolume Amazon cukup besar untuk menyimpan objek yang Anda ekspor.

    • Anda tidak memigrasi file dan folder tersembunyi, seperti .bashrc dan .condarc jika Anda tidak bermaksud melakukannya.

    • Peran eksekusi AWS Identity and Access Management (IAM) yang terkait dengan profil pengguna Studio memiliki kebijakan yang dikonfigurasi untuk mengakses hanya direktori home masing-masing di Amazon S3.

  15. Buat konfigurasi siklus hidup menggunakan skrip Anda.

    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. Lampirkan LCC ke domain Anda.

    aws sagemaker update-domain \ --domain-id $SOURCE_DOMAIN_ID \ --default-user-settings ' {"JupyterLabAppSettings": {"LifecycleConfigArns": [ "lifecycle-config-arn" ] } }'
  17. Pengguna kemudian dapat memilih LCC skrip saat meluncurkan aplikasi. Untuk informasi selengkapnya, lihat JupyterLab panduan pengguna atau Luncurkan aplikasi Editor Kode di Studio. Ini secara otomatis menyinkronkan file dari Amazon S3 ke penyimpanan EBS Amazon untuk ruang pengguna.

Migrasi aliran data dari Data Wrangler

Jika sebelumnya Anda telah menggunakan Amazon SageMaker Data Wrangler di Amazon SageMaker Studio Classic untuk tugas persiapan data, Anda dapat bermigrasi ke Amazon SageMaker Studio baru dan mengakses Data Wrangler versi terbaru di Amazon Canvas. SageMaker Data Wrangler di SageMaker Canvas memberi Anda pengalaman pengguna yang disempurnakan dan akses ke fitur-fitur terbaru, seperti antarmuka bahasa alami dan kinerja yang lebih cepat.

Anda dapat melakukan onboard ke SageMaker Canvas kapan saja untuk mulai menggunakan pengalaman Data Wrangler yang baru. Untuk informasi selengkapnya, lihat Memulai dengan menggunakan Amazon SageMaker Canvas.

Jika Anda memiliki file aliran data yang disimpan di Studio Classic yang sebelumnya Anda kerjakan, Anda dapat onboard ke Studio dan kemudian mengimpor file aliran ke Canvas. Anda memiliki opsi berikut untuk migrasi:

  • Migrasi sekali klik: Saat masuk ke Canvas, Anda dapat menggunakan opsi impor satu kali yang memigrasi semua file alur atas nama Anda.

  • Migrasi manual: Anda dapat mengimpor file flow secara manual ke Canvas. Dari Studio Classic, ekspor file ke Amazon S3 atau unduh ke mesin lokal Anda. Kemudian, Anda masuk ke aplikasi SageMaker Canvas, mengimpor file aliran, dan melanjutkan tugas persiapan data Anda.

Panduan berikut menjelaskan prasyarat untuk migrasi dan cara memigrasi file aliran data Anda menggunakan opsi sekali klik atau manual.

Prasyarat

Tinjau prasyarat berikut sebelum Anda mulai memigrasikan file alur.

Langkah 1. Migrasi domain dan berikan izin

Sebelum memigrasi file aliran data, Anda harus mengikuti langkah-langkah spesifik dari Migrasi dari Amazon SageMaker Studio Classic panduan ini untuk memastikan bahwa peran AWS IAM eksekusi profil pengguna Anda memiliki izin yang diperlukan. Ikuti Prasyarat dan Migrasi UI dari Studio Classic ke Studio sebelum melanjutkan, yang menjelaskan cara memberikan izin yang diperlukan, mengonfigurasi Studio sebagai pengalaman baru, dan memigrasikan domain yang sudah ada.

Secara khusus, Anda harus memiliki izin untuk membuat aplikasi SageMaker Canvas dan menggunakan fitur persiapan data SageMaker Canvas. Untuk mendapatkan izin ini, Anda dapat:

Pastikan untuk menggunakan profil pengguna yang sama untuk Studio dan SageMaker Canvas.

Setelah menyelesaikan prasyarat yang diuraikan dalam panduan migrasi, Anda harus memiliki domain baru dengan izin yang diperlukan untuk mengakses Canvas melalui Studio. SageMaker

Langkah 2. (Opsional) Siapkan lokasi Amazon S3

Jika Anda melakukan migrasi manual dan berencana menggunakan Amazon S3 untuk mentransfer file aliran alih-alih menggunakan opsi unduhan lokal, Anda harus memiliki bucket Amazon S3 di akun yang ingin Anda gunakan untuk menyimpan file alur.

Metode migrasi satu klik

SageMaker Canvas menawarkan opsi impor satu kali untuk memigrasikan aliran data Anda dari Data Wrangler di Studio Classic ke Data Wrangler di Canvas. SageMaker Selama aplikasi Studio Classic dan Canvas Anda berbagi volume EFS penyimpanan Amazon yang sama, Anda dapat bermigrasi dalam satu klik dari Canvas. Proses yang disederhanakan ini menghilangkan kebutuhan akan langkah ekspor dan impor manual, dan Anda dapat mengimpor semua alur sekaligus.

Gunakan prosedur berikut untuk memigrasi semua file flow Anda:

  1. Buka Studio versi terbaru Anda.

  2. Di Studio, di panel navigasi kiri, pilih menu tarik-turun Data.

  3. Dari opsi navigasi, pilih Data Wrangler.

  4. Pada halaman Data Wrangler, pilih Jalankan di Canvas. Jika Anda telah berhasil mengatur izin, ini membuat aplikasi Canvas untuk Anda. Aplikasi Canvas mungkin memakan waktu beberapa menit sebelum siap.

  5. Saat kanvas siap, pilih Buka di Kanvas.

  6. Canvas terbuka ke halaman Data Wrangler, dan spanduk di bagian atas halaman muncul yang mengatakan Impor aliran data Anda dari Data Wrangler di Studio Classic ke Canvas. Ini adalah impor satu kali. Pelajari selengkapnya. Di spanduk, pilih Impor Semua.

    Awas

    Jika Anda menutup notifikasi spanduk, Anda tidak akan dapat membukanya kembali atau menggunakan metode migrasi sekali klik lagi.

Notifikasi pop-up muncul, yang menunjukkan bahwa Canvas mengimpor file aliran Anda dari Studio Classic. Jika impor sepenuhnya berhasil, Anda menerima pemberitahuan lain bahwa X jumlah file aliran diimpor, dan Anda dapat melihat file aliran Anda di halaman Data Wrangler aplikasi Canvas. Setiap file aliran yang diimpor yang memiliki nama yang sama dengan aliran data yang ada di aplikasi Canvas Anda diganti namanya dengan postfix. Anda dapat membuka aliran data untuk memverifikasi bahwa itu terlihat seperti yang diharapkan.

Jika salah satu file flow Anda tidak berhasil diimpor, Anda menerima pemberitahuan bahwa impor berhasil sebagian atau gagal. Pilih Lihat kesalahan pada pesan notifikasi untuk memeriksa pesan kesalahan individual untuk panduan tentang cara memformat ulang file alur yang salah diformat.

Setelah mengimpor file flow Anda, Anda sekarang harus dapat terus menggunakan Data Wrangler untuk menyiapkan data di Canvas. SageMaker

Metode migrasi manual

Bagian berikut menjelaskan cara mengimpor file flow Anda secara manual ke Canvas jika metode migrasi satu klik tidak berfungsi.

Ekspor file aliran dari Studio Classic

catatan

Jika Anda telah memigrasikan data Studio Classic ke Amazon S3 dengan mengikuti petunjuknya(Opsional) Migrasikan data dari Studio Classic ke Studio, Anda dapat melewati langkah ini dan langsung menuju ke bagian di mana Anda mengimpor file alur dari lokasi Amazon S3 tempat data Studio Classic disimpan. Impor file aliran ke Canvas

Anda dapat mengekspor file flow Anda dengan menyimpannya ke Amazon S3 atau mengunduhnya ke mesin lokal Anda. Saat Anda mengimpor file aliran ke SageMaker Canvas pada langkah berikutnya, jika Anda memilih opsi unggah lokal, maka Anda hanya dapat mengunggah 20 file aliran sekaligus. Jika Anda memiliki sejumlah besar file aliran untuk diimpor, kami sarankan Anda menggunakan Amazon S3 sebagai gantinya.

Ikuti instruksi di salah satu Metode 1: Gunakan Amazon S3 untuk mentransfer file aliran atau Metode 2: Gunakan mesin lokal Anda untuk mentransfer file aliran untuk melanjutkan.

Metode 1: Gunakan Amazon S3 untuk mentransfer file aliran

Dengan metode ini, Anda menggunakan Amazon S3 sebagai perantara antara Data Wrangler di Studio Classic dan Data Wrangler di SageMaker Canvas (diakses melalui versi terbaru Studio). Anda mengekspor file aliran dari Studio Classic ke Amazon S3, dan kemudian pada langkah berikutnya, Anda mengakses Canvas melalui Studio dan mengimpor file aliran dari Amazon S3.

Pastikan Anda memiliki bucket Amazon S3 yang disiapkan sebagai lokasi penyimpanan untuk file flow.

Gunakan prosedur berikut untuk mengekspor file flow Anda dari Studio Classic ke Amazon S3:

  1. Buka Studio Klasik.

  2. Buka terminal baru dengan melakukan hal berikut:

    1. Di bilah navigasi atas, pilih File.

    2. Dalam menu konteks, arahkan kursor ke New, lalu pilih Terminal.

  3. Secara default, terminal harus terbuka di direktori home Anda. Arahkan ke folder yang berisi semua file aliran yang ingin Anda migrasikan.

  4. Gunakan perintah berikut untuk menyinkronkan semua file flow ke lokasi Amazon S3 yang ditentukan. Ganti {bucket-name} dan {folder} dengan jalur ke lokasi Amazon S3 yang Anda inginkan. Untuk informasi selengkapnya tentang perintah dan parameter, lihat perintah sinkronisasi di Referensi AWS AWS CLI Perintah.

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

    Jika Anda menggunakan milik Anda sendiri AWS KMS key, maka gunakan perintah berikut sebagai gantinya untuk menyinkronkan file, dan tentukan ID KMS kunci Anda. Pastikan bahwa peran IAM eksekusi pengguna (yang seharusnya menjadi peran yang sama yang digunakan pada Langkah 1. Migrasi domain dan berikan izin dari Prasyarat sebelumnya) telah diberikan akses untuk menggunakan kunci. KMS

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

File flow Anda sekarang harus diekspor. Anda dapat memeriksa bucket Amazon S3 Anda untuk memastikan bahwa file aliran berhasil disinkronkan.

Untuk mengimpor file-file ini di versi terbaru Data Wrangler, ikuti langkah-langkahnya. Impor file aliran ke Canvas

Metode 2: Gunakan mesin lokal Anda untuk mentransfer file aliran

Dengan metode ini, Anda mengunduh file aliran dari Studio Classic ke mesin lokal Anda. Anda dapat mengunduh file secara langsung, atau Anda dapat mengompresnya sebagai arsip zip. Kemudian, Anda membongkar file zip secara lokal (jika ada), masuk ke Canvas, dan mengimpor file aliran dengan mengunggahnya dari mesin lokal Anda.

Gunakan prosedur berikut untuk mengunduh file aliran Anda dari Studio Classic:

  1. Buka Studio Klasik.

  2. (Opsional) Jika Anda ingin mengompres beberapa file aliran ke dalam arsip zip dan mengunduh semuanya sekaligus, lakukan hal berikut:

    1. Di bilah navigasi atas Studio Classic, pilih File.

    2. Dalam menu konteks, arahkan kursor ke New, lalu pilih Terminal.

    3. Secara default, terminal terbuka di direktori home Anda. Arahkan ke folder yang berisi semua file aliran yang ingin Anda migrasikan.

    4. Gunakan perintah berikut untuk mengemas file aliran dalam direktori saat ini sebagai zip. Perintah tidak termasuk file tersembunyi:

      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
  3. Unduh arsip zip atau file aliran individual ke mesin lokal Anda dengan melakukan hal berikut:

    1. Di panel navigasi kiri Studio Classic, pilih File Browser.

    2. Temukan file yang ingin Anda unduh di browser file.

    3. Klik kanan file, dan di menu konteks, pilih Unduh.

File harus diunduh ke mesin lokal Anda. Jika Anda mengemasnya sebagai arsip zip, ekstrak file secara lokal. Setelah file diekstraksi, untuk mengimpor file-file ini di versi terbaru Data Wrangler, ikuti langkah-langkahnya. Impor file aliran ke Canvas

Impor file aliran ke Canvas

Setelah mengekspor file flow Anda, akses Canvas melalui Studio dan impor file.

Gunakan prosedur berikut untuk mengimpor file flow ke Canvas:

  1. Buka Studio versi terbaru Anda.

  2. Di Studio, di panel navigasi kiri, pilih menu tarik-turun Data.

  3. Dari opsi navigasi, pilih Data Wrangler.

  4. Pada halaman Data Wrangler, pilih Jalankan di Canvas. Jika Anda telah berhasil mengatur izin, ini membuat aplikasi Canvas untuk Anda. Aplikasi Canvas mungkin memakan waktu beberapa menit sebelum siap.

  5. Saat kanvas siap, pilih Buka di Kanvas.

  6. Kanvas terbuka ke halaman Data Wrangler. Di panel atas, pilih Impor aliran data.

  7. Untuk Sumber data, pilih Amazon S3 atau Unggahan lokal.

  8. Pilih file flow Anda dari bucket Amazon S3, atau unggah file dari mesin lokal Anda.

    catatan

    Untuk unggahan lokal, Anda dapat mengunggah maksimal 20 file aliran sekaligus. Untuk impor yang lebih besar, gunakan Amazon S3. Jika Anda memilih folder untuk diimpor, file aliran apa pun di sub-folder juga diimpor.

  9. Pilih Impor data.

Jika impor berhasil, Anda menerima pemberitahuan bahwa X jumlah file aliran berhasil diimpor.

Jika file flow Anda tidak berhasil diimpor, Anda menerima notifikasi di aplikasi SageMaker Canvas. Pilih Lihat kesalahan pada pesan notifikasi untuk memeriksa pesan kesalahan individual untuk panduan tentang cara memformat ulang file alur yang salah diformat.

Setelah file flow Anda selesai mengimpor, buka halaman Data Wrangler aplikasi SageMaker Canvas untuk melihat aliran data Anda. Anda dapat mencoba membuka aliran data untuk memverifikasi bahwa itu terlihat seperti yang diharapkan.