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'Amazon Machine Image (AMI). Après avoir importé une image de machine virtuelle, enregistrez-la en tant qu'AMI et lancez-la en tant qu'instance compatible Amazon EC2.
Vous pouvez ajouter des AMI d'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 plus d’informations, consultez Étape 2 : Choisissez 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 qu'AMI compatible avec Amazon EC2 dans ce guide.
Rubriques
- Étape 1 : préparer l'image de la machine virtuelle et la télécharger sur l'appareil de la famille Snow
- Étape 2 : configurer les autorisations requises
- Étape 3 : Importer l'image de la machine virtuelle sous forme de capture instantanée sur l'appareil
- Étape 4 : enregistrer le snapshot en tant qu'AMI
- Étape 5 : Lancer une instance depuis l'AMI
- Actions AMI supplémentaires
É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 à partir d'une AMI ou d'une instance Amazon EC2 à 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 instance Amazon EC2 sous forme d'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 une AMI Amazon EC2 sous forme d'image de machine virtuelle à l'aide de VM Import/Export, consultez la section Exportation d'une machine virtuelle directement depuis une image 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 en tant qu'AMI sur le périphérique de la famille Snow. Vous devrez peut-être 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 NTP (Network Time Protocol) est configuré.
Incluez les clés publiques SSH, si nécessaire. Créez des copies locales des paires de clés. Pour plus d'informations, consultez Utiliser 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 de la gamme Snow ne prennent actuellement en charge que l'importation d'instantanés au format d'image RAW.
-
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
--profileprofile-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
--keypath-to-snapshot-file
--bodysnapshot-file
--profileyour-profile
--endpoint-urls3api-endpoint-ip
Pour plus d'informations, consultez la section Utilisation d'objets S3 sur un appareil Snowball Edge.
Étape 2 : configurer les autorisations requises
Pour que l'importation soit réussie, vous devez configurer des autorisations pour VM Import/Export sur l'appareil de la famille Snow, Amazon EC2 et sur 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
Avant de démarrer le processus d'importation, vous devez créer un rôle IAM avec une politique de confiance qui permet à VM Import/Export sur le périphérique de la famille Snow d'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
--profileprofile-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, remplacez
snow-id par votre identifiant de travail. Pour un cluster d'appareils, remplacez snow-id par 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 avec le fichier de politique :
aws iam create-policy --policy-name
policy-name
--policy-document file:///policy-json-file-path
--profileprofile-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
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
Autorisations requises par l'appelant
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 autorisations IAM 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 rôle IAM.
{ "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
--profileprofile-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, associez-la aux utilisateurs IAM qui appelleront l'API ou l'opération CLI Amazon EC2 pour importer le snapshot.
aws iam attach-user-policy --user-name
your-user-name
--policy-arn arn:aws:iam::123456789012:policy/policy-name
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
Autorisations requises pour appeler les API Amazon EC2 sur votre appareil
Pour importer un instantané, l'utilisateur IAM 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 accès complet à Amazon EC2. Voici les autorisations qui peuvent être accordées ou restreintes pour Amazon EC2 sur votre appareil. 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 avec le fichier de politique :
aws iam create-policy --policy-name
policy-name
--policy-document file:///policy-json-file-path
--profileprofile-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, associez-la aux utilisateurs IAM qui appelleront l'API ou l'opération CLI Amazon EC2 pour importer le snapshot.
aws iam attach-user-policy --user-name
your-user-name
--policy-arn arn:aws:iam::123456789012:policy/policy-name
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
Étape 3 : Importer l'image de la machine virtuelle sous forme de capture instantanée sur l'appareil
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
}" --profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
Pour plus d'informations, consultez import-snapshot
Cette commande ne prend pas en charge les commutateurs suivants.
[--données-client
value
][--jeton client
value
][--fonctionnement à sec]
[--no-dry-run]
[--crypté]
[--non crypté]
[--kms-key-id
value
][--tag-specifications
value
]
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
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
Étape 4 : enregistrer le snapshot en tant qu'AMI
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 une AMI que lorsque tous ses instantanés sont disponibles.
Pour plus d'informations, voir register-image
Exemple de la register-image
commande
aws ec2 register-image \ --name
ami-01
\ --descriptionmy-ami-01
\ --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"Encrypted\":false,\"DeleteOnTermination\":true,\"SnapshotId\":\"snapshot-id
\",\"VolumeSize\":30}}]" \ --root-device-name /dev/sda1 \ --profileprofile-name
\ --endpoint http://snowball-ip
:8008 \ --region snow
Voici un exemple de mappage de périphériques par blocs au format JSON. Pour plus d'informations, consultez le block-device-mapping paramètre de register-image
[ { "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'AMI
Pour lancer une instance, consultez run-instances
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-typeinstance-type
--profileprofile-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 compatible avec Amazon EC2 dans ce guide.
Actions AMI supplémentaires
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
Pour connaître l'état actuel de la progression de l'importation, vous pouvez exécuter la commande Amazon EC2. describe-import-snapshot-tasks
Cette commande prend en charge la pagination et le task-state
filtrage sur.
Exemple de la describe-import-snapshot-tasks
commande
aws ec2 describe-import-snapshot-tasks --import-task-ids
id
--profileprofile-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
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
--profileprofile-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
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-id
status
, etstart-time
.
Exemple de describe-snapshots
commande
aws ec2 describe-snapshots --snapshot-ids
snapshot-id
--profileprofile-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
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
Note
Snowball Edge ne prend pas en charge la suppression de snapshots dont l'état est EN ATTENTE ou s'il est désigné comme périphérique racine pour une AMI.
Cette commande ne prend pas en charge les paramètres suivants.
-
[--fonctionnement à sec]
-
[--no-dry-run]
Annulation de l'enregistrement d'un AMI
Pour désenregistrer les AMI dont vous n'avez plus besoin, vous pouvez exécuter la deregister-image
commande. L'annulation de l'enregistrement d'une 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
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
Cette commande ne prend pas en charge les paramètres suivants.
[--fonctionnement à sec]
[--no-dry-run]