Importazione dell'immagine di una macchina virtuale su un dispositivo Snow Family - AWS Snowball Edge Guida per gli sviluppatori

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Importazione dell'immagine di una macchina virtuale su un dispositivo Snow Family

Puoi utilizzare il servizio AWS CLI e il servizio VM Import/Export per importare un'immagine di macchina virtuale (VM) sul dispositivo Snow Family come Amazon Machine Image (). AMI Dopo aver importato un'immagine VM, registra l'immagine come istanza compatibile con Amazon AMI e avviala come istanza compatibile EC2 con Amazon.

Puoi aggiungere AMIs da Amazon EC2 al dispositivo quando crei un lavoro per ordinare un dispositivo Snow Family. Usa questa procedura dopo aver ricevuto il dispositivo Snow Family. Per ulteriori informazioni, consulta Scelta delle opzioni di elaborazione e archiviazione.

Puoi anche usarlo AWS OpsHub per caricare il file di immagine della macchina virtuale. Per ulteriori informazioni, consulta Importazione di un'immagine nel tuo dispositivo come EC2 compatibile con Amazon AMI in questa guida.

Passaggio 1: preparare l'immagine della macchina virtuale e caricarla sul dispositivo Snow Family

Prepara l'immagine della macchina virtuale esportando un'immagine della macchina virtuale da Amazon EC2 AMI o da un'istanza Cloud AWS utilizzando VM Import/Export o generando l'immagine della macchina virtuale localmente utilizzando la piattaforma di virtualizzazione che preferisci.

Per esportare un'EC2istanza Amazon come immagine di macchina virtuale utilizzando VM Import/Export, consulta Esportazione di un'istanza come macchina virtuale utilizzando VM Import/Export nella VM Import/Export User Guide. Per esportare un Amazon EC2 AMI come immagine di macchina virtuale utilizzando VM Import/Export, consulta Esportazione di una macchina virtuale direttamente da un'immagine di macchina virtuale di Amazon AMI () nella VM Import/Export User Guide.

Se generi un'immagine VM dal tuo ambiente locale, assicurati che l'immagine sia configurata per l'uso come dispositivo della famiglia Snow. AMI Potrebbe essere necessario configurare i seguenti elementi, a seconda dell'ambiente.

  • Configurare e aggiornare il sistema operativo.

  • Imposta un nome host.

  • Assicurati che il network time protocol (NTP) sia configurato.

  • Includi le chiavi SSH pubbliche, se necessario. Crea copie locali delle coppie di chiavi. Per ulteriori informazioni, consulta Utilizzo SSH per connettersi alle istanze di calcolo su Snowball Edge.

  • Installa e configura qualsiasi software che utilizzerai sul dispositivo Snow Family.

Nota

Tieni presente le seguenti limitazioni quando prepari un'istantanea del disco per un dispositivo Snow Family.

  • I dispositivi Snow Family attualmente supportano solo l'importazione di istantanee in formato immagine. RAW

  • I dispositivi Snow Family attualmente supportano solo l'importazione di istantanee con dimensioni da 1 GB a 1 TB.

Caricamento di un'immagine VM su un bucket Amazon S3 sul dispositivo Snow Family

Dopo aver preparato un'immagine VM, caricala in un bucket S3 sul dispositivo o sul cluster Snow Family. Puoi utilizzare l'adattatore S3 o lo storage compatibile con Amazon S3 sui dispositivi Snow Family per caricare lo snapshot.

Per caricare l'immagine della macchina virtuale utilizzando l'adattatore S3
  • Usa il cp comando per copiare il file di immagine della macchina virtuale in un bucket sul dispositivo.

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

    Per ulteriori informazioni, consulta AWS CLI Comandi supportati in questa guida.

Per caricare l'immagine della macchina virtuale utilizzando lo storage compatibile con Amazon S3 sui dispositivi Snow Family
  • Usa il put-object comando per copiare il file snapshot in un bucket sul dispositivo.

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

    Per ulteriori informazioni, consulta Lavorare con oggetti S3 su un dispositivo Snowball Edge.

Passaggio 2: imposta le autorizzazioni richieste sul dispositivo Snow Family

Affinché l'importazione abbia esito positivo, è necessario impostare le autorizzazioni per VM Import/Export sul dispositivo Snow FamilyEC2, Amazon e sull'utente.

Nota

I ruoli e le politiche di servizio che forniscono queste autorizzazioni si trovano sul dispositivo Snow Family.

Autorizzazioni richieste per l'importazione/esportazione di VM su un dispositivo Snow Family

