Funcionamiento del almacenamiento y restauración de AMI - Amazon Elastic Compute Cloud

Funcionamiento del almacenamiento y restauración de AMI

Para almacenar y restaurar una AMI mediante S3, utilice las siguientes API:

  • CreateStoreImageTask – Almacena la AMI en un bucket de S3

  • DescribeStoreImageTasks – Proporciona el progreso de la tarea de almacenamiento de AMI

  • CreateRestoreImageTask – Restaura la AMI desde un bucket de S3

CreateStoreImageTask

La API CreateStoreImageTask almacena una AMI como un único objeto en un bucket de S3.

La API crea una tarea que lee todos los datos de la AMI y sus instantáneas y, a continuación, utiliza una carga multiparte de S3 para almacenar los datos en un objeto S3. La API toma todos los componentes de la AMI, incluida la mayoría de los metadatos AMI no específicos de la región, y todas las instantáneas de EBS contenidas en la AMI, y los empaqueta en un único objeto en S3. Los datos se comprimen como parte del proceso de carga para reducir la cantidad de espacio utilizado en S3, por lo que el objeto en S3 podría ser menor que la suma de los tamaños de las instantáneas en la AMI.

Si hay etiquetas AMI y de instantáneas visibles para la cuenta que llama a esta API, se conservan.

El objeto en S3 tiene el mismo ID que la AMI, pero con una extensión .bin. Los siguientes datos también se almacenan como etiquetas de metadatos S3 en el objeto S3: nombre de AMI, descripción de AMI, fecha de registro de AMI, cuenta de propietario de AMI y una marca de hora para la operación de almacén.

El tiempo que se tarda en completar la tarea depende del tamaño de la AMI. También depende de cuántas otras tareas estén en curso dado que las tareas están en cola. Puede hacer un seguimiento del progreso de la tarea mediante una llamada a la API DescribeStoreImageTasks.

La suma de los tamaños de todas las AMI en curso está limitada a 600 GB de datos de instantáneas de EBS por cuenta. Se rechazará la creación de tareas adicionales hasta que las tareas en curso sean inferiores al límite. Por ejemplo, si se está almacenando una AMI con 100 GB de datos de instantáneas y otra AMI con 200 GB de datos de instantáneas, se aceptará otra solicitud, dado que el total en curso es de 300 GB, que es menor que el límite. Sin embargo, si una sola AMI con 800 GB de datos de instantáneas se está almacenando actualmente, se rechazan otras tareas hasta que se complete la tarea.

DescribeStoreImageTasks

La API DescribeStoreImageTasks describe el progreso de las tareas de almacenamiento de las AMI. Puede describir tareas para AMI especificadas. Si no especifica AMI, obtendrá una lista paginada de todas las tareas de imagen de almacén que se han procesado en los últimos 31 días.

Para cada tarea AMI, la respuesta indica si la tarea es InProgress, Completed o Failed. En el caso de las tareas InProgress, la respuesta muestra un progreso estimado como porcentaje.

Las tareas se enumeran en orden cronológico inverso.

Actualmente, solo se pueden ver las tareas del mes anterior.

CreateRestoreImageTask

La API CreateRestoreImageTask inicia una tarea que restaura una AMI de un objeto de S3 que se creó previamente mediante una solicitud CreateStoreImageTask.

La tarea de restauración se puede realizar en la misma región o en una región diferente en la que se realizó la tarea de almacenamiento.

El bucket de S3 desde el que se restaurará el objeto AMI debe estar en la misma región en la que se solicita la tarea de restauración. La AMI será restaurada en esta Región.

La AMI se restaura con sus metadatos, como el nombre, la descripción y las asignaciones de dispositivos de bloque correspondientes a los valores de la AMI almacenada El nombre debe ser único para las AMI de la región de esta cuenta. Si no proporciona un nombre, la nueva AMI obtiene el mismo nombre que la AMI original. La AMI obtiene un nuevo ID de AMI que se genera en el momento del proceso de restauración.

El tiempo que se tarda en completar la tarea de restauración de la AMI depende del tamaño de la AMI. También depende de cuántas otras tareas estén en curso dado que las tareas están en cola. Puede ver el progreso de la tarea describiendo la AMI (describe-images) o sus instantáneas de EBS (describe-snapshots). Si la tarea falla, la AMI y las instantáneas se mueven a un estado de error.

La suma de los tamaños de todas las AMI en curso está limitada a 300 GB (según el tamaño después de la restauración) de los datos de instantáneas de EBS por cuenta. Se rechazará la creación de tareas adicionales hasta que las tareas en curso sean inferiores al límite.

Rutas de archivo

Puede utilizar las rutas de archivos al almacenar y restaurar las AMI de la siguiente manera:

  • Al almacenar una AMI en S3, la ruta del archivo se puede agregar al nombre del bucket. Internamente, el sistema separa la ruta del nombre del bucket y, a continuación, agrega la ruta a la clave de objeto que se genera para almacenar la AMI. La ruta de objeto completa se muestra en la respuesta de la llamada a la API.

  • Al restaurar la AMI, dado que hay un parámetro de clave de objeto disponible, la ruta se puede agregar al principio del valor de la clave de objeto.

Ejemplo: uso de una ruta de archivo al almacenar y restaurar una AMI (AWS CLI)

En el siguiente ejemplo se almacena primero una AMI en S3, con la ruta de archivo agregada al nombre del bucket. A continuación, en el ejemplo se restaura la AMI desde S3, con la ruta de archivo antepuesta al parámetro de clave de objeto.

Cuando almacene la AMI, especifique la ruta de archivo después del nombre del bucket, de la siguiente manera:

aws ec2 create-store-image-task \ --image-id ami-1234567890abcdef0 \ --bucket amzn-s3-demo-bucket/path1/path2

A continuación, se muestra un ejemplo del resultado.

{ "ObjectKey": "path1/path2/ami-1234567890abcdef0.bin" }

Cuando restaure la AMI, especifique el valor de la salida del paso anterior, que incluye la ruta de archivo.

aws ec2 create-restore-image-task \ --object-key path1/path2/ami-1234567890abcdef0.bin \ --bucket amzn-s3-demo-bucket \ --name "New AMI Name"