Création d'une instance sauvegardée en magasin AMI - Amazon Elastic Compute Cloud

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.

Création d'une instance sauvegardée en magasin AMI

Le volume AMI que vous spécifiez lorsque vous lancez votre instance détermine le type de volume du périphérique racine.

Pour créer une instance Linux basée sur le stockageAMI, commencez par une instance que vous avez lancée à partir d'une instance Linux basée sur le stockage d'instance existante. AMI Après avoir personnalisé l'instance en fonction de vos besoins, regroupez le volume et enregistrez-en un nouveauAMI, que vous pourrez utiliser pour lancer de nouvelles instances avec ces personnalisations.

Vous ne pouvez pas créer un système Windows basé sur un magasin d'instances, AMI car Windows AMIs ne prend pas en charge le stockage d'instance pour le périphérique racine.

Important

Seuls les types d'instance suivants prennent en charge un volume de stockage d'instance en tant que périphérique racine et nécessitent une instance sauvegardée AMI : C1, C3, D2, I2, M1, M2, M3, R3 et X1.

Le processus AMI de création est différent pour Amazon EBS -backedAMIs. Pour de plus amples informations, veuillez consulter Créez un compte soutenu EBS par Amazon AMI.

Vue d'ensemble de AMI la création

Le schéma suivant résume le processus de création d'une instance AMI à partir d'une instance sauvegardée en magasin.

Création d'une instance sauvegardée en magasinAMI.

Commencez par lancer une instance à partir d'une AMI instance similaire à celle AMI que vous souhaitez créer. Vous pouvez vous connecter à votre instance et la personnaliser. Lorsque l’instance est configurée comme vous le voulez, vous pouvezen créer un bundle. Le processus de création d’un bundle peut prendre plusieurs minutes. Après la fin du processus, vous avez un groupe qui se compose d’un manifeste d’image (image.manifest.xml) et de fichiers (image.part.xx) contenant un modèle pour le volume racine. Ensuite, vous chargez le bundle dans votre compartiment Amazon S3, puis vous enregistrez votreAMI.

Note

Pour télécharger des objets dans un compartiment S3 pour votre instance Linux basée sur le stockageAMI, vous ACLs devez activer le compartiment. Dans le cas contraire, Amazon ne EC2 sera pas en mesure ACLs de définir les objets à télécharger. Si votre compartiment de destination utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets S3, cela ne fonctionnera pas car ils ACLs sont désactivés. Pour plus d’informations, consultez la section Contrôle de la propriété des objets chargés à l’aide de la propriété de l’objet S3.

Lorsque vous lancez une instance à l'aide du nouveau volumeAMI, nous créons le volume racine de l'instance à l'aide du bundle que vous avez chargé sur Amazon S3. L’espace de stockage utilisé par le bundle dans Amazon S3 entraîne des frais sur votre compte jusqu’à ce que vous le supprimiez. Pour de plus amples informations, veuillez consulter Désenregistrer un Amazon EC2 AMI.

Si vous ajoutez des volumes de stockage d'instance à votre instance en plus du volume du périphérique racine, le mappage des périphériques par blocs pour les nouveaux AMI contient des informations relatives à ces volumes, et les mappages des périphériques par blocs pour les instances que vous lancez à partir du nouveau contiennent AMI automatiquement des informations pour ces volumes. Pour de plus amples informations, veuillez consulter Bloquer les mappages d'appareils pour les volumes sur les instances Amazon EC2.

Prérequis

