Importation d'une image de machine virtuelle sur un appareil Snow Family - AWS Snowball Edge Guide du développeur

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.

Importation d'une image de machine virtuelle sur un appareil Snow Family

Vous pouvez utiliser le service VM Import/Export AWS CLI et le service VM pour importer une image de machine virtuelle (VM) sur l'appareil de la famille Snow en tant qu'image de machine Amazon ()AMI. Après avoir importé une image de machine virtuelle, enregistrez-la en tant qu'image AMI et lancez-la en tant qu'instance EC2 compatible avec Amazon.

Vous pouvez ajouter AMIs depuis Amazon EC2 à l'appareil lorsque vous créez une tâche pour commander un appareil Snow Family. Utilisez cette procédure après avoir reçu l'appareil Snow Family. Pour de plus amples informations, veuillez consulter Choix de vos options de calcul et de stockage.

Vous pouvez également l'utiliser AWS OpsHub pour télécharger le fichier image de la machine virtuelle. Pour plus d'informations, consultez la section Importation d'une image sur votre appareil en tant que produit EC2 compatible avec Amazon AMI dans ce guide.

Étape 1 : préparer l'image de la machine virtuelle et la télécharger sur l'appareil de la famille Snow

Préparez l'image de machine virtuelle en exportant une image de machine virtuelle depuis un Amazon EC2 AMI ou une instance à l' AWS Cloud aide de VM Import/Export ou en générant l'image de machine virtuelle localement à l'aide de la plate-forme de virtualisation de votre choix.

Pour exporter une EC2 instance Amazon en tant qu'image de machine virtuelle à l'aide de VM Import/Export, consultez la section Exportation d'une instance en tant que machine virtuelle à l'aide de VM Import/Export dans le guide de l'utilisateur de VM Import/Export. Pour exporter un Amazon EC2 AMI en tant qu'image de machine virtuelle à l'aide de VM Import/Export, consultez Exporter une machine virtuelle directement à partir d'une image de machine Amazon (AMI) dans le guide de l'utilisateur de VM Import/Export.

Si vous générez une image de machine virtuelle à partir de votre environnement local, assurez-vous que l'image est configurée pour être utilisée AMI en tant que périphérique de la gamme Snow. Il se peut que vous deviez configurer les éléments suivants, en fonction de votre environnement.

  • Configurez et mettez à jour le système d'exploitation.

  • Définissez un nom d'hôte.

  • Assurez-vous que le protocole horaire réseau (NTP) est configuré.

  • Incluez les clés SSH publiques, si nécessaire. Créez des copies locales des paires de clés. Pour plus d'informations, consultez la section Utilisation SSH pour vous connecter à vos instances de calcul sur un Snowball Edge.

  • Installez et configurez tous les logiciels que vous utiliserez sur l'appareil de la famille Snow.

Note

Tenez compte des limites suivantes lorsque vous préparez un instantané de disque pour un appareil de la gamme Snow.

  • Les appareils Snow Family ne prennent actuellement en charge que l'importation d'instantanés au format RAW image.

  • Les appareils de la gamme Snow ne prennent actuellement en charge que l'importation de snapshots d'une taille comprise entre 1 Go et 1 To.

Téléchargement d'une image de machine virtuelle dans un compartiment Amazon S3 sur l'appareil de la famille Snow

Après avoir préparé une image de machine virtuelle, téléchargez-la dans un compartiment S3 sur le périphérique ou le cluster de la gamme Snow. Vous pouvez utiliser l'adaptateur S3 ou le stockage compatible Amazon S3 sur les appareils de la gamme Snow pour télécharger l'instantané.

Pour télécharger l'image de la machine virtuelle à l'aide de l'adaptateur S3
  • Utilisez la cp commande pour copier le fichier image de la machine virtuelle dans un compartiment de l'appareil.

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

    Pour plus d'informations, consultez la section AWS CLI Commandes prises en charge dans ce guide.

Pour télécharger l'image de la machine virtuelle à l'aide du stockage compatible Amazon S3 sur les appareils de la gamme Snow
  • Utilisez la put-object commande pour copier le fichier de capture d'écran dans un compartiment de l'appareil.

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

    Pour plus d'informations, consultez la section Utilisation d'objets S3 sur un appareil Snowball Edge.

Étape 2 : configurer les autorisations requises sur l'appareil Snow Family

Pour que l'importation soit réussie, vous devez configurer des autorisations pour VM Import/Export sur l'appareil de la famille SnowEC2, Amazon et l'utilisateur.

Note

Les rôles de service et les politiques qui fournissent ces autorisations se trouvent sur l'appareil Snow Family.

Autorisations requises pour l'importation/exportation de machines virtuelles sur un appareil de la famille Snow

