O EBS suportado pela AMI se torna uma AMI de armazenamento de instância ao migrar entre regiões

1

Estou um pouco confuso aqui. Eu tenho tentado isso há dias, mas não consegui fazê-lo funcionar. Espero que alguém possa lançar alguma luz aqui.

Eu tenho 1 instância (AMI x86_64 da Amazon AMI, EBS backed) em execução na região us-east-1 e queria migrar para a região ap-southeast-1 (usando o bucket S3).

Aqui estão os passos que eu dei:

 1. ec2-bundle-vol \
    -k pk-xxx.pem \
    -u xxx \
    -c cert-xxx.pem

 2. ec2-migrate-manifest \
    -m /tmp/image.manifest.xml \
    -c cert-xxx.pem \
    -k pk-xxx.pem \
    -a xxx \
    -s xxx \
    --region ap-southeast-1

 3. ec2-upload-bundle \
    -b my-sg-bucket \
    -m /tmp/image.manifest.xml \
    -a xxx \
    -s xxx \
    --location ap-southeast-1

 4. ec2-register \
    -K pk-xxx.pem \
    -C cert-xxx.pem \
    --region ap-southeast-1 \
    my-sg-bucket/image.manifest.xml \
    --name my-ami

Tudo estava funcionando bem. Eu sou capaz de ver o recém-criado AMI na região AP. Mas quando tentei criar uma instância com a AMI, não posso escolher 't1.micro' como o tipo de instância. Logo descubro que a AMI é uma AMI de uma loja de instâncias (é estranho que o EBS seja apoiado em primeiro lugar).

Isso me levou a pensar o que fiz de errado aqui para migrar uma instância de backup do EBS para uma região diferente sem alterá-la para a AMI de armazenamento de instância?

Obrigado.

    
por Voon 16.02.2012 / 17:58

2 respostas

2

O problema que você vê é que o comando 'ec2-bundle-vol' é para criar AMIs suportadas pelo S3. Portanto, você pegou sua AMI com backup do EBS - criou, carregou e registrou seu conteúdo como uma AMI com backup do S3 e, em seguida, lançou a AMI com backup do S3 na nova região.

Infelizmente, não há como migrar uma AMI com uma raiz do EBS entre as regiões. Você precisa percorrer o longo caminho.

  • Primeiramente, crie um instantâneo do volume raiz que você deseja migrar
  • Em seguida, inicie uma instância nas regiões de origem e de destino.
    • se você não quiser ter chaves diferentes para as instâncias (já que elas estão em regiões diferentes), importe seu próprio par de chaves primeiro.
  • Crie um volume do EBS a partir do seu instantâneo e anexe-o à instância na sua região de origem.
  • Crie um novo volume (vazio) do EBS na região de destino e anexe à instância que você iniciou lá.
  • Formate o volume do EBS na região de destino com o sistema de arquivos desejado
  • Copie os dados entre os volumes do EBS
    • rsync sobre SSH é provavelmente o caminho a percorrer
  • Crie um instantâneo do novo volume (de destino) do EBS
  • Registre uma AMI com base nesse instantâneo
  • Encerrar as instâncias que você iniciou, quando terminar com elas

Você terá custos para as instâncias, a transferência de dados e a E / S do EBS.

Existe outra opção que pode ser mais adequada às suas necessidades.

AMIs suportadas pelo S3 podem ser baixadas e desmembradas, produzindo uma imagem do disco original - você pode então gravar a imagem no seu volume do EBS, e deve ser bom para ir.

Essencialmente, você executaria os mesmos primeiros passos que já possui:

  • ec2-bundle-vol ...
  • ec2-migrate-manifest ...
  • ec2-upload-bundle ...

Em seguida, na região de destino:

  • Inicie uma nova instância e anexe um volume EBS de tamanho suficiente
    • Você também precisará de espaço livre suficiente na instância para armazenar a imagem temporariamente (o armazenamento efêmero em uma instância pequena deve ser amplo).

  • Faça o download do seu volume incluído para a instância:
    ec2-download-bundle -b BUCKET_NAME -m MANIFEST.xml -d TARGET_DIRECTORY
    • Você também precisa passar seu ACCESS_KEY, SECRET_ACCESS_KEY e PRIVATE_KEY ou definir como variáveis de ambiente.

  • Desvincule o volume:
    ec2-unbundle  -m /local/path/to/manifest.xml -s SOURCE_DIRECTORY -d DESTINATION_DIRECTORY
  • Copiar para o volume do EBS:
    dd if=/path/to/image of=/dev/NAME
por 16.02.2012 / 18:16
2

A migração de instâncias entre regiões não é tão simples quanto se gostaria de pensar, apesar de um problema resolvido:

por 16.02.2012 / 18:16