

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Conversion de votre AMI basée sur Amazon S3 en AMI basée sur Amazon EBS
<a name="Using_ConvertingS3toEBS"></a>

Vous pouvez convertir une image AMI Linux basée sur Amazon S3 que vous possédez en une image AMI Linux basée sur Amazon EBS. 

**Important**  
Vous ne pouvez pas convertir une AMI dont vous n’êtes pas le propriétaire.

**Pour convertir une AMI basée sur Amazon S3 en une AMI basée sur Amazon EBS**

1. Lancez une instance Amazon Linux à partir d’une AMI basée sur des volumes Amazon EBS. Pour de plus amples informations, veuillez consulter [Lancez une instance EC2 à l’aide de l’assistant de lancement d’instance de la console](ec2-launch-instance-wizard.md). Les outils AWS CLI et AMI sont préinstallés sur les instances Amazon Linux.

1. Chargez la clé privée X.509 que vous avez utilisée pour grouper votre AMI basée sur Amazon S3 vers votre instance. Nous utilisons cette clé pour garantir que seuls vous et Amazon EC2 peuvent accéder à votre AMI.

   1. Créez un répertoire temporaire sur votre instance pour votre clé privée X.509 en suivant ce qui suit :

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

   1. Copiez votre clé privée X.509 depuis votre ordinateur vers le répertoire `/tmp/cert` de votre instance en utilisant un outil de copie sécurisé comme [scp](linux-file-transfer-scp.md). Le *my-private-key* paramètre de la commande suivante est la clé privée que vous utilisez pour vous connecter à votre instance via SSH. Par exemple :

      ```
      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. Configurez vos variables d’environnement pour utiliser l’ AWS CLI. Pour plus d’informations, consultez la section [Variables d’environnement](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).

   1. (Recommandé) Définissez des variables d'environnement pour votre clé AWS d'accès, votre clé secrète et votre jeton de session.

      ```
      [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. Définissez des variables d'environnement pour votre clé AWS d'accès et votre clé secrète.

      ```
      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id
      [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
      ```

1. Préparer un volume Amazon Elastic Block Store (Amazon EBS) pour votre nouvelle AMI.

   1. Créez un volume EBS vide dans la même zone de disponibilité que votre instance à l’aide de la commande [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html). Notez l’ID du volume dans la sortie de la commande.
**Important**  
 Ce volume EBS doit avoir la même taille ou une taille plus importante que le volume racine de stockage d’instance original.

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

   1. Attachez le volume à votre instance basée sur Amazon EBS en utilisant la commande [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. Créez un dossier pour votre groupe.

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

1. Téléchargez le groupe pour votre AMI basée sur le stockage d’instance sur `/tmp/bundle` en utilisant la commande [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. Reconstituez le fichier image à partir du groupe en utilisant la commande [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

   1. Déplacez les répertoires vers le dossier du groupe.

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

   1. Exécutez la commande [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

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

1. Copiez les fichiers depuis l’image dégroupée vers le nouveau volume EBS.

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

1. Examinez le volume pour voir si de nouvelles partitions ont été dégroupées.

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

1. Affichez les périphériques de stockage en mode bloc pour trouver le nom du périphérique à monter.

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

   Dans cet exemple, la partition à monter est `/dev/sdb1`, mais le nom de votre périphérique sera probablement différent. Si votre volume n’est pas partitionné, l’appareil à monter sera similaire à `/dev/sdb` (sans chiffre de fin de partition de périphérique).

1. Créez un point de montage pour le nouveau volume EBS et montez le volume.

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

1. Ouvrez le fichier `/etc/fstab` sur le volume EBS avec votre éditeur de texte préféré (comme **vim** ou **nano**) et supprimez toutes les entrées pour les volumes (éphémères) de stockage d’instance. Étant donné que le volume EBS est monté sur `/mnt/ebs`, le fichier `fstab` se situe à l’emplacement `/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
   ```

   Dans cet exemple, la dernière ligne devrait être supprimée.

1. Démontez le volume et détachez-le de l’instance.

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

1. Créez une AMI à partir du nouveau volume EBS comme suit.

   1. Créez un instantané du nouveau volume EBS.

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

   1. Vérifiez si votre instantané est terminé.

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

   1. Identifiez l’architecture de processeur, le type de virtualisation et l’image noyau (`aki`) utilisée sur l’AMI originale avec la commande **describe-images**. Pour cette étape, vous avez besoin de l’ID de l’AMI basée sur Amazon S3 d’origine.

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

      Dans cet exemple, l’architecture est `x86_64` et l’ID de l’image noyau est `aki-fc8f11cc`. Utilisez ces valeurs dans l’étape suivante. Si le résultat de la commande ci-dessus liste aussi un ID `ari`, prenez également note de cela.

   1. Enregistrez votre nouvelle AMI avec l’ID d’instantané de votre nouveau volume EBS et les valeurs de l’étape précédente. Si la sortie de la commande précédente a répertorié un ID `ari`, incluez-le dans la commande suivante avec `--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. (Facultatif) Après avoir vérifié que vous pouvez lancer une instance à partir de votre nouvelle AMI, vous pouvez supprimer le volume EBS que vous avez créé pour cette procédure.

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