Importando uma imagem de máquina virtual para um dispositivo da família Snow - AWS Snowball Edge Guia do desenvolvedor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Importando uma imagem de máquina virtual para um dispositivo da família Snow

Você pode usar o AWS CLI e o serviço VM Import/Export para importar uma imagem de máquina virtual (VM) para o dispositivo da família Snow como uma Amazon Machine Image (). AMI Depois de importar uma imagem de VM, registre a imagem como uma AMI e inicie-a como uma instância compatível com a AmazonEC2.

Você pode adicionar AMIs da Amazon EC2 ao dispositivo ao criar um trabalho para solicitar um dispositivo Snow Family. Use esse procedimento depois de receber o dispositivo Snow Family. Para obter mais informações, consulte Escolhendo suas opções de computação e armazenamento.

Você também pode usar AWS OpsHub para carregar o arquivo de imagem da VM. Para obter mais informações, consulte Importar uma imagem para o seu dispositivo como EC2 compatível com a Amazon AMI neste guia.

Etapa 1: Prepare a imagem da VM e faça o upload para o dispositivo da família Snow

Prepare a imagem da VM exportando uma imagem da VM de uma Amazon EC2 AMI ou instância Nuvem AWS usando o VM Import/Export ou gerando a imagem da VM localmente usando a plataforma de virtualização de sua escolha.

Para exportar uma EC2 instância da Amazon como uma imagem de VM usando o VM Import/Export, consulte Exportar uma instância como uma VM usando o VM Import/Export no Guia do usuário do VM Import/Export. Para exportar uma Amazon EC2 AMI como imagem de VM usando o VM Import/Export, consulte Exportar uma VM diretamente de uma imagem de máquina da Amazon AMI () no Guia do usuário do VM Import/Export.

Se estiver gerando uma imagem de VM do seu ambiente local, certifique-se de que a imagem esteja configurada para uso como um AMI dispositivo da família Snow. Talvez seja necessário configurar os itens a seguir, dependendo do seu ambiente.

  • Configure e atualize o sistema operacional.

  • Defina um nome de host.

  • Certifique-se de que o protocolo de horário da rede (NTP) esteja configurado.

  • Inclua chaves SSH públicas, se necessário. Faça cópias locais dos pares de chaves. Para obter mais informações, consulte Como usar SSH para se conectar às suas instâncias de computação em um Snowball Edge.

  • Instale e configure qualquer software que você usará no dispositivo Snow Family.

nota

Esteja ciente das seguintes limitações ao preparar um instantâneo de disco para um dispositivo da família Snow.

  • Atualmente, os dispositivos da família Snow suportam apenas a importação de instantâneos que estão no formato de RAW imagem.

  • No momento, os dispositivos da Família Snow são compatíveis apenas com a importação de snapshots de 1 GB a 1 TB.

Fazer upload de uma imagem de VM para um bucket Amazon S3 no dispositivo da família Snow

Depois de preparar uma imagem de VM, carregue-a em um bucket S3 no dispositivo ou cluster da família Snow. Você pode usar o adaptador S3 ou o armazenamento compatível com Amazon S3 nos dispositivos da família Snow para fazer o upload do snapshot.

Para carregar a imagem da máquina virtual usando o adaptador S3
  • Use o cp comando para copiar o arquivo de imagem da VM em um bucket no dispositivo.

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

    Para obter mais informações, consulte AWS CLI Comandos compatíveis neste guia.

Para carregar a imagem da VM usando armazenamento compatível com Amazon S3 em dispositivos da família Snow
  • Use o put-object comando para copiar o arquivo de snapshot em um bucket no 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 obter mais informações, consulte Trabalho com objetos do S3 em um dispositivo Snowball Edge.

Etapa 2: Configurar as permissões necessárias no dispositivo Snow Family

Para que a importação seja bem-sucedida, você deve configurar permissões para o VM Import/Export no dispositivo da família Snow, na Amazon EC2 e no usuário.

nota

Os perfis de serviço e as políticas de serviço que concedem essas permissões estão localizados no dispositivo da Família Snow.

Permissões necessárias para importar/exportar VM em um dispositivo da família Snow

