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 AMI basée sur Amazon S3
L’AMI que vous spécifiez au lancement de votre instance détermine le type de volume racine.
Pour créer une AMI basée sur Amazon S3, démarrez à partir d’une instance que vous avez lancée depuis une AMI Linux existante basée sur Amazon S3. Après avoir personnalisé l’instance pour répondre à vos besoins, créez un bundle du volume et inscrivez une nouvelle AMI que vous pouvez utiliser pour lancer de nouvelles instances avec ces personnalisations.
Vous ne pouvez pas créer une AMI Windows basée sur Amazon S3, car les AMI Windows ne prennent pas en charge le stockage d’instances pour le volume racine.
Important
Seuls les types d’instance suivants prennent en charge un volume de stockage d’instances en tant que volume racine et nécessitent une AMI basée sur Amazon S3 : C1, C3, D2, I2, M1, M2, M3, R3 et X1.
Le processus de création de l’AMI est différent de celui des AMI basées sur les volumes Amazon EBS. Pour de plus amples informations, consultez Créer une AMI basée sur Amazon EBS.
Table des matières
Aperçu de la création d’une AMI
Le diagramme suivant résume le processus de création d’une AMI à partir d’une instance avec un volume racine de stockage d’instance.
Tout d’abord, lancez une instance depuis une AMI qui est similaire à l’AMI que vous souhaiteriez 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 inscrivez votre AMI.
Note
Afin de charger des objets vers un compartiment S3 pour votre AMI Linux basée sur Amazon S3, les listes de contrôle d’accès (ACL) doivent être activées pour le compartiment. Sinon, Amazon EC2 ne sera pas en mesure de définir des listes ACL sur les objets à charger. Si votre compartiment de destination utilise le paramètre appliqué par le propriétaire du compartiment pour la propriété de l’objet S3 (S3 Object Ownership), cela ne fonctionnera pas car les listes de contrôle d’accès sont désactivées. Pour plus d’informations, consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.
Lorsque vous lancez une instance à l’aide de la nouvelle AMI, nous créons le volume racine pour l’instance avec le 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, consultez Annuler l’inscription d’une AMI Amazon EC2.
Si vous ajoutez des volumes de stockage d’instance à votre instance en plus du volume racine, le mappage de périphérique de stockage en mode bloc pour la nouvelle AMI contient des informations pour ces volumes et les mappages de périphérique de stockage en mode bloc pour les instances que vous lancez depuis la nouvelle AMI contient automatiquement des informations pour ces volumes. Pour de plus amples informations, consultez Bloquer les mappages d'appareils pour les volumes sur les instances Amazon EC2.
Prérequis
Avant de créer un AMI, vous devez terminer les tâches suivantes :
-
Installez les outils AMI. Pour plus d’informations, consultez Configurer les outils AMI Amazon EC2.
-
Installez la AWS CLI. Pour plus d'informations, consultez Démarrer avec le AWS CLI.
-
Assurez-vous d’avoir un compartiment S3 pour la solution groupée et que les ACL sont activées dans votre compartiment. Pour plus d’informations sur la configuration des ACL, consultez Configuration des listes ACL.
-
Pour créer un compartiment S3 à l’aide d’AWS Management Console, ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/
et choisissez Créer un compartiment. -
Pour créer un compartiment S3 avec la AWS CLI, vous pouvez utiliser la commande mb. Si la version installée des outils AMI est la version 1.5.18 ou toute autre version ultérieure, vous pouvez également utiliser la commande
ec2-upload-bundlepour créer le compartiment S3. Pour de plus amples informations, consultez ec2-upload-bundle.
-
-
Assurez-vous que les fichiers de votre offre groupée ne sont pas cryptés dans le compartiment S3. Si vous avez besoin d’un chiffrement pour votre AMI, vous pouvez utiliser une AMI basée sur EBS à la place. Pour de plus amples informations, consultez Utiliser le chiffrement avec des AMI basées sur EBS.
-
Assurez-vous d’avoir un ID de compte AWS. Pour plus d’informations, consultez la section Afficher les identifiants Compte AWS dans le Guide de référence de la gestion de compte AWS.
-
Assurez-vous de disposer des informations d’identification nécessaires pour utiliser l’AWS CLI. Pour plus d’informations, consultez la section Authentification et contrôle d’accès pour l’AWS CLI dans le Guide de l’utilisateur AWS Command Line Interface.
-
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 certificat
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem.
-
-
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éer une AMI à partir d’une instance Amazon Linux
Les procédures suivantes décrivent comment créer une AMI à partir d’une instance avec un volume racine de stockage d’instance exécutant Amazon Linux 1. Elles peuvent ne pas fonctionner pour les instances exécutant d’autres distributions Linux.
Pour se préparer à utiliser les outils AMI (instances HVM uniquement)
-
Les outils AMI ont besoin de GRUB Legacy pour démarrer correctement. Utilisez la commande suivante pour installer GRUB :
[ec2-user ~]$sudo yum install -y grub -
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 à partir d’une instance Amazon Linux avec un volume racine de stockage d’instance
Cette procédure part du principe que vous avez respecté les prérequis dans Prérequis.
Dans les commandes suivantes, remplacez chaque espace réservé pour l’entrée utilisateur par vos propres informations.
-
Chargez vos informations d’identification sur votre instance. Nous utilisons ces informations d’identification pour garantir que seuls vous et Amazon EC2 peuvent accéder à votre AMI.
-
Créez un répertoire temporaire sur votre instance pour vos informations d’identification en suivant ce qui suit :
[ec2-user ~]$mkdir /tmp/certCeci vous permet d’exclure vos informations d’identification de l’image créée.
-
Copiez votre certificat X.509 et votre clé privée correspondante depuis votre ordinateur vers le répertoire
/tmp/certde votre instance en utilisant un outil de copie sécurisé tel que scp. L’option-ide la commande scp suivante est la clé privée que vous utilisez pour vous connecter à votre instance avec SSH, et non la clé privée X.509. Exemples :my-private-key.pemyou@your_computer:~ $scp -imy-private-key.pem/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem/path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pemec2-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. -
-
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
-epour 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_keyset*/.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 création d’un bundle d’AMI génère un ensemble de fichiers compressés et chiffrés dans le répertoire
/tmpqui représente le volume racine. Si vous n’avez pas suffisamment d’espace disque libre dans/tmppour stocker le groupe, vous devez spécifier un emplacement différent pour qu’il soit stocké avec l’option-d. Certaines instances disposent d’un stockage éphémère monté à/path/to/bundle/storage/mntou/media/ephemeral0que vous pouvez utiliser, ou vous pouvez également créer, joindre et monter un nouveau volume Amazon EBS) afin de stocker l’offre groupé. Pour plus d’informations, consultez la section Créer un volume Amazon EBS dans le Guide de l’utilisateur Amazon EBS.-
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 suNotez 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]#
-
Pour créer le bundle AMI, exécutez la commande ec2-bundle-vol comme suit :
[root ec2-user]#ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem-c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem-u123456789012-r x86_64 -e /tmp/cert --partitiongptNote
Pour les régions Chine (Pékin) et AWS GovCloud (US-West), utilisez le paramètre
--ec2certet spécifiez les certificats en fonction des conditions préalables.La création de l’image peut prendre quelques minutes. Lorsque cette commande se termine, le répertoire
/tmp(ou votre répertoire personnalisé) contient le groupe (image.manifest.xml, ainsi que plusieurs fichiersimage.part.xx). -
Quittez le shell racine.
[root ec2-user]#exit
-
-
(Facultatif) Pour ajouter davantage de volumes de stockage d’instance, modifiez les mappages de périphérique de stockage en mode bloc dans le fichier
image.manifest.xmlpour votre AMI. Pour plus d’informations, consultez Bloquer les mappages d'appareils pour les volumes sur les instances Amazon EC2.-
Créez une sauvegarde de votre fichier
image.manifest.xml.[ec2-user ~]$sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak -
Reformatez le fichier
image.manifest.xmlpour qu’il soit plus facile à lire et à modifier.[ec2-user ~]$sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml -
Modifiez les mappages de périphérique de stockage en mode bloc dans
image.manifest.xmlavec un éditeur de texte. L’exemple ci-dessous montre une nouvelle entrée pour le volume de stockage d’instanceephemeral1.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> -
Enregistrez le fichier
image.manifest.xmlet quittez votre éditeur de texte.
-
-
Pour charger votre bundle sur Amazon S3, exécutez la commande ec2-upload-bundle comme suit.
[ec2-user ~]$ec2-upload-bundle -bamzn-s3-demo-bucket/bundle_folder/bundle_name-m /tmp/image.manifest.xml -ayour_access_key_id-syour_secret_access_keyImportant
Pour inscrire votre AMI dans une région autre que US East (N. Virginia), vous devez spécifier à la fois la région cible avec l’option
--regionet 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. -
(Facultatif) Une fois que le groupe est chargé sur Amazon S3, vous pouvez le supprimer du répertoire
/tmpsur l’instance en utilisant la commande rm suivante :[ec2-user ~]$sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/imageImportant
Si vous avez spécifié un chemin avec l’option
-ddans Étape 2, utilisez ce chemin à la place de/path/to/bundle/storage/tmp. -
Pour inscrire votre AMI, exécutez la commande register-image comme suit.
[ec2-user ~]$aws ec2 register-image --image-locationamzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --nameAMI_name--virtualization-typehvmImportant
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.