Differenza AWS tra un'istantanea e un'AMI


107

Quindi ho problemi a capire cosa, in particolare, sia la differenza tra questi due.

A quanto ho capito, un'istantanea è semplicemente un backup del disco rigido, mentre l'AMI è un backup dell'intero sistema (o istanza dovrei dire), ma l'intero sistema non è tecnicamente interamente situato sull'unità disco? e se è così allora non c'è una differenza netta e mi manca qualcosa?

Risposte:


70

Esistono due tipi di AMI (e istanze corrispondenti):

  1. instance-store (a volte chiamato basato su S3). Questi sono meno comuni e non li consiglio ai principianti. Un'AMI del negozio di istanze è una copia del volume dell'archivio di istanze radice più alcuni metadati, tutti salvati in un bucket S3 in un formato speciale

  2. Avvio EBS. Questo è probabilmente quello che stai usando. Un'AMI di avvio EBS è un'istantanea EBS del volume root EBS più alcuni metadati come l'architettura, il kernel, il nome dell'AMI, la descrizione, i mapping dei dispositivi a blocchi e altro ancora.

È possibile acquisire un'istantanea di un volume di avvio EBS e trasformarlo in un'AMI di avvio EBS registrandolo con i metadati appropriati. La parte più complicata di questo è specificare l'id AKI corretto (kernel) in modo che si avvii correttamente.


Grazie Eric, ho eseguito il backup di un'immagine AMI e ho la possibilità di avviarla e registrarla? Sono confuso su quale sia la differenza qui ...
Melbourne2991

Non so cosa intendi per "backup di un'immagine AMI".
Eric Hammond

8
Quando fai clic su "crea AMI", EC2 crea un'istantanea EBS del volume EBS di quell'istanza e la registra come AMI. Puoi avviare nuove istanze specificando quell'AMI come punto di partenza. È anche possibile creare nuovi volumi dello snapshot EBS se si desidera solo esaminare i file su di esso senza eseguire una nuova istanza.
Eric Hammond

6
In alternativa, puoi creare tu stesso un'istantanea EBS del volume EBS, quindi registrarla in seguito come un'AMI. Questo è un modo leggermente più difficile per creare un'AMI in quanto richiede la conoscenza degli attributi di registrazione AMI appropriati da impostare. "Crea AMI" fa tutto questo per te.
Eric Hammond

1
@ cosbor11 Non è possibile eliminare l'istantanea per un'AMI.
Eric Hammond

24

La principale differenza è tra il tipo di servizio a cui si fa riferimento. Un'istantanea è di un volume EBS in cui è possibile salvare lo stato e riavviare con gli stessi dati in un determinato momento.

Un'AMI è simile, ma è per le istanze EC2 stesse. Non è possibile acquisire un'istantanea di un'istanza non supportata da ebs, ma è possibile creare un'AMI (immagine di sistema) di una.

In genere utilizzo gli snapshot EBS come soluzioni di backup per un volume di database e utilizzo un'AMI per salvare la configurazione dell'istanza


1
Cosa succede se il mio volume contiene i miei database e la mia configurazione dell'istanza? Cosa salva l'AMI rispetto a uno snapshot EBS (e viceversa)? Grazie
Melbourne2991

1
un'AMI può essere lanciata immediatamente su una nuova istanza. uno snapshot EBS può essere copiato su un nuovo volume (disco virtuale). Quel disco virtuale può essere utilizzato come base per una nuova istanza, ma non è un'istanza di per sé.
Dan Pritts

16

È possibile creare un'AMI utilizzando un'istantanea. Ad esempio, utilizzando una singola "istantanea" puoi creare più AMI, ad esempio un'AMI PV e un'AMI HVM utilizzando la stessa istantanea.

Quindi, lo snapshot ha i dati di sistema / OS. L'AMI è (snapshot + metadati macchina / hardware).


1
se ho un'AMI, significa che è stata creata un'istanza da essa. L'AMI include i dati su quell'istanza? Voglio dire, se l'istanza contiene file WAR tomcat, include anche l'AMI da cui è stata creata quell'istanza?
Dejell

