Importación de una imagen de máquina virtual a un dispositivo de la familia Snow - AWS Snowball Edge Guía para desarrolladores

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Importación de una imagen de máquina virtual a un dispositivo de la familia Snow

Puede utilizar el AWS CLI servicio VM Import/Export para importar una imagen de máquina virtual (VM) al dispositivo de la familia Snow como Amazon Machine Image (AMI). Tras importar una imagen de máquina virtual, registre la imagen como instancia AMI y ejecútela como una instancia EC2 compatible con Amazon.

Puedes añadir AMIs desde Amazon EC2 al dispositivo al crear un trabajo para pedir un dispositivo de la familia Snow. Siga este procedimiento una vez que haya recibido el dispositivo de la familia Snow. Para obtener más información, consulte Elegir las opciones de cómputo y almacenamiento.

También se puede utilizar AWS OpsHub para cargar el archivo de imagen de la máquina virtual. Para obtener más información, consulta Importación de una imagen a tu dispositivo como EC2 compatible con Amazon AMI en esta guía.

Paso 1: Prepare la imagen de la máquina virtual y cárguela en el dispositivo de la familia Snow

Prepare la imagen de máquina virtual exportando una imagen de máquina virtual desde una instancia EC2 AMI o Amazon Nube de AWS mediante VM Import/Export o generando la imagen de máquina virtual de forma local con la plataforma de virtualización que elija.

Para exportar una EC2 instancia de Amazon como imagen de VM mediante VM Import/Export, consulte Exportación de una instancia como VM mediante VM Import/Export en la Guía del usuario de VM Import/Export. Para exportar una imagen de Amazon EC2 AMI como máquina virtual mediante VM Import/Export, consulte Exportación de una máquina virtual directamente desde una imagen de máquina de Amazon (AMI) en la Guía del usuario de VM Import/Export.

Si va a generar una imagen de máquina virtual desde su entorno local, asegúrese de que la imagen esté configurada para su uso como un dispositivo de la familia AMI Snow. Es posible que necesite configurar los siguientes elementos, según su entorno.

  • Configure y actualice el sistema operativo.

  • Establezca un nombre de host.

  • Asegúrese de que el protocolo de tiempo de red (NTP) esté configurado.

  • Incluya las claves SSH públicas, si es necesario. Haga copias locales de los pares de claves. Para obtener más información, consulte Uso SSH para conectarse a sus instancias de cómputo en un Snowball Edge.

  • Instale y configure cualquier software que vaya a utilizar en el dispositivo de la familia Snow.

nota

Tenga en cuenta las siguientes limitaciones al preparar una instantánea de disco para un dispositivo de la familia Snow.

  • Los dispositivos de la familia Snow actualmente solo admiten la importación de instantáneas en formato de RAW imagen.

  • Actualmente, los dispositivos Snow Family solo permiten importar instantáneas cuyos tamaños oscilen entre 1 GB y 1 TB.

Carga de una imagen de máquina virtual a un bucket de Amazon S3 en el dispositivo de la familia Snow

Tras preparar una imagen de máquina virtual, cárguela en un bucket de S3 del dispositivo o clúster de la familia Snow. Puede utilizar el adaptador S3 o el almacenamiento compatible con Amazon S3 en los dispositivos de la familia Snow para cargar la instantánea.

Para cargar la imagen de la máquina virtual mediante el adaptador S3
  • Utilice el cp comando para copiar el archivo de imagen de la máquina virtual en un depósito del dispositivo.

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

    Para obtener más información, consulte AWS CLI los comandos compatibles en esta guía.

Para cargar la imagen de la máquina virtual mediante un almacenamiento compatible con Amazon S3 en los dispositivos de la familia Snow
  • Utilice el put-object comando para copiar el archivo de instantáneas en un depósito del dispositivo.

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

    Para obtener más información, consulte Trabajo con objetos S3 en un dispositivo Snowball Edge.

Paso 2: Configure los permisos necesarios en el dispositivo de la familia Snow

Para que la importación se realice correctamente, debe configurar los permisos para VM Import/Export en el dispositivo de la familia SnowEC2, Amazon y el usuario.

nota

Los roles de servicio y las políticas que proporcionan estos permisos se encuentran en el dispositivo Snow Family.