Prima di iniziare il processo di importazione, è necessario creare un IAM ruolo con una policy di fiducia che consenta a VM Import/Export sul dispositivo Snow Family di assumere il ruolo. Al ruolo vengono concesse autorizzazioni aggiuntive per consentire a VM Import/Export sul dispositivo di accedere all'immagine archiviata nel bucket S3 sul dispositivo.

Crea un file json di policy di fiducia

Di seguito è riportato un esempio di policy di fiducia da allegare al ruolo in modo che VM Import/Export possa accedere allo snapshot che deve essere importato dal bucket S3.

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

Crea un ruolo con il file json della policy di fiducia

Il nome del ruolo può essere vmimport. Puoi cambiarlo usando l'opzione --role-name nel comando:

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

Di seguito è riportato un esempio di output del comando. 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" } }

Creare una politica per il ruolo

La seguente policy di esempio ha le autorizzazioni minime richieste per accedere ad Amazon S3. Cambia il nome del bucket Amazon S3 con quello che contiene le tue immagini. Per un dispositivo Snowball Edge autonomo, modifica snow-id al tuo ID di lavoro. Per un cluster di dispositivi, modifica snow-id all'ID del cluster. È inoltre possibile utilizzare i prefissi per restringere ulteriormente la posizione da cui VM Import/Export può importare le istantanee. Crea un file json di policy come questo.

{ "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/*" ] } ] }

Crea una politica con il file di policy:

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

Di seguito è riportato un esempio di output del comando 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" } }

Allega la policy al ruolo

Allega una policy al ruolo precedente e concedi le autorizzazioni per accedere alle risorse richieste. Ciò consente al servizio VM Import/Export locale di scaricare lo snapshot da Amazon S3 sul dispositivo.

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

Autorizzazioni richieste dal chiamante su un dispositivo Snow Family

Oltre al ruolo da assumere per Snowball Edge VM Import/Export, devi anche assicurarti che l'utente disponga delle autorizzazioni che gli consentano di passare il ruolo. VMIE Se si utilizza l'utente root predefinito per eseguire l'importazione, l'utente root dispone già di tutte le autorizzazioni necessarie, quindi è possibile saltare questo passaggio e andare al passaggio 3.

Assegna le due IAM autorizzazioni seguenti all'utente che esegue l'importazione.

  • pass-role

  • get-role

Crea una politica per il ruolo

Di seguito è riportato un esempio di policy che consente a un utente di eseguire le pass-role azioni get-role e relative al IAM ruolo.

{ "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" } } } ] }

Crea una politica con il file di policy:

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

Di seguito è riportato un esempio di output del comando 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" } }

Dopo che la policy è stata generata, allegala agli IAM utenti che chiameranno Amazon EC2 API o l'CLIoperazione per importare lo 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

Autorizzazioni necessarie per chiamare Amazon EC2 APIs su un dispositivo Snow Family

Per importare un'istantanea, l'IAMutente deve disporre delle ec2:ImportSnapshot autorizzazioni. Se non è necessario limitare l'accesso all'utente, puoi utilizzare le ec2:* autorizzazioni per concedere l'accesso completo ad AmazonEC2. Di seguito sono elencate le autorizzazioni che possono essere concesse o limitate per Amazon EC2 sul tuo dispositivo. Crea un file di policy con il contenuto mostrato:

{ "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":"*" } ] }

Crea un criterio con il file di policy:

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

Di seguito è riportato un esempio di output del comando 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" } }

Dopo che la policy è stata generata, allegala agli IAM utenti che chiameranno Amazon EC2 API o l'CLIoperazione per importare lo 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

Passaggio 3: Importa l'immagine della macchina virtuale come istantanea sul dispositivo Snow Family

Il passaggio successivo consiste nell'importare l'immagine della macchina virtuale come istantanea sul dispositivo. Il valore del S3Bucket parametro è il nome del bucket che contiene l'immagine della macchina virtuale. Il valore del S3Key parametro è il percorso del file di immagine della macchina virtuale in questo bucket.

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

Per ulteriori informazioni, vedere import-snapshot nel Command Reference. AWS CLI

Questo comando non supporta le seguenti opzioni.

  • [--client-datavalue]

  • [--client-token] value

  • [--dry-run]

  • [--no-dry-run]

  • [--encrypted]

  • [--no-encrypted]

  • [--kms-key-id value]

  • [--tag-specificazioni] value

Esempio uscita del comando import-snapshot
{ "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" } } }
Nota

I dispositivi Snow Family attualmente consentono l'esecuzione di un solo processo di importazione attivo alla volta, per dispositivo. Per iniziare una nuova attività di importazione, attendi che l'operazione corrente finisca o scegli un altro nodo disponibile in un cluster. Puoi anche scegliere di annullare l'importazione corrente, se lo desideri. Per evitare ritardi, non riavviare il dispositivo Snow Family mentre l'importazione è in corso. Se riavvii il dispositivo, l'importazione avrà esito negativo e l'avanzamento verrà eliminato quando il dispositivo sarà accessibile. Per verificare lo stato dell'operazione di importazione delle istantanee, utilizzate il seguente comando:

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

