Comment fonctionnent Amazon Machine Images?


9

J'ai vu de nombreux tutoriels et autres sur la création d' AMI, mais je n'ai jamais vraiment compris le concept complet d'une AMI. Est un lien vers l'instance, ou est-il stocké et n'a jamais été modifié. En outre, une image inclut-elle le stockage local et tous les packages, etc. installés sur cette instance, ou s'agit-il simplement d'une copie de la configuration d'une instance particulière? Merci

Réponses:


10

Dans sa forme la plus simple, une AMI est une description d'une machine virtuelle - le type de virtualisation, l'architecture (32/64 bits), le noyau et le périphérique racine. Dans les mots d'Amazon:

Une AMI est un modèle qui contient une configuration logicielle (système d'exploitation, serveur d'applications et applications) que vous pouvez exécuter sur l'environnement informatique éprouvé d'Amazon.

Les instances EC2 sont des machines virtuelles, exécutées sur le matériel d'Amazon. Pour que l'instance démarre, une quantité minimale d'informations est requise. De plus, différents types d'instances prennent en charge différentes configurations (par exemple, certains ne prennent pas en charge les AMI 32 bits).

Chaque AMI a un identifiant (par exemple ami-a1b2c3d4), et la configuration de cette AMI ne peut pas être modifiée après sa création. (Vous pouvez cependant remplacer la plupart des paramètres au moment du lancement, ou dans certains cas, même après le lancement d'une instance).

En termes de volume racine, les AMI contiennent une référence à un volume existant (par exemple, elles font référence à un instantané pour les instances soutenues par EBS, ou aux parties d'image dans le cas d'une instance soutenue par S3).

Les AMI contiennent également un certain degré de vérification des erreurs - généralement un identifiant utilisateur pour indiquer la propriété, des clés de chiffrement (qui chiffrent l'image) et une signature (pour vérifier l'intégrité de l'image). Vous pouvez avoir une bonne idée de ce qu'est une AMI en regardant le fichier manifeste créé lors de la création d'une instance sauvegardée S3 - c'est juste un fichier contenant des données et des références à d'autres éléments (stockage, noyau, etc.).

Une image fait référence à son en tant que mappage de périphérique de bloc - elle spécifie le périphérique (par exemple / dev / sda1) et la source des données (éphémère (et les parties S3 si pertinentes) ou ebs-snapshot). Étant donné que les parties S3 sont signées et que les instantanés ebs ne peuvent pas être modifiés (uniquement supprimés), le lancement d'une instance à partir d'une AMI (sans remplacer ses paramètres) devrait toujours entraîner une instance avec la même configuration logicielle. (Notez qu'il est toujours possible que les instances lancées à partir de la même AMI diffèrent dans leurs états d'exécution en raison des données utilisateur ou de mappages de périphériques de bloc différents (par exemple, les micro-instances n'ont pas de stockage éphémère, contrairement à d'autres types d'instances). Juste pour être clair ici, les volumes attachés sont stockés séparément de l'AMI, mais référencés par l'AMI de telle manière que les volumes ne peuvent pas être modifiés.

Avant de lancer une instance à partir d'une AMI, vous pouvez remplacer le mappage de périphérique de bloc (par exemple pour ajouter un volume EBS supplémentaire ou un autre volume éphémère si le type d'instance le prend en charge). Dans le cas des volumes EBS, après le lancement de l'instance, vous pouvez détacher le volume racine et attacher un volume EBS différent au total.

Donc, pour répondre brièvement à vos questions: est un lien vers l'instance, ou est-il stocké et n'a jamais été modifié. Il est stocké et n'a jamais été modifié.

En outre, une image inclut-elle le stockage local et tous les packages, etc. installés sur cette instance, ou s'agit-il simplement d'une copie de la configuration d'une instance particulière? L'image comprend le stockage local et tous les packages, etc. installés sur cette instance. (En règle générale, il s'agit uniquement du volume racine, mais une AMI peut être configurée pour lancer une instance avec plusieurs volumes remplis).


Ce sont donc des références à l'EBS de l'instance, donc si l'état EBS change après la création de l'AMI, l'état AMI changera également?
Wiz

Non, ils font référence aux instantanés EBS, pas aux volumes EBS eux-mêmes. Les instantanés EBS ne peuvent pas changer, même si le volume EBS change. Si vous lancez une AMI donnée, elle chargera l'instantané EBS auquel elle fait référence. Si vous le souhaitez, vous pouvez spécifier un autre instantané EBS à utiliser lorsque vous lancez l'instance, ou vous pouvez remplacer le volume EBS utilisé après le lancement de l'instance.
cyberx86

3

Une AMI est en fait la copie principale d'un système de fichiers racine qui est utilisé pour lancer de nouvelles instances EC2, ainsi que certaines métadonnées comme l'architecture. Il contient le système d'exploitation complet et les packages logiciels que vous trouverez normalement lorsque vous démarrez une nouvelle copie de cette distribution, ainsi que tout ce que le créateur AMI a jugé bon d'ajouter.

Si vous créez une AMI à partir d'une instance, vous créez essentiellement une copie du système de fichiers racine de cette instance, qui peut ensuite être utilisée pour créer de nouvelles instances.

Ma réponse ici pourrait également aider: https://stackoverflow.com/a/7895489/111286

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.