Como o armazenamento e a restauração de uma AMI funciona
Para armazenar e restaurar uma AMI usando o S3, use as seguintes APIs:
-
CreateStoreImageTask
– Armazena a AMI em um bucket do S3 -
DescribeStoreImageTasks
– Fornece o andamento da tarefa de armazenamento da AMI -
CreateRestoreImageTask
– Restaura a AMI de um bucket do S3
Como as APIs funcionam
CreateStoreImageTask
A API CreateStoreImageTask
armazena uma AMI como um único objeto em um bucket do S3.
A API cria uma tarefa que lê todos os dados da AMI e seus snapshots e, a seguir, usa um multipart upload do S3 para armazenar os dados em um objeto do S3. A API leva todos os componentes da AMI, incluindo a maioria dos metadados de AMI não específicos da região e todos os snapshots do EBS contidos na AMI, e os empacota em um único objeto no S3. Os dados são compactados como parte do processo de upload para reduzir a quantidade de espaço usado no S3; portanto, o objeto no S3 pode ser menor do que a soma dos tamanhos dos snapshots na AMI.
Se houver tags de AMI e de snapshot visíveis para a conta chamando essa API, elas serão preservadas.
O objeto no S3 tem o mesmo ID que a AMI, mas com uma extensão .bin
. Os dados a seguir também são armazenados como tags de metadados do S3 no objeto do S3: nome da AMI, descrição da AMI, data de registro da AMI, conta de proprietário da AMI e um timestamp para a operação de armazenamento.
O tempo necessário para concluir a tarefa depende do tamanho da AMI. Também depende de quantas outras tarefas estão em andamento porque as tarefas estão em fila. É possível acompanhar o andamento da tarefa chamando a API DescribeStoreImageTasks
.
A soma dos tamanhos de todas as AMIs em andamento é limitada a 600 GB de dados de snapshot do EBS por conta. A criação de tarefas adicionais será rejeitada até que as tarefas em andamento sejam inferiores ao limite. Por exemplo, se uma AMI com 100 GB de dados de snapshot e outra AMI com 200 GB de dados de snapshot estiverem sendo armazenadas no momento, outra solicitação será aceita, pois o total em andamento é de 300 GB, que é inferior ao limite. Mas se uma única AMI com 800 GB de dados de snapshot estiver sendo armazenada no momento, outras tarefas serão rejeitadas até que a tarefa seja concluída.
DescriboesToreImageTasks
A API DescribeStoreImageTasks
descreve o andamento das tarefas de armazenamento de uma AMI. É possível descrever tarefas para AMIs especificadas. Se você não especificar AMIs, receberá uma lista paginada de todas as tarefas de imagem de armazenamento que foram processadas nos últimos 31 dias.
Para cada tarefa de AMI, a resposta indica se a tarefa é InProgress
Completed
ou Failed
. Para tarefas InProgress
, a resposta mostra um andamento estimado como uma porcentagem.
As tarefas são listadas em ordem cronológica inversa.
No momento, somente as tarefas do mês anterior podem ser visualizadas.
CreateRestoreImageTask
A API CreateRestoreImageTask
inicia uma tarefa que restaura uma AMI de um objeto do S3 que foi criado anteriormente usando uma solicitação CreateStoreImageTask
.
A tarefa de restauração pode ser executada na mesma região ou em uma região diferente daquela em que a tarefa de armazenamento foi executada.
O bucket do S3 a partir do qual o objeto da AMI será restaurado deve estar na mesma região em que a tarefa de restauração é solicitada. A AMI será restaurada nessa região.
A AMI é restaurada com seus metadados, como o nome, a descrição e os mapeamentos de dispositivos de blocos correspondentes aos valores da AMI armazenada. O nome deve ser exclusivo para AMIs na região dessa conta. Se você não fornecer um nome, a nova AMI obterá o mesmo nome da AMI original. A AMI obtém um novo ID de AMI que é gerado no momento do processo de restauração.
O tempo necessário para a conclusão da tarefa de restauração da AMI depende do tamanho da AMI. Também depende de quantas outras tarefas estão em andamento porque as tarefas estão em fila. É possível visualizar o andamento da tarefa descrevendo a AMI (describe-images) ou seus snapshots do EBS (describe-snapshots). Se a tarefa falhar, a AMI e os snapshots serão movidos para um estado com falha.
A soma dos tamanhos de todas as AMIs em andamento é limitada a 300 GB (com base no tamanho após a restauração) dos dados de snapshot do EBS por conta. A criação de tarefas adicionais será rejeitada até que as tarefas em andamento sejam inferiores ao limite.
Caminhos do arquivo
É possível usar caminhos de arquivo ao armazenar e restaurar AMIs, da seguinte forma:
-
Ao armazenar uma AMI no S3, o caminho do arquivo pode ser adicionado ao nome do bucket. Internamente, o sistema separa o caminho do nome do bucket e, em seguida, adiciona o caminho à chave do objeto que é gerada para armazenar a AMI. O caminho completo do objeto é mostrado na resposta da chamada de API.
-
Ao restaurar a AMI, como um parâmetro de chave de objeto está disponível, o caminho pode ser adicionado ao início do valor da chave do objeto.
Exemplo: use um caminho de arquivo ao armazenar e restaurar uma AMI (AWS CLI)
O exemplo a seguir primeiro armazena uma AMI no S3, com o caminho do arquivo anexado ao nome do bucket. O exemplo restaura então a AMI do S3, com o caminho do arquivo anexado ao parâmetro da chave do objeto.
Ao armazenar a AMI, especifique o caminho do arquivo após o nome do bucket, da seguinte forma:
aws ec2 create-store-image-task \ --image-id
ami-1234567890abcdef0
\ --bucketamzn-s3-demo-bucket/path1/path2
O seguinte é um exemplo de saída.
{ "ObjectKey": "
path1/path2/ami-1234567890abcdef0
.bin" }
Ao restaurar a AMI, especifique o valor da saída na etapa anterior, o que inclui o caminho do arquivo.
aws ec2 create-restore-image-task \ --object-key
path1/path2/ami-1234567890abcdef0
.bin \ --bucketamzn-s3-demo-bucket
\ --name "New AMI Name
"