Fase 4: Registrare l'istantanea come file AMI sul dispositivo Snow Family

Quando l'importazione dell'istantanea sul dispositivo ha esito positivo, è possibile registrarla utilizzando il register-image comando.

Nota

È possibile registrarlo solo AMI quando tutte le relative istantanee sono disponibili.

Per ulteriori informazioni, vedere register-image nel Command Reference. AWS CLI

Esempio del comando register-image
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

Di seguito è riportato un esempio di mappatura JSON dei dispositivi a blocchi. Per ulteriori informazioni, vedete il block-device-mapping parametro register-image nel Command Reference. AWS CLI

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

Fase 5: Avvia un'istanza dal AMI dispositivo Snow Family

Per avviare un'istanza, consulta run-instances nel Command Reference. AWS CLI

Il valore del image-id parametro è il valore del ImageId nome come output del comando. register-image

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" }
Nota

Puoi anche usarlo AWS OpsHub per avviare l'istanza. Per ulteriori informazioni, consulta Avvio di un'istanza EC2 compatibile con Amazon in questa guida.

AMIAzioni aggiuntive per un dispositivo Snow Family

È possibile utilizzare AWS CLI comandi aggiuntivi per monitorare lo stato di importazione delle istantanee, ottenere dettagli sulle istantanee importate, annullare l'importazione di un'istantanea ed eliminare o annullare la registrazione delle istantanee dopo l'importazione.

Monitoraggio dello stato di importazione delle istantanee su un dispositivo Snow Family

Per vedere lo stato attuale dell'avanzamento dell'importazione, puoi eseguire il EC2 describe-import-snapshot-tasks comando Amazon. Questo comando supporta l'impaginazione e il filtraggio su. task-state

Esempio del comando describe-import-snapshot-tasks
aws ec2 describe-import-snapshot-tasks --import-task-ids id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Esempio dell'output del describe-import-snapshot-tasks comando
{ "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" } } } ] }
Nota

Questo comando mostra solo l'output delle attività che sono state completate con successo o che sono state contrassegnate come eliminate negli ultimi 7 giorni. Il filtraggio supporta Name=task-state solo, Values=active | deleting | deleted | completed

Questo comando non supporta i seguenti parametri.

  • [--dry-run]

  • [--no-dry-run]

Annullamento di un'operazione di importazione su un dispositivo Snow Family

Per annullare un'operazione di importazione, esegui il cancel-import-task comando.

Esempio del cancel-import-task comando
aws ec2 cancel-import-task --import-task-id import-task-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Esempio dell'output del cancel-import-task comando
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
Nota

È possibile annullare solo le attività che non sono in uno stato completato.

Questo comando non supporta i seguenti parametri.

  • [--dry-run]

  • [--no-dry-run]

Descrizione delle istantanee su un dispositivo Snow Family

Dopo aver importato un'istantanea, puoi usare questo comando per descriverla. Per filtrare le istantanee, è possibile inviarle l'ID dell'istantanea della precedente risposta all'attività di importazione. snapshot-ids Questo comando supporta l'impaginazione e il filtro suvolume-id, status e. start-time

Esempio del describe-snapshots comando
aws ec2 describe-snapshots --snapshot-ids snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Esempio dell'output del describe-snapshots comando
{ "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 } ] }

Questo comando non supporta i seguenti parametri.

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

  • [--dry-run]

  • [--no-dry-run]

Eliminazione di un'istantanea da un dispositivo Snow Family

Per rimuovere le istantanee che possiedi e che non ti servono più, puoi usare il comando. delete-snapshot

Esempio del comando delete-snapshot
aws ec2 delete-snapshot --snapshot-id snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Nota

Snowball Edge non supporta l'eliminazione di istantanee che si trovano in uno PENDINGstato o se è designato come dispositivo root per un. AMI

Questo comando non supporta i seguenti parametri.

  • [--dry-run]

  • [--no-dry-run]

Annullamento della registrazione di un utente su un AMI dispositivo Snow Family

Per annullare la registrazione AMIs che non ti serve più, puoi eseguire il comando. deregister-image L'annullamento della registrazione di un utente AMI che si trova nello stato In sospeso non è attualmente supportato.

Esempio del comando deregister-image
aws ec2 deregister-image --image-id image-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow

Questo comando non supporta i seguenti parametri.

  • [--dry-run]

  • [--no-dry-run]