Permisos necesarios para la importación o exportación de máquinas virtuales en un dispositivo de la familia Snow

Antes de iniciar el proceso de importación, debe crear un IAM rol con una política de confianza que permita que VM Import/Export del dispositivo de la familia Snow asuma el rol. Se otorgan permisos adicionales a la función para permitir que VM Import/Export del dispositivo acceda a la imagen almacenada en el bucket S3 del dispositivo.

Creación de un archivo json de política de confianza

A continuación, se muestra un ejemplo de política de confianza que hay que adjuntar al rol para que VM Import/Export pueda obtener acceso a la instantánea que se debe importar del bucket de S3.

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

Creación de un rol con el archivo json de política de confianza

El nombre del rol puede ser vmimport. Puede cambiarlo mediante la opción --role-name del 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

A continuación se muestra un ejemplo de salida 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" } }

Creación de una política para el rol

La siguiente política de ejemplo tiene los permisos mínimos necesarios para obtener acceso a Amazon S3. Cambie el nombre del bucket de Amazon S3 por el del bucket que contiene sus imágenes. Para un dispositivo Snowball Edge independiente, cambie snow-id a su ID de trabajo. Para un grupo de dispositivos, cambie snow-id al ID del clúster. También puede usar prefijos para restringir aún más la ubicación desde la que VM Import/Export puede importar instantáneas. Cree un archivo json de política como este.

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

Creación de una política con el archivo de política:

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

A continuación, se muestra un ejemplo de salida 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" } }

Asociación de la política al rol

Asocie una política al rol anterior y conceda permisos de acceso a los recursos necesarios. Esto permite que el servicio local VM Import/Export descargue la instantánea de Amazon S3 en el 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

Permisos requeridos por la persona que llama en un dispositivo de la familia Snow

Además de la función que debe asumir la máquina virtual de importación o exportación de Snowball Edge, también debe asegurarse de que el usuario tenga los permisos que le permiten transferir la función. VMIE Si utiliza el usuario raíz predeterminado para realizar la importación, el usuario raíz ya tiene todos los permisos necesarios, por lo que puede omitir este paso e ir al paso 3.

Adjunte los dos IAM permisos siguientes al usuario que está realizando la importación.

  • pass-role

  • get-role

Creación de una política para el rol

A continuación se muestra un ejemplo de política que permite a un usuario realizar las pass-role acciones get-role y las correspondientes al IAM rol.

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

Creación de una política con el archivo de política:

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

A continuación, se muestra un ejemplo de salida 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" } }

Una vez que se haya generado la política, adjunta la política a los IAM usuarios que llamarán a la operación de Amazon EC2 API o a la CLI operación para importar la instantánea.

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

Se requieren permisos para llamar a Amazon desde EC2 APIs un dispositivo de la familia Snow

Para importar una instantánea, el IAM usuario debe tener los ec2:ImportSnapshot permisos. Si no es necesario restringir el acceso al usuario, puedes usar los ec2:* permisos para conceder EC2 acceso total a Amazon. Los siguientes son los permisos que se pueden conceder o restringir para Amazon EC2 en tu dispositivo. Se muestra el contenido de la creación de un archivo de política:

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

Creación de una política con el archivo de política:

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

A continuación, se muestra un ejemplo de salida 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" } }

Una vez que se haya generado la política, adjunta la política a los IAM usuarios que llamarán a la operación de Amazon EC2 API o a la CLI operación para importar la instantánea.

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

Paso 3: Importe la imagen de la máquina virtual como una instantánea en el dispositivo de la familia Snow

El siguiente paso es importar la imagen de la máquina virtual como una instantánea en el dispositivo. El valor del S3Bucket parámetro es el nombre del depósito que contiene la imagen de la máquina virtual. El valor del S3Key parámetro es la ruta al archivo de imagen de máquina virtual de este depósito.

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

Para obtener más información, consulte import-snapshot en la Referencia de AWS CLI comandos.

Este comando no admite los siguientes modificadores.

  • [--client-data value]

  • [--client-token value]

  • [--dry-run]

  • [--no-dry-run]

  • [--encrypted]

  • [--no-encrypted]

  • [--kms-key-id value]

  • [--tag-specifications value]

ejemplo salida 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

