VM Import/Export
Guía del usuario

Importación de una VM como una imagen utilizando VM Import/Export

Puede utilizar VM Import/Export para importar imágenes de máquinas virtuales (VM) desde el entorno de virtualización a Amazon EC2 como una imagen de máquina de Amazon (AMI), que puede utilizar para lanzar instancias. Posteriormente, puede exportar las imágenes de VM desde una instancia de nuevo al entorno de virtualización. Esto le permite aprovechar la inversión en las máquinas virtuales que ha construido para responder a los requisitos de conformidad, administración, configuración y seguridad de TI, llevándolas a Amazon EC2.

nota

Para la mayor parte de las necesidades de importación de VM, recomendamos que utilice AWS Server Migration Service. AWS SMS automatiza el proceso de importación (reduciendo la carga de trabajo de migrar grandes infraestructuras de VM), agrega compatibilidad para las actualizaciones incrementales de cambios de VM y convierte las VM importadas en imágenes de máquina de Amazon (AMI) listas para utilizar. Para ver una introducción a AWS SMS, consulte AWS Server Migration Service.

Exportar la máquina virtual desde el entorno de virtualización

Después de preparar la VM para exportarla, puede hacerlo desde el entorno de virtualización. Cuando importe una VM como una imagen, puede importar discos en los siguientes formatos: Open Virtualization Archive (OVA), Virtual Machine Disk (VMDK), Virtual Hard Disk (VHD/VHDX) y sin formato. Con algunos entornos de virtualización, exportará al formato OVF (Open Virtualization Format) que, por lo general, incluye uno o varios archivos VMDK, VHD o VHDX y, a continuación, empaquete los archivos en un archivo OVA.

Consulte la documentación del entorno de virtualización para obtener más información. Por ejemplo:

Importar la VM como una imagen

Después de exportar la VM desde el entorno de virtualización, puede importarla en Amazon EC2. El proceso de importación es el mismo con independencia del origen de la VM.

Requisitos previos

Debe proporcionar un bucket de Amazon S3 y una función de IAM llamada vmimport.

Bucket de Amazon S3

VM Import requiere un bucket de Amazon S3 para almacenar las imágenes de disco en la región en la que desea importar las VM. Puede crear un bucket como sigue o usar uno existente, lo que prefiera.

(Opcional) Para crear un bucket de S3

  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Seleccione la opción Create Bucket.

  3. En el cuadro de diálogo Create a Bucket, haga lo siguiente:

    1. En Bucket Name, escriba un nombre para el bucket. Este nombre debe ser único entre todos los nombres de buckets de Amazon S3. En algunas regiones de , es posible que haya restricciones adicionales para los nombres de los buckets. Para obtener más información, consulte Bucket Restrictions and Limitations en Guía para desarrolladores de Amazon Simple Storage Service.

    2. En Region, seleccione la región que desea para la AMI.

    3. Seleccione Create.

Rol del servicio de VM Import

VM Import requiere que una función realice algunas operaciones en la cuenta, como descargar imágenes de disco de un bucket de Amazon S3. Debe crear un rol llamado vmimport con un documento de política de relación de confianza que permita a VM Import asumir el rol y debe adjuntar una política de IAM al rol.

Para crear el rol de servicio

  1. Cree un archivo denominado trust-policy.json con la política siguiente:

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

    Puede guardar el archivo en cualquier lugar seguro del equipo. Anote la ubicación del archivo porque especificará el archivo en el paso siguiente.

  2. Use el comando create-role para crear un rol llamado vmimport y dar a VM Import/Export acceso. Asegúrese de que especifica la ruta completa a la ubicación del archivo trust-policy.json y que le añade el prefijo file://:

    aws iam create-role --role-name vmimport --assume-role-policy-document "file://trust-policy.json"

    nota

    Si aparece un error que indica que "Esta política contiene Json no válido", compruebe que la ruta al archivo JSON se ha proporcionado correctamente.

  3. Cree un archivo llamado role-policy.json con la política siguiente, donde disk-image-file-bucket es el bucket donde se guardan las imágenes de disco:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::disk-image-file-bucket", "arn:aws:s3:::disk-image-file-bucket/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }
  4. Use el comando put-role-policy siguiente para adjuntar la política al rol creado arriba. Asegúrese de que especifica la ruta completa de la ubicación del archivo role-policy.json.

    aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://role-policy.json"