Avant de pouvoir créer unAMI, vous devez effectuer les tâches suivantes :

  • Installez les AMI outils. Pour de plus amples informations, veuillez consulter Configurer les EC2 AMI outils Amazon.

  • Installez le AWS CLI. Pour plus d’informations, consultez la page Préparation de l’installation de l’ AWS Command Line Interface.

  • Assurez-vous que vous disposez d'un compartiment S3 pour le bundle et que votre compartiment est ACLs activé. Pour plus d'informations sur la configurationACLs, consultez la section Configuration ACLs.

    • Pour créer un compartiment S3 à l'aide de AWS Management Console, ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/et choisissez Create Bucket.

    • Pour créer un compartiment S3 avec le AWS CLI, vous pouvez utiliser la commande mb. Si la version installée des AMI outils est 1.5.18 ou ultérieure, vous pouvez également utiliser la ec2-upload-bundle commande pour créer le compartiment S3. Pour de plus amples informations, veuillez consulter ec2-upload-bundle.

  • Assurez-vous que les fichiers de votre bundle ne sont pas chiffrés dans le compartiment S3. Si vous avez besoin d'un cryptage pour votreAMI, vous pouvez utiliser un EBS -backed à la AMI place. Pour de plus amples informations, veuillez consulter Utiliser le chiffrement avec des AMI basées sur EBS.

  • Assurez-vous d'avoir votre identifiant de AWS compte. Pour plus d'informations, consultez la section Afficher les Compte AWS identifiants dans le Guide de référence AWS sur la gestion des comptes.

  • Assurez-vous de disposer des informations d’identification nécessaires pour utiliser l’ AWS CLI. Pour plus d'informations, consultez la section Meilleures pratiques relatives aux AWS comptes dans le Guide de AWS Account Management référence.

  • Assurez-vous d’avoir un certificat X.509 et la clé privée correspondante.

    • Si vous avez besoin créer un certificat X.509, consultez la section Gérer les certificats de signature. Le certificat X.509 et la clé privée sont utilisés pour chiffrer et déchiffrer votre. AMI

    • [Chine (Pékin)] Utilisez le certificat $EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem.

    • [AWS GovCloud (US-West)] Utilisez le $EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem certificat.

  • Connectez-vous à votre instance et personnalisez-la. Par exemple, vous pouvez installer des logiciels et des applications, copier des données, supprimer des fichiers temporaires et modifier la configuration Linux.

Création et AMI depuis une instance Amazon Linux

Les procédures suivantes décrivent comment créer une instance basée sur le stockage d'instance exécutant Amazon Linux 1 à AMI partir d'une instance. Ils risquent de ne pas fonctionner pour les instances exécutant d'autres distributions Linux.

Pour préparer l'utilisation des AMI outils (HVMinstances uniquement)
  1. Les AMI outils nécessitent GRUB Legacy pour démarrer correctement. Utilisez la commande suivante pour installer GRUB :

    [ec2-user ~]$ sudo yum install -y grub
  2. Installez les packages de gestion de partition à l’aide de la commande suivante :

    [ec2-user ~]$ sudo yum install -y gdisk kpartx parted
Pour créer une AMI instance Amazon Linux sauvegardée dans un magasin d'instance

Cette procédure part du principe que vous avez respecté les prérequis dans Prérequis.

