Différence AWS entre un instantané et une AMI

108

J'ai donc du mal à comprendre quelle est la différence entre ces deux.

Si je comprends bien, un instantané est simplement une sauvegarde du lecteur de disque, alors que l'AMI est une sauvegarde de l'ensemble du système (ou de l'instance je devrais dire), mais le système entier n'est-il pas techniquement entièrement situé sur le lecteur de disque? et si c'est le cas, il n'y a pas de différence claire et il me manque quelque chose?

Melbourne2991
la source

Réponses:

70

Il existe deux types d'AMI (et les instances correspondantes):

  1. instance-store (parfois appelé basé sur S3). Ce sont moins courants et je ne les recommande pas aux débutants. Une AMI de stockage d'instance est une copie du volume de stockage d'instance racine plus certaines métadonnées, toutes enregistrées dans un compartiment S3 dans un format spécial

  2. Démarrage EBS. C'est probablement ce que vous utilisez. Une AMI de démarrage EBS est un instantané EBS du volume racine EBS ainsi que des métadonnées telles que l'architecture, le noyau, le nom de l'AMI, la description, les mappages de périphériques de bloc, etc.

Vous pouvez prendre un instantané d'un volume de démarrage EBS et le transformer en AMI de démarrage EBS en l'enregistrant avec les métadonnées appropriées. La partie la plus délicate est de spécifier le bon ID AKI (noyau) pour qu'il démarre correctement.

Eric Hammond
la source
Merci Eric, j'ai sauvegardé une image AMI, et j'ai la possibilité de la lancer et de l'enregistrer? Je ne sais pas quelle est la différence ici ...
Melbourne2991
Je ne sais pas ce que vous entendez par "sauvegardé une image AMI".
Eric Hammond
8
Lorsque vous cliquez sur «créer une AMI», EC2 crée un instantané EBS du volume EBS de cette instance et l'enregistre en tant qu'AMI. Vous pouvez lancer de nouvelles instances en spécifiant cette AMI comme point de départ. Vous pouvez également créer de nouveaux volumes de l'instantané EBS si vous souhaitez simplement consulter les fichiers qu'il contient sans exécuter une nouvelle instance.
Eric Hammond
6
Vous pouvez également créer vous-même un instantané EBS du volume EBS, puis enregistrer ultérieurement cet instantané en tant qu'AMI. Il s'agit d'une manière légèrement plus difficile de créer une AMI car elle vous oblige à connaître les attributs d'enregistrement AMI appropriés à définir. "Create AMI" fait tout cela pour vous.
Eric Hammond
1
@ cosbor11 Vous ne pouvez pas supprimer l'instantané d'une AMI.
Eric Hammond
24

La principale différence réside dans le type de service auquel il est fait référence. Un instantané est d'un volume EBS dans lequel vous pouvez enregistrer l'état et redémarrer avec les mêmes données à un moment donné.

Une AMI est similaire, mais c'est pour les instances EC2 elles-mêmes. Vous ne pouvez pas prendre un instantané d'une instance non sauvegardée par ebs, mais vous pouvez créer une AMI (image système) d'une instance.

En général, j'utilise des instantanés EBS comme solutions de sauvegarde pour un volume de base de données et j'utilise une AMI pour enregistrer la configuration de l'instance

BrianJakovich
la source
1
Que faire si mon volume contient mes bases de données ainsi que ma configuration d'instance? Qu'est-ce que l'AMI sauve qu'un instantané EBS ne fait pas (et vice versa)? Merci
Melbourne2991
1
une AMI est immédiatement lancable sur une nouvelle instance. un instantané EBS peut être copié sur un nouveau volume (disque virtuel). Ce disque virtuel peut être utilisé comme base pour une nouvelle instance, mais ce n'est pas une instance en soi.
Dan Pritts
16

Une AMI peut être créée à l'aide d'un instantané. Par exemple, en utilisant un seul «instantané», vous pouvez créer plusieurs AMI, par exemple une PV et une AMI HVM en utilisant le même instantané.

Ainsi, l'instantané contient les données système / OS. AMI est (instantané + métadonnées machine / matériel).

Anshu Prateek
la source
1
si j'ai une AMI, qu'une instance a été créée à partir de celle-ci. L'AMI inclut-elle les données sur cette instance? Je veux dire, si l'instance contient des fichiers WAR tomcat, l'AMI à partir de laquelle cette instance a été créée, inclut également?
Dejell
1
Si vous créez une AMI à partir de l'instance contenant tomcat (ou tout autre fichier), la nouvelle AMI créée contiendra ces fichiers / données. Toute instance créée ultérieurement à partir de cette AMI aura ces fichiers. Cependant, l'AMI source à partir de laquelle vous avez créé l'instance ne les aura pas (en supposant que vous ayez ajouté les fichiers à l'instance après la création de l'instance).
Anshu Prateek
15

J'étais également confus par cela. Voici le moyen le plus simple de le comprendre:

  • EBS Snapshot représente très souvent une sauvegarde d'un volume EBS spécifique, il peut s'agir de n'importe quel volume (volume racine, volume de données, etc.)

  • AMI(Amazon Machine Image) est une sauvegarde de l'instance EC2 entière. Par exemple, avec une configuration appropriée, il est possible de créer une AMI qui comprend plusieurs volumes EBS.

Maintenant, cela peut sembler déroutant, mais ils sont tous les deux stockés en tant que "Snapshots EBS".

Pensez simplement à cette façon:

  • EBS Snapshot est juste une sauvegarde de données.
  • AMIest une représentation de l'état du système à un moment précis. Vous pouvez également démarrer à partir de celui-ci.
skryvets
la source
Donc, si j'ai créé un instantané du volume racine, cet instantané peut-il être utilisé pour lancer une instance?
gaurav parashar
1
Réponse courte: Non. Cela ne peut pas être fait directement en utilisant uniquement le volume car la seule "option de démarrage" disponible pour EC2 est AMI. Cependant, vous pouvez créer une AMI à partir du volume et lancer une instance à partir d'une AMI récemment créée (comme une option indirecte).
skryvets
7

EBS Volumeest le disque sous-jacent derrière EC2. Snapshotest une sauvegarde ponctuelle de spécifique volumetandis que l'AMI est une sauvegarde de l'instance EC2 entière qui peut avoir plusieurs volumes attachés, exactement comme des machines virtuelles.

Avec Packer , vous pouvez créer des images de machines automatisées, y compris des AMI pour EC2, des fichiers VMDK / VMX pour VMware, des exportations OVF pour VirtualBox, etc.

EC2  <-- EBS Volume (Boot) + EBS Volume 
                        ^
                        |
                     Snapshot (only of specific volume)       
                        ^
                        |
                       AMI (Combined snapshots of all volumes, snapshot must have boot volume) 
                        ^
                        | 
                  Launch a new Instance (same installed softwares and configs, different specs) 

Les instantanés peuvent être utilisés pour sauvegarder des disques / volumes. Il s'agit d'une opération de sauvegarde incrémentielle, ce qui signifie que chaque fois que vous prenez un instantané d'un volume, elle n'ajoutera que les nouvelles modifications ajoutées / introduites au volume depuis votre dernière sauvegarde (pas une sauvegarde complète), ce qui économise du temps, de l'espace et finalement le coût de la sauvegarde .

Les instantanés peuvent être utilisés dans:

  • Sauvegardez les disques régulièrement

  • Modifiez le type de volume, par exemple, vous avez du trafic ou des lectures et des écritures et devez augmenter les opérations d'E / S afin de passer de gp2à io1avec plusIOPs

Les AMI personnalisées peuvent être utilisées dans:

  • Pour la reprise après sinistre au cas où l'instance EC2 en cours d'exécution serait corrompue et ne pourrait pas s'exécuter sans raison.

  • AMI de la société standard qui ont tous les logiciels prérequis installés qui simplifient le processus de déploiement (par exemple, configurés pour se connecter à `Splunk, ont certains logiciels de surveillance et d'observabilité installés, ont installé un docker ou sont configurés pour connecter Puppet ou Chef au démarrage)

  • Les AMI peuvent être utilisées pour déployer facilement vos applications dans différentes régions.

  • Mettez à niveau votre serveur vers des spécifications plus élevées ou différentes avec tous les logiciels installés et leurs configurations

  • Les AMI peuvent être partagées publiquement entre les comptes AWS.

Muhammad Soliman
la source
Votre premier paragraphe est la définition la plus claire que j'ai lue jusqu'à présent. Je vous remercie!
specialk1er
5

Voici quelques différences supplémentaires entre les instantanés AMI et EBS:

1) Une AMI peut être lancée et contient des liens vers le périphérique racine et peut contenir des liens vers des instantanés des autres volumes de données.

2) L'image de données contenue dans une AMI ne représente pas un point dans le temps bien défini, sauf si l'instance est redémarrée, ce qui n'est généralement pas acceptable pour l'environnement de production. Les instantanés peuvent être pris de manière cohérente puisque leur point dans le temps exact peut être contrôlé, donc avant que l'instantané ne démarre, il peut être assuré que tout est «prêt pour la sauvegarde».

3) Une AMI peut être créée à partir des instantanés existants du périphérique racine pour Linux mais pas pour Windows.

OK1
la source
2

Conformément à la définition fournie par AWS,

Une AMI est un modèle à partir duquel vous pouvez démarrer une instance EC2. Un instantané EBS est une copie de niveau bloc d'un volume EBS. Le volume EBS peut être un volume de démarrage (c'est-à-dire contenant un système d'exploitation) ou un volume de données uniquement (contenant des fichiers de base de données par exemple). Vous utilisez RegisterImage pour créer une AMI (à partir d'un instantané).

Ce sont deux concepts différents, appliqués à des niveaux différents (volumes EBS vs modèles EC2). Cependant, il existe des dépendances entre les deux concepts.

Pour les instances EC2 sauvegardées par EBS (c'est-à-dire les instances EC2 qui démarrent à partir d'un volume EBS), l'AMI est implémentée comme un instantané EBS d'un volume de démarrage + quelques métadonnées (l'architecture de la machine - 32 vs 64 bits -, le type de virtualisation - HVM vs PV - etc ...)

Ainsi, pour les instances EC2 basées sur EBS, une AMI est un instantané EBS + un fichier XML. Vous pouvez même créer votre propre AMI en fonction de n'importe quel instantané d'un volume de démarrage que vous possédez.

Ashish Khandelwal
la source
1

Les instantanés sont moins coûteux à utiliser comme stratégie de sauvegarde, car lorsque vous avez plusieurs instantanés, vous ne payez que pour une sauvegarde complète et les autres sont, par essence, juste des différences et généralement beaucoup plus petites.

Cary Gordon
la source
6
Ce n'est pas le cas pour les AMI de démarrage EBS car ce sont exactement des instantanés EBS plus un peu de métadonnées. La dépense serait identique.
Eric Hammond
1

Vous pouvez considérer une AMI comme un modèle générique pour une machine dont le système d'exploitation et les composants installés sont préservés.

Un instantané peut inclure tout ce qu'une AMI fait, mais enregistre également les données de disque d'un volume EBS.

Celui que vous décidez d'utiliser dépendra généralement du fait que vos instances soient sauvegardées par EBS et si vous souhaitez recréer exactement une machine avec toutes les données intactes ou simplement un modèle de machine générique.

CIGuy
la source
L'AMI ne sauvegarde donc pas le volume EBS?
Melbourne2991
1
Une AMI peut être définie pour inclure un ou plusieurs volumes EBS, mais ces volumes seront vides au démarrage, ils ne contiendront pas les données contenues dans la machine source d'origine.
CIGuy
Donc, l'AMI n'est vraiment que des métadonnées (vous ne savez pas si c'est le bon terme)? Vous aimez quel système d'exploitation vous utilisez, la taille de l'instance, etc.? Il ne devrait techniquement être que de quelques ko, je le prends?
Melbourne2991
1
Une AMI stocke également tous les programmes que vous avez installés sur la machine, les options de configuration au niveau du système d'exploitation, etc. donc ce ne sont pas vraiment des méta-données, mais oui, elles sont généralement beaucoup plus petites qu'un instantané.
CIGuy
1
Cette réponse est fausse. Une AMI comprend un ou plusieurs instantanés. Autrement dit, il fait référence à un ou plusieurs instantanés (il n'y a pas de copie de données) et contient également des métadonnées supplémentaires. C'est pourquoi vous ne pouvez pas supprimer un instantané s'il est actuellement utilisé par une AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Voir aussi les contributions d'Eric Hammond dans ce fil.
Max Barraclough
0

À partir de la définition fournie par AWS, cela clarifie la différence: une Amazon Machine Image (AMI) est un modèle qui contient une configuration logicielle (par exemple, un système d'exploitation, un serveur d'applications et des applications). À partir d'une AMI, vous lancez une instance, qui est une copie de l'AMI s'exécutant en tant que serveur virtuel dans le cloud. Considérant que pour les instantanés Vous pouvez sauvegarder les données de vos volumes EBS sur Amazon S3 en prenant des instantanés ponctuels. Les instantanés sont des sauvegardes incrémentielles, ce qui signifie que seuls les blocs de l'appareil qui ont changé après votre instantané le plus récent sont enregistrés. Lorsque vous supprimez un instantané, seules les données exclusives à cet instantané sont supprimées.

Sidharth
la source