Avant de démarrer le processus d'importation, vous devez créer un IAM rôle doté d'une politique de confiance qui autorise VM Import/Export sur le périphérique de la famille Snow à assumer ce rôle. Des autorisations supplémentaires sont accordées au rôle pour permettre à VM Import/Export sur l'appareil d'accéder à l'image stockée dans le compartiment S3 de l'appareil.

Création d'un fichier json de politique de confiance

Voici un exemple de politique de confiance qui doit être attachée au rôle afin que VM Import/Export puisse accéder au snapshot qui doit être importé depuis le compartiment S3.

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

Créez un rôle avec le fichier json de politique de confiance

Le nom du rôle peut être vmimport. Vous pouvez le modifier en utilisant l'option --role-name dans la commande :

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

Voici un exemple de sortie de la create-role commande.

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

Création d'une politique pour le rôle

L'exemple de politique suivant dispose des autorisations minimales requises pour accéder à Amazon S3. Remplacez le nom du compartiment Amazon S3 par celui qui contient vos images. Pour un appareil Snowball Edge autonome, modifiez snow-id à votre numéro de poste. Pour un cluster d'appareils, modifiez snow-id à l'ID du cluster. Vous pouvez également utiliser des préfixes pour affiner l'emplacement à partir duquel VM Import/Export peut importer des instantanés. Créez un fichier de politique JSON comme celui-ci.

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

Créez une politique à l'aide du fichier de politique :

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

Voici un exemple de sortie de la commande 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" } }

Associer la politique au rôle

Associez une politique au rôle précédent et accordez des autorisations pour accéder aux ressources requises. Cela permet au service VM Import/Export local de télécharger le snapshot depuis Amazon S3 sur l'appareil.

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

Autorisations requises par l'appelant sur un appareil Snow Family

Outre le rôle que doit assumer le Snowball Edge VM Import/Export, vous devez également vous assurer que l'utilisateur dispose des autorisations lui permettant de transmettre le rôle. VMIE Si vous utilisez l'utilisateur root par défaut pour effectuer l'importation, celui-ci dispose déjà de toutes les autorisations requises. Vous pouvez donc ignorer cette étape et passer à l'étape 3.

Attachez les deux IAM autorisations suivantes à l'utilisateur qui effectue l'importation.

  • pass-role

  • get-role

Création d'une politique pour le rôle

Voici un exemple de politique qui permet à un utilisateur d'exécuter les pass-role actions get-role et pour le IAM rôle.

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

Créez une politique à l'aide du fichier de politique :

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

Voici un exemple de sortie de la commande 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" } }

Une fois la politique générée, joignez-la aux IAM utilisateurs qui appelleront l'Amazon EC2 API ou l'CLIopération pour importer l'instantané.

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

Autorisations requises pour appeler Amazon EC2 APIs sur un appareil Snow Family

Pour importer un instantané, l'IAMutilisateur doit disposer des ec2:ImportSnapshot autorisations nécessaires. S'il n'est pas nécessaire de restreindre l'accès à l'utilisateur, vous pouvez utiliser les ec2:* autorisations pour accorder un EC2 accès complet à Amazon. Les autorisations qui peuvent être accordées ou restreintes à Amazon EC2 sur votre appareil sont les suivantes. Créez un fichier de régulation dont le contenu est affiché :

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

Créez une politique à l'aide du fichier de politique :

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

Voici un exemple de sortie de la commande 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" } }

Une fois la politique générée, joignez-la aux IAM utilisateurs qui appelleront l'Amazon EC2 API ou l'CLIopération pour importer l'instantané.

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

Étape 3 : Importer l'image de la machine virtuelle sous forme d'instantané sur l'appareil de la famille Snow

L'étape suivante consiste à importer l'image de la machine virtuelle sous forme de capture instantanée sur le périphérique. La valeur du S3Bucket paramètre est le nom du compartiment contenant l'image de la machine virtuelle. La valeur du S3Key paramètre est le chemin d'accès au fichier image de la machine virtuelle dans ce compartiment.

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

Pour plus d'informations, consultez import-snapshot dans la référence des AWS CLI commandes.

Cette commande ne prend pas en charge les commutateurs suivants.

  • [--données-clientvalue]

  • [--jeton clientvalue]

  • [--fonctionnement à sec]

  • [--no-dry-run]

  • [--crypté]

  • [--non crypté]

  • [--kms-key-id value]

  • [--tag-specificationsvalue]

Exemple sortie de import-snapshot commande
{ "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" } } }
Note

Les appareils Snow Family n'autorisent actuellement qu'une seule tâche d'importation active à la fois, par appareil. Pour démarrer une nouvelle tâche d'importation, attendez que la tâche en cours soit terminée ou choisissez un autre nœud disponible dans un cluster. Vous pouvez également choisir d'annuler l'importation en cours si vous le souhaitez. Pour éviter tout retard, ne redémarrez pas l'appareil Snow Family pendant que l'importation est en cours. Si vous redémarrez l'appareil, l'importation échouera et la progression sera supprimée lorsque l'appareil sera accessible. Pour vérifier l'état de votre tâche d'importation de snapshots, utilisez la commande suivante :

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