1
Se crei un'AMI dall'istanza contenente tomcat (o qualsiasi file), la nuova AMI creata conterrà quei file / dati. Qualsiasi istanza ulteriormente creata da questa AMI avrà questi file. Tuttavia, l'AMI di origine da cui hai creato l'istanza non li avrà (supponendo che tu abbia aggiunto i file all'istanza dopo la creazione dell'istanza).
Anshu Prateek

15

Anche questo mi ha confuso. Ecco il modo più semplice per capirlo:

  • EBS Snapshot molto spesso rappresenta un backup di un volume EBS specifico, potrebbe essere qualsiasi volume (volume di root, volume di dati, ecc.)

  • AMI(Amazon Machine Image) è un backup dell'intera istanza EC2. Ad esempio, con una configurazione corretta è possibile creare un'AMI che includa più volumi EBS.

Ora, potrebbe sembrare confuso, ma sono entrambi archiviati come "istantanee EBS".

Pensa solo in questo modo:

  • EBS Snapshot è solo un backup dei dati.
  • AMIè una rappresentazione dello stato del sistema in un momento specifico. Puoi anche avviare da esso.

Quindi, se ho creato un'istantanea del volume di root, quella istantanea può essere utilizzata per avviare un'istanza?
gaurav parashar

1
Risposta breve: No. Non può essere fatto direttamente utilizzando solo il volume poiché l'unica "opzione di avvio" disponibile per EC2 è AMI. Tuttavia, puoi creare un'AMI dal volume e avviare un'istanza dall'AMI creata di recente (come un'opzione indiretta).
skryvets

7

EBS Volumeè il disco sottostante EC2. Snapshotè un backup puntuale nel tempo di uno specifico volumementre l'AMI è il backup dell'intera istanza EC2 che potrebbe avere più volumi collegati, esattamente come le macchine virtuali.

Con Packer , puoi creare immagini di macchine automatizzate tra cui AMI per EC2, file VMDK / VMX per VMware, esportazioni OVF per VirtualBox, ecc.

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) 

Gli snapshot possono essere utilizzati per eseguire il backup di unità / volumi. È un'operazione di backup incrementale, il che significa che ogni volta che si scatta un'istantanea di un volume, verranno aggiunte solo le nuove modifiche aggiunte / introdotte al volume dall'ultimo backup (non l'intero backup), risparmiando tempo, spazio e, in definitiva, il costo del backup .

Le istantanee possono essere utilizzate in:

  • Backup delle unità regolarmente

  • Cambia il tipo di volume, ad esempio hai traffico o letture e scritture e devi aumentare le operazioni di I / O in modo da passare da gp2a io1con maggioreIOPs