Antes de iniciar o processo de importação, você deve criar uma IAM função com uma política de confiança que permita que o VM Import/Export no dispositivo da família Snow assuma a função. Permissões adicionais são concedidas à função para permitir que o VM Import/Export no dispositivo acesse a imagem armazenada no bucket do S3 no dispositivo.

Criar um arquivo json de política de confiança

Veja a seguir um exemplo de política de confiança que deve ser anexada ao perfil para que o VM Import/Export possa acessar o snapshot que precisa ser importado do bucket do S3.

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

Criar um perfil com o arquivo json da política de confiança

O nome do perfil pode ser vmimport. É possível alterá-lo usando a opção --role-name no 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

Veja um exemplo de saída do 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" } }

Criar uma política para a função

O exemplo de política a seguir tem as permissões mínimas necessárias para acessar o Amazon S3. Altere o nome do bucket do Amazon S3 para aquele que tem as imagens. Para um dispositivo Snowball Edge independente, altere snow-id para o seu ID de trabalho. Para um cluster de dispositivos, altere snow-id para o ID do cluster. Também é possível usar prefixos para restringir ainda mais o local de onde o VM Import/Export pode importar snapshots. Crie um arquivo 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/*" ] } ] }

Crie uma política com o arquivo 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

Veja a seguir um exemplo de saída do 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" } }

Anexar a política ao perfil

Anexe uma política ao perfil anterior e conceda permissões para acessar os recursos necessários. Isso permite que o serviço local VM Import/Export baixe o snapshot do Amazon S3 no 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

Permissões exigidas pelo chamador em um dispositivo Snow Family

Além da função a ser assumida pela Importação/Exportação da VM do Snowball Edge, você também deve garantir que o usuário tenha as permissões para a qual ele possa passar a função. VMIE Se você usar o usuário raiz padrão para realizar a importação, o qual já tem todas as permissões necessárias, poderá ignorar esta etapa e ir para a 3.

Anexe as duas IAM permissões a seguir ao usuário que está fazendo a importação.

  • pass-role

  • get-role

Criar uma política para a função

Veja a seguir um exemplo de política que permite que um usuário execute as pass-role ações get-role e para a IAM função.

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

Crie uma política com o arquivo 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

Veja a seguir um exemplo de saída do 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" } }

Depois que a política for gerada, anexe a política aos IAM usuários que chamarão a Amazon EC2 API ou a CLI operação para importar o snapshot.

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

Permissões necessárias para ligar para a Amazon EC2 APIs em um dispositivo Snow Family

Para importar um instantâneo, o IAM usuário deve ter as ec2:ImportSnapshot permissões. Se não for necessário restringir o acesso ao usuário, você pode usar as ec2:* permissões para conceder EC2 acesso total à Amazon. A seguir estão as permissões que podem ser concedidas ou restringidas para a Amazon EC2 em seu dispositivo. Crie um arquivo de política com o conteúdo mostrado:

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

Crie uma política com o arquivo 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

Veja a seguir um exemplo de saída do 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" } }

Depois que a política for gerada, anexe a política aos IAM usuários que chamarão a Amazon EC2 API ou a CLI operação para importar o snapshot.

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

Etapa 3: importar a imagem da VM como um instantâneo no dispositivo da família Snow

A próxima etapa é importar a imagem da VM como um instantâneo no dispositivo. O valor do S3Bucket parâmetro é o nome do bucket que contém a imagem da VM. O valor do S3Key parâmetro é o caminho para o arquivo de imagem da VM nesse bucket.

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 obter mais informações, consulte import-snapshot na Referência de Comandos. AWS CLI

Esse comando não é compatível com as opções a seguir.

  • [--client-data value]

  • [--client-token value]

  • [--dry-run]

  • [--no-dry-run]

  • [--encrypted]

  • [--no-encrypted]

  • [--kms-key-id value]

  • [--tag-specifications value]

exemplo saída do import-snapshot comando
{ "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

Atualmente, os dispositivos da família Snow permitem que apenas uma tarefa de importação ativa seja executada por vez, por dispositivo. Para iniciar uma nova tarefa de importação, aguarde a conclusão da tarefa atual ou selecione outro nó disponível em um cluster. Também é possível optar por cancelar a importação atual, se desejar. Para evitar atrasos, não reinicie o dispositivo Snow Family enquanto a importação estiver em andamento. Se você reinicializar o dispositivo, a importação falhará e o andamento será excluído quando o dispositivo estiver acessível. Para conferir o status de importação do snapshot, use o seguinte comando:

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

Etapa 4: registrar o instantâneo como um AMI dispositivo da família Snow

Quando a importação do snapshot para o dispositivo for bem-sucedida, você poderá registrá-lo com o comando register-image.

nota

Você só pode registrar um AMI quando todos os seus instantâneos estiverem disponíveis.

Para obter mais informações, consulte register-image na Referência de AWS CLI Comandos.

exemplo do register-image comando
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

Veja a seguir um exemplo de mapeamento de dispositivos de blocosJSON. Para obter mais informações, consulte o block-device-mapping parâmetro de register-image na Referência de AWS CLI Comandos.

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

Etapa 5: executar uma instância a partir do dispositivo AMI on the Snow Family

Para iniciar uma instância, consulte run-instances na Referência de AWS CLI comandos.

O valor do image-id parâmetro é o valor do ImageId nome como saída do 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

Você também pode usar AWS OpsHub para iniciar a instância. Para obter mais informações, consulte Lançamento de uma instância EC2 compatível com a Amazon neste guia.

AMIAções adicionais para um dispositivo da família Snow

Você pode usar AWS CLI comandos adicionais para monitorar o status de importação de instantâneos, obter detalhes sobre instantâneos que foram importados, cancelar a importação de um instantâneo e excluir ou cancelar o registro de instantâneos após a importação.

Monitorando o status de importação de instantâneos em um dispositivo da família Snow

Para ver o estado atual do progresso da importação, você pode executar o EC2 describe-import-snapshot-tasks comando Amazon. Esse comando suporta paginação e filtragem no. task-state

exemplo do describe-import-snapshot-tasks comando
aws ec2 describe-import-snapshot-tasks --import-task-ids id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
exemplo da saída describe-import-snapshot-tasks do 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

Esse comando mostra somente a saída de tarefas que foram concluídas com êxito ou que foram marcadas como excluídas nos últimos 7 dias. A filtragem é compatível apenas com Name=task-state e Values=active | deleting | deleted | completed.

Esse comando não é compatível com os parâmetros a seguir.

  • [--dry-run]

  • [--no-dry-run]

Cancelamento de uma tarefa de importação em um dispositivo da família Snow

Para cancelar uma tarefa de importação, execute o comando cancel-import-task.

exemplo do cancel-import-task comando
aws ec2 cancel-import-task --import-task-id import-task-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
exemplo da saída cancel-import-task do comando
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
nota

Somente tarefas não concluídas podem ser canceladas.

Esse comando não é compatível com os parâmetros a seguir.

  • [--dry-run]

  • [--no-dry-run]

Descrevendo instantâneos em um dispositivo da família Snow

Após a importação de um snapshot, é possível usar esse comando para descrevê-lo. Para filtrar os snapshots, é possível transmiti-los em snapshot-ids com o ID do snapshot da resposta da tarefa de importação anterior. Esse comando oferece suporte à paginação e ao filtro em volume-idstatus, e. start-time

exemplo de describe-snapshots comando
aws ec2 describe-snapshots --snapshot-ids snapshot-id --profile profile-name --endpoint http://snowball-ip:8008 --region snow
exemplo da saída describe-snapshots do 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 } ] }

Esse comando não é compatível com os parâmetros a seguir.

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

  • [--dry-run]

  • [--no-dry-run]

Excluindo um instantâneo de um dispositivo da família Snow

Para remover snapshots desnecessários, é possível usar o comando delete-snapshot.

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

O Snowball Edge não suporta a exclusão de instantâneos que estão em um PENDINGestado ou se ele foi designado como dispositivo raiz para um. AMI

Esse comando não é compatível com os parâmetros a seguir.

  • [--dry-run]

  • [--no-dry-run]

Cancelando o registro AMI em um dispositivo da família Snow

Para cancelar o registro AMIs que você não precisa mais, você pode executar o deregister-image comando. O cancelamento do registro de um AMI que está no estado Pendente não é suportado no momento.

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

Esse comando não é compatível com os parâmetros a seguir.

  • [--dry-run]

  • [--no-dry-run]