Converti la tua istanza store-backed in una -backed AMI EBS AMI - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Converti la tua istanza store-backed in una -backed AMI EBS AMI

Puoi convertire un Linux supportato dall'archivio di istanze di tua proprietà in un Linux AMI supportato da AmazonEBS. AMI

Importante

Non puoi convertire un file AMI che non possiedi.

Per convertire un'istanza supportata da un archivio in un'istanza supportata AMI da Amazon EBS AMI
  1. Avvia un'istanza Amazon Linux da un'istanza EBS supportata AMI da Amazon. Per ulteriori informazioni, consulta Avvia un'EC2istanza utilizzando la procedura guidata di avvio dell'istanza nella console. Le istanze Amazon Linux hanno gli AMI strumenti AWS CLI e preinstallati.

  2. Carica la chiave privata X.509 che hai usato per raggruppare l'istanza archiviata nell'istanza. AMI Utilizziamo questa chiave per garantire che solo tu e Amazon EC2 possiate accedere al tuoAMI.

    1. Creare una directory temporanea sull'istanza per la chiave privata X.509, come segue:

      [ec2-user ~]$ mkdir /tmp/cert
    2. Copiare la chiave privata X.509 dal proprio computer nella directory /tmp/cert sull'istanza utilizzando uno strumento di copia protetta come scp. Il my-private-key il parametro nel comando seguente è la chiave privata che usi per connetterti alla tua istanza conSSH. Per esempio:

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/ pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00
  3. Configura le tue variabili ambiente per usare la AWS CLI. Per ulteriori informazioni, consulta Variabili di ambiente.

    1. (Consigliato) Imposta le variabili di ambiente per la chiave di AWS accesso, la chiave segreta e il token di sessione.

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key [ec2-user ~]$ export AWS_SESSION_TOKEN=your_session_token
    2. Imposta le variabili di ambiente per la chiave di AWS accesso e la chiave segreta.

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
  4. Prepara un volume Amazon Elastic Block Store (AmazonEBS) per il tuo nuovo volumeAMI.

    1. Crea un EBS volume vuoto nella stessa zona di disponibilità dell'istanza utilizzando il comando create-volume. Prendere nota dell'ID del volume nell'output del comando.

      Importante

      Questo EBS volume deve avere le stesse dimensioni o essere più grande del volume root dell'instance store originale.

      [ec2-user ~]$ aws ec2 create-volume --size 10 --region us-west-2 --availability-zone us-west-2b
    2. Collega il volume alla tua istanza EBS supportata da Amazon utilizzando il comando attach-volume.

      [ec2-user ~]$ aws ec2 attach-volume --volume-id volume_id --instance-id instance_id --device /dev/sdb --region us-west-2
  5. Creare una cartella per il bundle.

    [ec2-user ~]$ mkdir /tmp/bundle
  6. Scarica il pacchetto per utilizzare il comando per la tua istanza basata su storeAMI. /tmp/bundle ec2-download-bundle

    [ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
  7. Ricostruire il file di immagine dal bundle utilizzando il comando ec2-unbundle.

    1. Cambiare directory nella cartella del bundle.

      [ec2-user ~]$ cd /tmp/bundle/
    2. Esegui il comando ec2-unbundle.

      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
  8. Copia i file dall'immagine disaggregata nel nuovo volume. EBS

    [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
  9. Esaminare il volume cercando eventuali partizioni disaggregate.

    [ec2-user bundle]$ sudo partprobe /dev/sdb1
  10. Elencare i dispositivi a blocchi per individuare il nome del dispositivo da montare.

    [ec2-user bundle]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 202:0 0 8G 0 disk └─/dev/sda1 202:1 0 8G 0 part / /dev/sdb 202:80 0 10G 0 disk └─/dev/sdb1 202:81 0 10G 0 part

    In questo esempio, la partizione da montare è /dev/sdb1, ma il nome del dispositivo probabilmente sarà diverso. Se il volume non è partizionato, il dispositivo da montare sarà simile a /dev/sdb (senza una cifra finale della partizione del dispositivo).

  11. Crea un punto di montaggio per il nuovo EBS volume e monta il volume.

    [ec2-user bundle]$ sudo mkdir /mnt/ebs [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
  12. Apri il /etc/fstab file sul EBS volume con il tuo editor di testo preferito (come vim onano) e rimuovi tutte le voci, ad esempio i volumi di archiviazione (temporanei). Poiché il EBS volume è montato su/mnt/ebs, il fstab file si trova in. /mnt/ebs/etc/fstab

    [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab # LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig 0 2

    In questo esempio, l'ultima riga deve essere rimossa.

  13. Smontare il volume e distaccarlo dall'istanza.

    [ec2-user bundle]$ sudo umount /mnt/ebs [ec2-user bundle]$ aws ec2 detach-volume --volume-id volume_id --region us-west-2
  14. Crea un AMI file dal nuovo EBS volume come segue.

    1. Crea un'istantanea del nuovo EBS volume.

      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id volume_id
    2. Controllare se la snapshot è completa.

      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snapshot_id
    3. Identifica l'architettura del processore, il tipo di virtualizzazione e l'immagine del kernel (aki) utilizzata nell'originale AMI con il comando. describe-images Per questo passaggio è necessario memorizzare l'AMIID dell'istanza originale. AMI

      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-id --output text IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3 ami-8ef297be amazon available public machine aki-fc8f11cc instance-store paravirtual xen

      In questo esempio, l'architettura è x86_64 e l'ID dell'immagine del kernel è aki-fc8f11cc. Utilizzare questi valori nella fase seguente. Se l'output del comando sopra include anche un ID ari, prenderne nota.

    4. Registra il nuovo volume AMI con l'ID snapshot del nuovo EBS volume e i valori del passaggio precedente. Se nell'output del comando precedente è incluso un ID ari, includerlo nel seguente comando con --ramdisk-id ari_id.

      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snapshot_id} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
  15. (Facoltativo) Dopo aver verificato la possibilità di avviare un'istanza dal nuovoAMI, è possibile eliminare il EBS volume creato per questa procedura.

    aws ec2 delete-volume --volume-id volume_id