Étape 4 : enregistrer le cliché en tant que fichier AMI sur l'appareil Snow Family

Lorsque l'importation du snapshot sur l'appareil est réussie, vous pouvez l'enregistrer à l'aide de la register-image commande.

Note

Vous ne pouvez enregistrer un fichier que AMI lorsque tous ses instantanés sont disponibles.

Pour plus d'informations, voir register-image dans le manuel de référence des AWS CLI commandes.

Exemple de la register-image commande
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

Voici un exemple de mappage de périphériques en mode blocJSON. Pour plus d'informations, consultez le block-device-mapping paramètre de register-image dans le manuel de référence des AWS CLI commandes.

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

Étape 5 : Lancer une instance depuis l'appareil AMI de la famille Snow

Pour lancer une instance, consultez run-instances dans la référence des AWS CLI commandes.

La valeur du image-id paramètre est la valeur du ImageId nom en sortie de la register-image commande.

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

Vous pouvez également l'utiliser AWS OpsHub pour lancer l'instance. Pour plus d'informations, consultez la section Lancement d'une instance EC2 compatible avec Amazon dans ce guide.

AMIActions supplémentaires pour un appareil Snow Family

Vous pouvez utiliser des AWS CLI commandes supplémentaires pour surveiller l'état d'importation des instantanés, obtenir des informations sur les instantanés importés, annuler l'importation d'un instantané et supprimer ou désenregistrer des instantanés après leur importation.

Surveillance de l'état d'importation des instantanés sur un appareil de la gamme Snow

Pour connaître l'état actuel de la progression de l'importation, vous pouvez exécuter la EC2 describe-import-snapshot-tasks commande Amazon. Cette commande prend en charge la pagination et le filtrage sur letask-state.

Exemple de la describe-import-snapshot-tasks commande
aws ec2 describe-import-snapshot-tasks --import-task-ids id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Exemple de sortie describe-import-snapshot-tasks de commande
{ "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" } } } ] }
Note

Cette commande affiche uniquement le résultat des tâches terminées avec succès ou marquées comme supprimées au cours des 7 derniers jours. Le filtrage ne prend en charge queName=task-state, Values=active | deleting | deleted | completed

Cette commande ne prend pas en charge les paramètres suivants.

  • [--fonctionnement à sec]

  • [--no-dry-run]

Annulation d'une tâche d'importation sur un appareil Snow Family

Pour annuler une tâche d'importation, exécutez la cancel-import-task commande.

Exemple de la cancel-import-task commande
aws ec2 cancel-import-task --import-task-id import-task-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Exemple de sortie cancel-import-task de commande
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
Note

Seules les tâches qui ne sont pas terminées peuvent être annulées.

Cette commande ne prend pas en charge les paramètres suivants.

  • [--fonctionnement à sec]

  • [--no-dry-run]

Décrire les instantanés sur un appareil Snow Family

Après l'importation d'un instantané, vous pouvez utiliser cette commande pour le décrire. Pour filtrer les instantanés, vous pouvez les transmettre snapshot-ids avec l'ID de capture indiqué dans la réponse à la tâche d'importation précédente. Cette commande prend en charge la pagination et le filtrage sur volume-idstatus, etstart-time.

Exemple de describe-snapshots commande
aws ec2 describe-snapshots --snapshot-ids snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Exemple de sortie describe-snapshots de commande
{ "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 } ] }

Cette commande ne prend pas en charge les paramètres suivants.

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

  • [--fonctionnement à sec]

  • [--no-dry-run]

Supprimer un instantané d'un appareil Snow Family

Pour supprimer des instantanés dont vous êtes propriétaire et dont vous n'avez plus besoin, vous pouvez utiliser la delete-snapshot commande.

Exemple de la delete-snapshot commande
aws ec2 delete-snapshot --snapshot-id snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
Note

Snowball Edge ne prend pas en charge la suppression des instantanés qui sont dans un PENDINGétat ou s'ils sont désignés comme périphérique racine pour un. AMI

Cette commande ne prend pas en charge les paramètres suivants.

  • [--fonctionnement à sec]

  • [--no-dry-run]

Désenregistrer un appareil AMI Snow Family

Pour annuler l'enregistrement AMIs dont vous n'avez plus besoin, vous pouvez exécuter la deregister-image commande. L'annulation de l'enregistrement d'un fichier AMI dont l'état est En attente n'est pas prise en charge actuellement.

Exemple de la deregister-image commande
aws ec2 deregister-image --image-id image-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow

Cette commande ne prend pas en charge les paramètres suivants.

  • [--fonctionnement à sec]

  • [--no-dry-run]