Le AMI personalizzate possono essere utilizzate in:

  • Per il ripristino di emergenza nel caso in cui l'istanza EC2 in esecuzione corrente sia danneggiata e non possa essere eseguita senza motivo.

  • AMI aziendali standard che hanno tutti i prerequisiti software installati che semplificano il processo di distribuzione (ad es. Configurato per connettersi a `Splunk, ha alcuni software di monitoraggio e osservabilità installati, ha docker installato o è configurato per connettere Puppet o Chef all'avvio)

  • Le AMI potrebbero essere utilizzate per distribuire facilmente le tue applicazioni in diverse regioni.

  • Aggiorna il tuo server a specifiche superiori o diverse con tutti i software installati e le loro configurazioni

  • Le AMI possono essere condivise pubblicamente tra gli account AWS.


Il tuo primo paragrafo è la definizione più chiara che ho letto finora. Grazie!
specialk1

5

Ecco alcune altre differenze tra AMI ed EBS Snapshots:

1) Un'AMI può essere avviata e contiene collegamenti al dispositivo di root e può contenere collegamenti a snapshot di altri volumi di dati.

2) L'immagine dei dati contenuta in un'AMI non rappresenta un punto nel tempo ben definito, a meno che l'istanza non venga riavviata, cosa che in genere non è accettabile per l'ambiente di produzione. Le istantanee possono essere scattate in modo coerente poiché è possibile controllare il loro preciso punto nel tempo, quindi prima che inizi l'istantanea si può essere sicuri che tutto sia "pronto per il backup".

3) È possibile creare un'AMI da snapshot esistenti del dispositivo root per Linux ma non per Windows.


2

Secondo la definizione fornita da AWS,

Un'AMI è un modello da cui puoi avviare un'istanza EC2. Uno snapshot EBS è una copia a livello di blocco di un volume EBS. Il volume EBS potrebbe essere un volume di avvio (ovvero contenente un sistema operativo) o un volume di soli dati (contenente ad esempio file di database). Usa RegisterImage per creare un'AMI (da uno snapshot).

Si tratta di due concetti diversi, applicati a livelli diversi (volumi EBS vs modelli EC2) Tuttavia, ci sono alcune dipendenze tra i due concetti.

Per le istanze EC2 supportate da EBS (ovvero le istanze EC2 che si avviano da un volume EBS), l'AMI viene implementata come un'istantanea EBS di un volume di avvio + un paio di metadati (l'architettura della macchina - 32 vs 64 bit -, il tipo di virtualizzazione - HVM vs PV - ecc ...)

Quindi, per le istanze EC2 supportate da EBS, un'AMI è un'istantanea EBS + un file XML. Puoi persino creare la tua AMI in base a qualsiasi istantanea di un volume di avvio di tua proprietà.


1

Le istantanee sono meno costose da utilizzare come strategia di backup, perché quando si hanno più istantanee, si paga solo per un backup completo e le altre sono, in sostanza, solo differenze e di solito molto più piccole.


6
Questo non è vero per le AMI di avvio EBS in quanto sono esattamente snapshot EBS più un po 'di metadati. La spesa sarebbe identica.
Eric Hammond

1

Puoi pensare a un'AMI come a un modello generico per una macchina con sistema operativo e componenti installati conservati.

Un'istantanea può includere tutto ciò che fa un'AMI, ma salva anche i dati del disco di un volume EBS.

Quale decidi di utilizzare generalmente dipenderà dal fatto che le tue istanze siano supportate da EBS e se desideri ricreare esattamente una macchina con tutti i dati intatti o se desideri semplicemente un modello di macchina generico.


Quindi l'AMI non salva il volume EBS?
Melbourne2991

1
È possibile impostare un'AMI per includere uno o più volumi EBS, ma tali volumi saranno vuoti all'avvio, non conterranno i dati contenuti nel computer di origine originale.
CIGuy

Quindi l'AMI è davvero solo metadati (non sei sicuro che sia il termine giusto)? Ad esempio quale sistema operativo stai utilizzando, le dimensioni dell'istanza, ecc.? Tecnicamente dovrebbe essere solo di pochi kb di dimensioni, lo prendo?
Melbourne2991

1
Un'AMI memorizza anche tutti i programmi che hai installato sulla macchina, le opzioni di configurazione a livello di sistema operativo ecc ... quindi non sono solo metadati, ma sì, di solito sono molto più piccoli di un'istantanea.
CIGuy

1
Questa risposta è sbagliata. Un'AMI include una o più istantanee. Cioè, fa riferimento a una o più istantanee (non c'è copia dei dati) e contiene anche alcuni metadati aggiuntivi. Questo è il motivo per cui non è possibile eliminare un'istantanea se è attualmente utilizzata da un'AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Vedi anche i contributi di Eric Hammond in questo thread.
Max Barraclough

0

Dalla definizione fornita da AWS si chiarisce la differenza: un'Amazon Machine Image (AMI) è un modello che contiene una configurazione software (ad esempio, un sistema operativo, un server di applicazioni e applicazioni). Da un'AMI, avvii un'istanza, che è una copia dell'AMI in esecuzione come server virtuale nel cloud. Mentre per gli snapshot puoi eseguire il backup dei dati sui tuoi volumi EBS su Amazon S3 acquisendo snapshot point-in-time. Le istantanee sono backup incrementali, il che significa che vengono salvati solo i blocchi sul dispositivo che sono stati modificati dopo l'istantanea più recente. Quando elimini uno snapshot, vengono rimossi solo i dati esclusivi di tale snapshot.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.