Para obtener más información sobre las funciones de IAM, consulte Funciones de IAM en la Guía del usuario de IAM.

Carga de la imagen en Amazon S3

Cargue el archivo de imagen de VM en el bucket de Amazon S3 usando una herramienta de carga de su elección. Para obtener información sobre la carga de archivos con la consola de S3, consulte Carga de objetos en Amazon S3. Para obtener información acerca del complemento Enhanced Uploader Java, consulte Using the Enhanced Uploader.

Importar la VM

Después de cargar el archivo de imagen de VM en Amazon S3, puede usar la AWS CLI para importar la imagen. Estas herramientas aceptan el bucket de Amazon S3 y la ruta al archivo o una URL para un archivo público de Amazon S3. Los archivos privados de Amazon S3 requieren una URL GET firmada.

Los siguientes ejemplos utilizan el comando import-image de la AWS CLI para crear tareas de importación.

Ejemplo 1: importar OVA

aws ec2 import-image --description "Windows 2008 OVA" --license-type <value> --disk-containers "file://containers.json"

A continuación se muestra un ejemplo de un archivo containers.json.

[ { "Description": "Windows 2008 OVA", "Format": "ova", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "vms/my-windows-2008-vm.ova" } }]

Ejemple 2: Importar varios discos

$ C:\> aws ec2 import-image --description "Windows 2008 VMDKs" --license-type <value> --disk-containers "file://containers.json"

A continuación se muestra un ejemplo de un archivo containers.json.

[ { "Description": "First disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-windows-2008-vm-disk1.vmdk" } }, { "Description": "Second disk", "Format": "vmdk", "UserBucket": { "S3Bucket": "my-import-bucket", "S3Key": "disks/my-windows-2008-vm-disk2.vmdk" } } ]

Comprobar el estado de la tarea de importación

Use el comando describe-import-image-tasks para devolver el estado de una tarea de importación.

Los valores de estado incluyen lo siguiente:

  • active — Ta tarea de importación esta en curso.

  • deleting — La tarea de importación se está cancelando.

  • deleted — La tarea de importación se ha cancelado.

  • updating — El estado de la importación se está actualizando.

  • validating — La imagen importada se está validando.

  • validated — La imagen importada se ha validado.

  • converting — La imagen importada se está convirtiendo en una AMI.

  • completed — La tarea de importación se ha completado y la AMI está lista para usar.

aws ec2 describe-import-image-tasks --import-task-ids import-ami-abcd1234

También puede utilizar el comando de la CLI de EC2 antiguo ec2 describe-conversion-tasks para lograr el mismo objetivo:

aws ec2 describe-conversion-tasks --region <region>

(Opcional) Cancelar una tarea de importación

Use el comando cancel-import-task para cancelar una tarea de importación activa.

aws ec2 cancel-import-task --import-task-id import-ami-abcd1234

Pasos siguientes

Ahora que tiene una AMI, puede lanzarla como una instancia o copiarla en otra región. Para obtener más información, consulte los siguientes temas en la documentación de Amazon EC2.

nota

Algunos controladores de dispositivos, como los controladores para redes mejoradas de Amazon EC2 y para dispositivos de bloques NVMe en instancias basadas en Nitro, no se instalan automáticamente durante la importación. Si los necesita para su tipo de instancia, debe instalarlos manualmente. Para ello, lance una instancia desde la AMI recién importada, instale los controladores necesarios mediante las instrucciones disponibles en los enlaces específicos del sistema operativo a continuación y, después, cree una nueva AMI en la instancia personalizada.