Mengimpor gambar mesin virtual ke perangkat Keluarga Salju - AWS Snowball Edge Panduan Pengembang

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

Mengimpor gambar mesin virtual ke perangkat Keluarga Salju

Anda dapat menggunakan AWS CLI dan layanan Impor/Ekspor VM untuk mengimpor gambar mesin virtual (VM) ke perangkat Keluarga Salju sebagai Gambar Mesin Amazon (AMI). Setelah mengimpor gambar VM, daftarkan gambar sebagai AMI dan luncurkan sebagai instans yang kompatibel dengan Amazon EC2.

Anda dapat menambahkan AMI dari Amazon EC2 ke perangkat saat membuat pekerjaan untuk memesan perangkat Keluarga Salju. Gunakan prosedur ini setelah Anda menerima perangkat Keluarga Salju. Untuk informasi selengkapnya, lihat Langkah 2: Pilih opsi komputasi dan penyimpanan Anda.

Anda juga dapat menggunakan AWS OpsHub untuk mengunggah file gambar VM. Untuk informasi selengkapnya, lihat Mengimpor gambar ke perangkat Anda sebagai AMI yang kompatibel dengan Amazon EC2 dalam panduan ini.

Langkah 1: Siapkan gambar VM dan unggah ke perangkat Keluarga Salju

Siapkan gambar VM dengan mengekspor gambar VM dari Amazon EC2 AMI atau instance dalam AWS Cloud menggunakan VM Import/Export atau dengan membuat image VM secara lokal menggunakan platform virtualisasi pilihan Anda.

Untuk mengekspor instans Amazon EC2 sebagai image VM menggunakan Impor/Ekspor VM, lihat Mengekspor instance sebagai VM menggunakan Impor/Ekspor VM di Panduan Pengguna Impor/Ekspor VM. Untuk mengekspor Amazon EC2 AMI sebagai gambar VM menggunakan Impor/Ekspor VM, lihat Mengekspor VM langsung dari Gambar Mesin Amazon (AMI) di Panduan Pengguna Impor/Ekspor VM.

Jika membuat gambar VM dari lingkungan lokal Anda, pastikan gambar dikonfigurasi untuk digunakan sebagai AMI di perangkat Keluarga Salju. Anda mungkin perlu mengonfigurasi item berikut, tergantung pada lingkungan Anda.

  • Konfigurasikan dan perbarui sistem operasi.

  • Tetapkan nama host.

  • Pastikan protokol waktu jaringan (NTP) dikonfigurasi.

  • Sertakan kunci publik SSH, jika perlu. Buat salinan lokal dari pasangan kunci. Untuk informasi selengkapnya, lihat Menggunakan SSH untuk Connect ke Instans Komputasi Anda di Snowball Edge.

  • Instal dan konfigurasikan perangkat lunak apa pun yang akan Anda gunakan pada perangkat Keluarga Salju.

catatan

Waspadai batasan berikut saat menyiapkan snapshot disk untuk perangkat Keluarga Salju.

  • Perangkat Snow Family saat ini hanya mendukung pengimporan snapshot yang ada dalam format gambar RAW.

  • Perangkat Snow Family saat ini hanya mendukung pengimporan snapshot dengan ukuran dari 1 GB hingga 1 TB.

Mengunggah gambar VM ke bucket Amazon S3 di perangkat Snow Family

Setelah menyiapkan gambar VM, unggah ke bucket S3 di perangkat atau cluster Snow Family. Anda dapat menggunakan adaptor S3 atau penyimpanan yang kompatibel dengan Amazon S3 di perangkat Snow Family untuk mengunggah snapshot.

Untuk mengunggah gambar mesin virtual menggunakan adaptor S3
  • Gunakan cp perintah untuk menyalin file gambar VM ke ember di perangkat.

    aws s3 cp image-path s3://S3-bucket-name --endpoint http://S3-object-API-endpoint:443 --profile profile-name

    Untuk informasi selengkapnya, lihat AWS CLI Perintah yang didukung dalam panduan ini.