Los dispositivos de la familia Snow actualmente solo permiten ejecutar un trabajo de importación activo a la vez, por dispositivo. Para iniciar una nueva tarea de importación, espere a que finalice la tarea actual o elija otro nodo disponible en un clúster. También puede optar por cancelar la importación actual si lo desea. Para evitar demoras, no reinicie el dispositivo Snow Family mientras la importación esté en curso. Si reinicia el dispositivo, se producirá un error en la importación y el progreso se eliminará cuando se pueda obtener acceso al dispositivo. Para comprobar el estado de la tarea de importación de instantáneas, use el comando siguiente:

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

Paso 4: Registre la instantánea como dispositivo AMI de la familia Snow

Cuando la importación de la instantánea al dispositivo se haya realizado correctamente, puede registrarla mediante el comando register-image.

nota

Solo podrá registrar una AMI cuando todas sus instantáneas estén disponibles.

Para obtener más información, consulte register-image en la Referencia de comandos. AWS CLI

ejemplo 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

El siguiente es un ejemplo de mapeo de dispositivos de bloquesJSON. Para obtener más información, consulte el block-device-mapping parámetro register-image en la AWS CLI Referencia de comandos.

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

Paso 5: Inicie una instancia desde el dispositivo AMI de la familia Snow

Para lanzar una instancia, consulta run-instances en la Referencia de AWS CLI comandos.

El valor del image-id parámetro es el valor del ImageId nombre como resultado del register-image comando.

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

También se puede utilizar AWS OpsHub para lanzar la instancia. Para obtener más información, consulta Cómo lanzar una instancia EC2 compatible con Amazon en esta guía.

AMIAcciones adicionales para un dispositivo de la familia Snow

Puede utilizar AWS CLI comandos adicionales para supervisar el estado de importación de las instantáneas, obtener detalles sobre las instantáneas que se han importado, cancelar la importación de una instantánea y eliminar o anular el registro de las instantáneas una vez importadas.

Supervisión del estado de importación de instantáneas en un dispositivo de la familia Snow

Para ver el estado actual del progreso de la importación, puedes ejecutar el EC2 describe-import-snapshot-tasks comando Amazon. Este comando admite la paginación y el task-state filtrado en.

ejemplo 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
ejemplo de la salida 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

Este comando solo muestra el resultado de las tareas que se han completado correctamente o que se han marcado como eliminadas en los últimos 7 días. El filtrado solo admite Name=task-state, Values=active | deleting | deleted | completed

Este comando no admite los siguientes parámetros.

  • [--dry-run]

  • [--no-dry-run]

Cancelar una tarea de importación en un dispositivo de la familia Snow

Para cancelar una tarea de importación, ejecute el comando cancel-import-task.

ejemplo del comando cancel-import-task
aws ec2 cancel-import-task --import-task-id import-task-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
ejemplo de la salida del cancel-import-task comando
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
nota

Solo se pueden cancelar las tareas que no tienen el estado completado.

Este comando no admite los siguientes parámetros.

  • [--dry-run]

  • [--no-dry-run]

Describir las instantáneas en un dispositivo de la familia Snow

Después de importar una instantánea, puede usar este comando para describirla. Para filtrar las instantáneas, puede pasarlas en snapshot-ids con el ID de instantánea de la respuesta de la tarea de importación anterior. Este comando admite la paginación y el filtrado en volume-idstatus, y. start-time

ejemplo del describe-snapshots comando
aws ec2 describe-snapshots --snapshot-ids snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
ejemplo de la salida 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 } ] }

Este comando no admite los siguientes parámetros.

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

  • [--dry-run]

  • [--no-dry-run]

Eliminar una instantánea de un dispositivo de la familia Snow

Para eliminar instantáneas de su propiedad y que ya no necesita, puede usar el comando delete-snapshot.

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

Snowball Edge no admite la eliminación de instantáneas que estén en un PENDINGestado o que estén designadas como dispositivo raíz para un. AMI

Este comando no admite los siguientes parámetros.

  • [--dry-run]

  • [--no-dry-run]

Anular el registro de un dispositivo AMI de la familia Snow

Para anular el registro AMIs que ya no necesita, puede ejecutar el comando. deregister-image Actualmente, no se puede anular el registro de un objeto AMI que esté en estado pendiente.

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

Este comando no admite los siguientes parámetros.

  • [--dry-run]

  • [--no-dry-run]