Dans les commandes suivantes, remplacez chaque user input placeholder avec vos propres informations.

  1. Chargez vos informations d’identification sur votre instance. Nous utilisons ces informations d'identification pour garantir que vous et Amazon êtes les seuls à EC2 pouvoir accéder à votreAMI.

    1. Créez un répertoire temporaire sur votre instance pour vos informations d’identification en suivant ce qui suit :

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

      Ceci vous permet d’exclure vos informations d’identification de l’image créée.

    2. Copiez votre certificat X.509 et votre clé privée correspondante depuis votre ordinateur vers le répertoire /tmp/cert de votre instance en utilisant un outil de copie sécurisé tel que scp. L'-i my-private-key.pemoption de la scp commande suivante est la clé privée que vous utilisez pour vous connecter à votre instanceSSH, et non la clé privée X.509. Par exemple :

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem /path/to/cert-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 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00

    Sinon, étant donné qu'il s'agit de fichiers de texte brut, vous pouvez ouvrir le certificat et la clé dans un éditeur de texte et copier leur contenu dans de nouveaux fichiers dans le répertoire /tmp/cert.

  2. Préparez le bundle à charger sur Amazon S3 en exécutant la commande ec2-bundle-vol depuis votre instance. Assurez-vous de spécifier l’option -e pour exclure le répertoire où vos informations d’identification sont stockées. Par défaut, la création d’un bundle exclut les fichiers qui peuvent contenir des informations sensibles. Ces fichiers incluent *.sw, *.swo, *.swp, *.pem, *.priv, *id_rsa*, *id_dsa* *.gpg, *.jks, */.ssh/authorized_keys et */.bash_history. Pour inclure tous ces fichiers, utilisez l’option --no-filter. Pour inclure certains de ces fichiers, utilisez l’option --include.

    Important

    Par défaut, le processus de AMI regroupement crée une collection de fichiers compressés et chiffrés dans le /tmp répertoire qui représente votre volume racine. Si vous n’avez pas suffisamment d’espace disque libre dans /tmp pour stocker le groupe, vous devez spécifier un emplacement différent pour qu’il soit stocké avec l’option -d /path/to/bundle/storage. Certaines instances disposent d'un stockage éphémère installé sur /mnt ou /media/ephemeral0 que vous pouvez utiliser, ou vous pouvez également créer, joindre et monter un nouveau volume EBS (Amazon) pour stocker le bundle. Pour plus d'informations, consultez la section Créer un EBS volume Amazon dans le guide de EBS l'utilisateur Amazon.

    1. Vous devez exécuter la commande ec2-bundle-vol en tant que racine. Pour la plupart des commandes, vous pouvez utiliser sudo afin d’obtenir des autorisations d’un niveau élevé, mais dans ce cas, vous devriez exécuter sudo -E su pour conserver vos variables d’environnement.

      [ec2-user ~]$ sudo -E su

      Notez que l’invite de commande de Bash vous identifie maintenant en tant qu’utilisateur racine, et que le signe dollar a été remplacé par un hashtag, ce qui indique que vous êtes dans un shell racine :

      [root ec2-user]#
    2. Pour créer le AMI bundle, exécutez la ec2-bundle-vol commande comme suit :

      [root ec2-user]# ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 123456789012 -r x86_64 -e /tmp/cert --partition gpt
      Note

      Pour les régions de Chine (Pékin) et AWS GovCloud (ouest des États-Unis), utilisez le --ec2cert paramètre et spécifiez les certificats conformément aux prérequis.

      La création de l’image peut prendre quelques minutes. Lorsque cette commande est terminée, votre répertoire /tmp (ou un répertoire autre que celui par défaut) contient le bundle (image.manifest.xml, plus multiple image.part.xx fichiers).

    3. Quittez le shell racine.

      [root ec2-user]# exit
  3. (Facultatif) Pour ajouter d'autres volumes de stockage d'instance, modifiez les mappages de périphériques par blocs dans le image.manifest.xml fichier correspondant à votreAMI. Pour de plus amples informations, veuillez consulter Bloquer les mappages d'appareils pour les volumes sur les instances Amazon EC2.

    1. Créez une sauvegarde de votre fichier image.manifest.xml.

      [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
    2. Reformatez le fichier image.manifest.xml pour qu’il soit plus facile à lire et à modifier.

      [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
    3. Modifiez les mappages de périphérique de stockage en mode bloc dans image.manifest.xml avec un éditeur de texte. L’exemple ci-dessous montre une nouvelle entrée pour le volume de stockage d’instance ephemeral1.

      Note

      Pour obtenir la liste des fichiers exclus, consultez ec2-bundle-vol.

      <block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping> <mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping> <mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping>
    4. Enregistrez le fichier image.manifest.xml et quittez votre éditeur de texte.

  4. Pour charger votre bundle sur Amazon S3, exécutez la commande ec2-upload-bundle comme suit.

    [ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m /tmp/image.manifest.xml -a your_access_key_id -s your_secret_access_key
    Important

    Pour vous inscrire AMI dans une région autre que l'est des États-Unis (Virginie du Nord), vous devez spécifier à la fois la région cible avec l'--regionoption et un chemin de compartiment qui existe déjà dans la région cible ou un chemin de compartiment unique qui peut être créé dans la région cible.

  5. (Facultatif) Une fois que le groupe est chargé sur Amazon S3, vous pouvez le supprimer du répertoire /tmp sur l'instance en utilisant la commande rm suivante :

    [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
    Important

    Si vous avez spécifié un chemin avec l’option -d /path/to/bundle/storage dans Étape 2, utilisez ce chemin à la place de /tmp.

  6. Pour enregistrer votreAMI, exécutez la commande register-image comme suit.

    [ec2-user ~]$ aws ec2 register-image --image-location amzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI_name --virtualization-type hvm
    Important

    Si vous avez précédemment spécifié une région pour la commande ec2-upload-bundle, spécifiez de nouveau cette région pour cette commande.