Untuk mengunggah gambar VM menggunakan penyimpanan yang kompatibel dengan Amazon S3 di perangkat Snow Family
  • Gunakan put-object perintah untuk menyalin file snapshot ke ember di perangkat.

    aws s3api put-object --bucket bucket-name --key path-to-snapshot-file --body snapshot-file --profile your-profile --endpoint-url s3api-endpoint-ip

    Untuk informasi selengkapnya, lihat Bekerja dengan objek S3 pada perangkat Snowball Edge.

Langkah 2: Siapkan izin yang diperlukan

Agar impor berhasil, Anda harus menyiapkan izin untuk Impor/Ekspor VM di perangkat Keluarga Salju, Amazon EC2, dan pengguna.

catatan

Peran layanan dan kebijakan yang menyediakan izin ini terletak di perangkat Snow Family.

Izin diperlukan untuk Impor/Ekspor VM

Sebelum Anda dapat memulai proses impor, Anda harus membuat peran IAM dengan kebijakan kepercayaan yang memungkinkan VM Impor/Ekspor pada perangkat Keluarga Salju untuk mengambil peran tersebut. Izin tambahan diberikan ke peran untuk memungkinkan Impor/Ekspor VM pada perangkat mengakses gambar yang disimpan dalam ember S3 pada perangkat.

Buat file json kebijakan kepercayaan

Berikut ini adalah contoh kebijakan kepercayaan yang diperlukan untuk dilampirkan pada peran sehingga VM Import/Export dapat mengakses snapshot yang perlu diimpor dari bucket S3.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Buat peran dengan file json kebijakan kepercayaan

Nama peran dapat berupa vmimport. Anda dapat mengubahnya dengan menggunakan opsi --role-name dalam perintah:

aws iam create-role --role-name role-name --assume-role-policy-document file:///trust-policy-json-path --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Berikut ini adalah output contoh dari perintah create-role.

{ "Role":{ "AssumeRolePolicyDocument":{ "Version":"2012-10-17", "Statement":[ { "Action":"sts:AssumeRole", "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" } } ] }, "MaxSessionDuration":3600, "RoleId":"AROACEMGEZDGNBVGY3TQOJQGEZAAAABQBB6NSGNAAAABPSVLTREPY3FPAFOLKJ3", "CreateDate":"2022-04-19T22:17:19.823Z", "RoleName":"vmimport", "Path":"/", "Arn":"arn:aws:iam::123456789012:role/vmimport" } }

Buat kebijakan untuk peran

