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