

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 AMI supportata da Amazon S3 in una AMI supportata da EBS
<a name="Using_ConvertingS3toEBS"></a>

Puoi convertire un’AMI Linux supportata da Amazon S3 di tua proprietà in un’AMI Linux supportata da Amazon EBS. 

**Importante**  
Non puoi convertire un'AMI che non è di tua proprietà.

**Per convertire un’AMI supportata da Amazon S3 in un’AMI supportata da Amazon EBS**

1. Avviare un'istanza Amazon Linux da un'AMI Amazon EBS-backed. Per ulteriori informazioni, consulta [Avviare un'istanza EC2 tramite la procedura guidata di avvio dell'istanza nella console](ec2-launch-instance-wizard.md). Le istanze Amazon Linux hanno gli strumenti AWS CLI e AMI preinstallati.

1. Carica la chiave privata X.509 che hai utilizzato per raggruppare la tua AMI supportata da Amazon S3 nella tua istanza. Questa chiave serve a garantire l'accesso all'AMI solo da parte dell'utente e da Amazon EC2.

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

      ```
      [ec2-user ~]$ mkdir /tmp/cert
      ```

   1. Copiare la chiave privata X.509 dal proprio computer nella directory `/tmp/cert` sull'istanza utilizzando uno strumento di copia protetta come [scp](linux-file-transfer-scp.md). Il *my-private-key* parametro nel comando seguente è la chiave privata che usi per connetterti alla tua istanza con SSH. 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
      ```

1. Configura le tue variabili ambiente per usare la AWS CLI. Per ulteriori informazioni, consulta [Variabili di ambiente](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).

   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
      ```

   1. 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
      ```

1. Preparare un volume Amazon Elastic Block Store (Amazon EBS) per la nuova AMI.

   1. Creare un volume EBS vuoto nella stessa zona di disponibilità dell'istanza utilizzando il comando [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html). Prendere nota dell'ID del volume nell'output del comando.
**Importante**  
 Questo volume EBS deve essere uguale o maggiore delle dimensioni del volume root instance store originale.

      ```
      aws ec2 create-volume \
          --size 10 \
          --region us-west-2 \
          --availability-zone us-west-2b
      ```

   1. Collegare il volume all'istanza supportata da Amazon EBS utilizzando il comando [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html).

      ```
      aws ec2 attach-volume \
          --volume-id vol-01234567890abcdef \
          --instance-id i-1234567890abcdef0 \
          --region us-west-2
      ```

1. Creare una cartella per il bundle.

   ```
   [ec2-user ~]$ mkdir /tmp/bundle
   ```

1. Scaricare il bundle dell'AMI basata su instance store in `/tmp/bundle` utilizzando il comando [ec2-download-bundle](ami-tools-commands.md#ami-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
   ```

1. Ricostruire il file di immagine dal bundle utilizzando il comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

   1. Cambiare directory nella cartella del bundle.

      ```
      [ec2-user ~]$ cd /tmp/bundle/
      ```

   1. Esegui il comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

      ```
      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
      ```

1. Copiare i file dall'immagine disaggregata nel nuovo volume EBS.

   ```
   [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
   ```

1. Esaminare il volume cercando eventuali partizioni disaggregate.

   ```
   [ec2-user bundle]$ sudo partprobe /dev/sdb1
   ```

1. 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).

1. Creare un punto di montaggio per il nuovo volume EBS e montare il volume.

   ```
   [ec2-user bundle]$ sudo mkdir /mnt/ebs
   [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
   ```

1. Aprire il file `/etc/fstab` sul volume EBS con l'editor di testo preferito (ad esempio **vim** o **nano**) e rimuovere tutte le voci dei volumi instance store (temporanei). Poiché il volume EBS è montato su `/mnt/ebs`, il file `fstab` 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.

1. Smontare il volume e distaccarlo dall'istanza.

   ```
   [ec2-user bundle]$ sudo umount /mnt/ebs
   [ec2-user bundle]$ aws ec2 detach-volume --volume-id vol-01234567890abcdef --region us-west-2
   ```

1. Creare un'AMI dal nuovo volume EBS come segue:

   1. Creare uno snapshot del nuovo volume EBS.

      ```
      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id vol-01234567890abcdef
      ```

   1. Controllare se la snapshot è completa.

      ```
      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snap-0abcdef1234567890
      ```

   1. Identificare l'architettura del processore, il tipo di virtualizzazione e l'immagine del kernel (`aki`) utilizzati sull'AMI originale tramite il comando **describe-images**. Per questa fase è necessario l’ID AMI dell’AMI originale supportato da Amazon S3.

      ```
      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-0abcdef1234567890 --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.

   1. Registrare la nuova AMI con l'ID dello snapshot del nuovo volume EBS e i valori della fase 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=snap-0abcdef1234567890} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
      ```

1. (Facoltativo) Dopo avere verificato di poter avviare un'istanza dalla nuova AMI, è possibile eliminare il volume EBS creato per questa procedura.

   ```
   aws ec2 delete-volume --volume-id vol-01234567890abcdef
   ```