Contoh kebijakan berikut memiliki izin minimum yang diperlukan untuk mengakses Amazon S3. Ubah nama bucket Amazon S3 menjadi nama yang memiliki gambar Anda. Untuk perangkat Snowball Edge mandiri, ubah snow-id ke ID pekerjaan Anda. Untuk sekelompok perangkat, ubah snow-id ke ID cluster. Anda juga dapat menggunakan awalan untuk lebih mempersempit lokasi tempat VM Import/Export dapat mengimpor snapshot. Buat file json kebijakan seperti ini.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:GetMetadata" ], "Resource":[ "arn:aws:s3:snow:account-id:snow/snow-id/bucket/import-snapshot-bucket-name", "arn:aws:s3:snow:account-id:snow/snow-id/bucket/import-snapshot-bucket-name/*" ] } ] }

Buat kebijakan dengan file kebijakan:

aws iam create-policy --policy-name policy-name --policy-document file:///policy-json-file-path --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Berikut ini adalah contoh output dari perintah create-policy.

{ "Policy":{ "PolicyName":"vmimport-resource-policy", "PolicyId":"ANPACEMGEZDGNBVGY3TQOJQGEZAAAABOOEE3IIHAAAABWZJPI2VW4UUTFEDBC2R", "Arn":"arn:aws:iam::123456789012:policy/vmimport-resource-policy", "Path":"/", "DefaultVersionId":"v1", "AttachmentCount":0, "IsAttachable":true, "CreateDate":"2020-07-25T23:27:35.690000+00:00", "UpdateDate":"2020-07-25T23:27:35.690000+00:00" } }

Lampirkan kebijakan ke peran

Lampirkan kebijakan ke peran sebelumnya dan berikan izin untuk mengakses sumber daya yang diperlukan. Hal ini mengizinkan layanan VM Import/Export lokal untuk mengunduh snapshot dari Amazon S3 pada perangkat.

aws iam attach-role-policy --role-name role-name --policy-arn arn:aws:iam::123456789012:policy/policy-name --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Izin yang diperlukan oleh penelepon

Selain peran untuk VM Import/Export Snowball Edge untuk memulai, Anda juga harus memastikan bahwa pengguna memiliki izin yang mengizinkannya untuk meneruskan peran ke VMIE. Jika Anda menggunakan pengguna root default untuk melakukan impor, pengguna root sudah memiliki semua izin yang diperlukan, sehingga Anda dapat melewati langkah ini, dan melanjutkan ke langkah 3.

Lampirkan dua izin IAM berikut ke pengguna yang melakukan impor.

  • pass-role

  • get-role

Buat kebijakan untuk peran

Berikut ini adalah contoh kebijakan yang memungkinkan pengguna melakukan tindakan get-role dan pass-role untuk IAM role.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action": "iam:GetRole", "Resource":"*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "importexport.amazonaws.com" } } } ] }

Buat kebijakan dengan file kebijakan:

aws iam create-policy --policy-name policy-name --policy-document file:///policy-json-file-path --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Berikut ini adalah contoh output dari perintah create-policy.

{ "Policy":{ "PolicyName":"caller-policy", "PolicyId":"ANPACEMGEZDGNBVGY3TQOJQGEZAAAABOOOTUOE3AAAAAAPPBEUM7Q7ARPUE53C6R", "Arn":"arn:aws:iam::123456789012:policy/caller-policy", "Path":"/", "DefaultVersionId":"v1", "AttachmentCount":0, "IsAttachable":true, "CreateDate":"2020-07-30T00:58:25.309000+00:00", "UpdateDate":"2020-07-30T00:58:25.309000+00:00" } }

Setelah kebijakan dihasilkan, lampirkan kebijakan untuk pengguna IAM yang akan memanggil API Amazon EC2 atau operasi CLI untuk mengimpor snapshot.

aws iam attach-user-policy --user-name your-user-name --policy-arn arn:aws:iam::123456789012:policy/policy-name --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Izin Diperlukan untuk memanggil API Amazon EC2 di perangkat Anda

Untuk mengimpor snapshot, pengguna IAM harus memiliki izin ec2:ImportSnapshot. Jika membatasi akses ke pengguna tidak diperlukan, Anda dapat menggunakan izin ec2:* untuk memberikan akses penuh Amazon EC2. Berikut ini adalah izin yang dapat diberikan atau dibatasi untuk Amazon EC2 pada perangkat Anda. Buat file kebijakan dengan konten yang ditampilkan:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:ImportSnapshot", "ec2:DescribeImportSnapshotTasks", "ec2:CancelImportTask", "ec2:DescribeSnapshots", "ec2:DeleteSnapshot", "ec2:RegisterImage", "ec2:DescribeImages", "ec2:DeregisterImage" ], "Resource":"*" } ] }

Buat kebijakan dengan file kebijakan:

aws iam create-policy --policy-name policy-name --policy-document file:///policy-json-file-path --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Berikut ini adalah contoh output dari perintah create-policy.

{ "Policy": { "PolicyName": "ec2-import.json", "PolicyId": "ANPACEMGEZDGNBVGY3TQOJQGEZAAAABQBGPDQC5AAAAATYN62UNBFYTF5WVCSCZS", "Arn": "arn:aws:iam::123456789012:policy/ec2-import.json", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "IsAttachable": true, "CreateDate": "2022-04-21T16:25:53.504000+00:00", "UpdateDate": "2022-04-21T16:25:53.504000+00:00" } }

Setelah kebijakan dihasilkan, lampirkan kebijakan untuk pengguna IAM yang akan memanggil API Amazon EC2 atau operasi CLI untuk mengimpor snapshot.

aws iam attach-user-policy --user-name your-user-name --policy-arn arn:aws:iam::123456789012:policy/policy-name --profile profile-name --endpoint http://snowball-ip:6078 --region snow

Langkah 3: Impor gambar VM sebagai snapshot pada perangkat

Langkah selanjutnya adalah mengimpor gambar VM sebagai snapshot pada perangkat. Nilai S3Bucket parameter adalah nama bucket yang berisi gambar VM. Nilai S3Key parameter adalah jalur ke file gambar VM di bucket ini.

aws ec2 import-snapshot --disk-container "Format=RAW,UserBucket={S3Bucket=bucket-name,S3Key=image-file}" --profile profile-name --endpoint http://snowball-ip:8008 --region snow

Untuk informasi selengkapnya, lihat import-snapshot di Referensi Perintah. AWS CLI

Perintah ini tidak mendukung switch berikut.

  • [--client-data value]

  • [--client-token value]

  • [--dry-run]

  • [--no-dry-run]

  • [--encrypted]

  • [--no-encrypted]

  • [--kms-key-id value]

  • [--tag-specifications value]

contoh output dari import-snapshot perintah
{ "ImportTaskId":"s.import-snap-1234567890abc", "SnapshotTaskDetail":{ "DiskImageSize":2.0, "Encrypted":false, "Format":"RAW", "Progress":"3", "Status":"active", "StatusMessage":"pending", "UserBucket":{ "S3Bucket":"bucket", "S3Key":"vmimport/image01" } } }
catatan

Perangkat Snow Family saat ini hanya mengizinkan satu pekerjaan impor aktif berjalan pada satu waktu, per perangkat. Untuk memulai tugas impor baru, sebaiknya menunggu untuk tugas saat ini agar selesai, atau memilih simpul lain yang tersedia dalam sebuah klaster. Anda juga dapat memilih untuk membatalkan impor saat ini jika Anda mau. Untuk mencegah penundaan, jangan reboot perangkat Keluarga Salju saat impor sedang berlangsung. Jika anda reboot perangkat, impor akan gagal, dan kemajuan akan dihapus apabila peranngkat menjadi mudah diakses. Untuk memeriksa status dari status tugas impor snapshot Anda, gunakan perintah berikut:

aws ec2 describe-import-snapshot-tasks --import-task-ids id --profile profile-name --endpoint http://snowball-ip:8008 --region snow

Langkah 4: Daftarkan snapshot sebagai AMI

Ketika pengimporan snapshot ke perangkat berhasil, Anda dapat mendaftarkannya menggunakan perintah register-image.

catatan

Anda hanya dapat mendaftarkan AMI ketika semua snapshot-nya tersedia.

Untuk informasi selengkapnya, lihat register-image di Command Reference. AWS CLI

contoh dari register-image perintah
aws ec2 register-image \ --name ami-01 \ --description my-ami-01 \ --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"Encrypted\":false,\"DeleteOnTermination\":true,\"SnapshotId\":\"snapshot-id\",\"VolumeSize\":30}}]" \ --root-device-name /dev/sda1 \ --profile profile-name \ --endpoint http://snowball-ip:8008 \ --region snow

Berikut ini adalah contoh pemetaan perangkat blok JSON. Untuk informasi selengkapnya, lihat block-device-mapping parameter register-image di Command Reference. AWS CLI

[ { "DeviceName": "/dev/sda", "Ebs": { "Encrypted": false, "DeleteOnTermination": true, "SnapshotId": "snapshot-id", "VolumeSize": 30 } } ]
contoh dari register-image perintah
{ "ImageId": "s.ami-8de47d2e397937318" }

Langkah 5: Luncurkan instance dari AMI

Untuk meluncurkan instance, lihat run-instance di Command Reference. AWS CLI

Nilai image-id parameter adalah nilai ImageId nama sebagai output dari register-image perintah.

aws ec2 run-instances --image-id image-id --instance-type instance-type --profile profile-name --endpoint http://snowball-ip:8008 --region snow
{ "Instances":[ { "SourceDestCheck":false, "CpuOptions":{ "CoreCount":1, "ThreadsPerCore":2 }, "InstanceId":"s.i-12345a73123456d1", "EnaSupport":false, "ImageId":"s.ami-1234567890abcdefg", "State":{ "Code":0, "Name":"pending" }, "EbsOptimized":false, "SecurityGroups":[ { "GroupName":"default", "GroupId":"s.sg-1234567890abc" } ], "RootDeviceName":"/dev/sda1", "AmiLaunchIndex":0, "InstanceType":"sbe-c.large" } ], "ReservationId":"s.r-1234567890abc" }
catatan

Anda juga dapat menggunakan AWS OpsHub untuk meluncurkan instance. Untuk informasi selengkapnya, lihat Meluncurkan instans yang kompatibel dengan Amazon EC2 dalam panduan ini.

Tindakan AMI tambahan

Anda dapat menggunakan AWS CLI perintah tambahan untuk memantau status impor snapshot, mendapatkan detail tentang snapshot yang telah diimpor, membatalkan impor snapshot, dan menghapus atau membatalkan pendaftaran snapshot setelah diimpor.

Memantau status impor snapshot

Untuk melihat status kemajuan impor saat ini, Anda dapat menjalankan perintah describe-import-snapshot-tasks Amazon EC2. Perintah ini mendukung pagination dan filtering pada file. task-state

contoh dari describe-import-snapshot-tasks perintah
aws ec2 describe-import-snapshot-tasks --import-task-ids id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
contoh dari output describe-import-snapshot-tasks perintah
{ "ImportSnapshotTasks": [ { "ImportTaskId": "s.import-snap-8f6bfd7fc9ead9aca", "SnapshotTaskDetail": { "Description": "Created by AWS-Snowball-VMImport service for s.import-snap-8f6bfd7fc9ead9aca", "DiskImageSize": 8.0, "Encrypted": false, "Format": "RAW", "Progress": "3", "SnapshotId": "s.snap-848a22d7518ad442b", "Status": "active", "StatusMessage": "pending", "UserBucket": { "S3Bucket": "bucket1", "S3Key": "image1" } } } ] }
catatan

Perintah ini hanya menampilkan output untuk tugas yang telah berhasil diselesaikan atau ditandai sebagai dihapus dalam 7 hari terakhir. Filter hanya mendukung Name=task-state, Values=active | deleting | deleted | completed

Perintah ini tidak mendukung parameter berikut.

  • [--dry-run]

  • [--no-dry-run]

Membatalkan tugas impor

Untuk membatalkan tugas impor, jalankan perintah cancel-import-task.

contoh dari cancel-import-task perintah
aws ec2 cancel-import-task --import-task-id import-task-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
contoh dari output cancel-import-task perintah
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
catatan

Hanya tugas yang tidak dalam status selesai dapat dibatalkan.

Perintah ini tidak mendukung parameter berikut.

  • [--dry-run]

  • [--no-dry-run]

Menggambarkan snapshot

Setelah snapshot diimpor, Anda dapat menggunakan perintah ini untuk menjelaskannya. Untuk melakukan filter snapshot, Anda dapat meneruskan snapshot-ids dengan ID snapshot dari respons tugas impor sebelumnya. Perintah ini mendukung pagination dan filter padavolume-id,status, danstart-time.

contoh dari describe-snapshots perintah
aws ec2 describe-snapshots --snapshot-ids snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
contoh dari output describe-snapshots perintah
{ "Snapshots": [ { "Description": "Created by AWS-Snowball-VMImport service for s.import-snap-8f6bfd7fc9ead9aca", "Encrypted": false, "OwnerId": "123456789012", "SnapshotId": "s.snap-848a22d7518ad442b", "StartTime": "2020-07-30T04:31:05.032000+00:00", "State": "completed", "VolumeSize": 8 } ] }

Perintah ini tidak mendukung parameter berikut.

  • [--restorable-by-user-ids value]

  • [--dry-run]

  • [--no-dry-run]

Menghapus snapshot dari perangkat Keluarga Salju

Untuk menghapus snapshot yang Anda miliki dan tidak Anda butuhkan lagi, Anda dapat menggunakan perintah delete-snapshot.

contoh dari delete-snapshot perintah
aws ec2 delete-snapshot --snapshot-id snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
catatan

Snowball Edge tidak mendukung menghapus snapshot yang berada dalam status TERTUNDA atau jika ditetapkan sebagai perangkat root untuk AMI.

Perintah ini tidak mendukung parameter berikut.

  • [--dry-run]

  • [--no-dry-run]

Membatalkan pendaftaran AMI

Untuk membatalkan pendaftaran AMI yang tidak lagi Anda butuhkan, Anda dapat menjalankan perintah deregister-image. Membatalkan pendaftaran AMI yang berada dalam status Tertunda saat ini tidak didukung.

contoh dari deregister-image perintah
aws ec2 deregister-image --image-id image-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow

Perintah ini tidak mendukung parameter berikut.

  • [--dry-run]

  • [--no-dry-run]