Terminologia Amazon EC2: AMI vs. EBS vs. Snapshot vs. Volume


127

Ho cercato su Amazon EC2 e sono un po 'confuso su alcuni termini. In particolare per quanto riguarda AMI, istantanee e volumi e un EBS

Per favore, correggimi se sbaglio, o colma eventuali lacune gravi nelle mie seguenti dichiarazioni:

  • Un'AMI (Amazon Machine Image) è un'acquisizione completa "su disco" di un sistema operativo e di una configurazione. Quando si avvia un'istanza, la si avvia da un AMI

  • Un EBS (Elastic Block Storage) è un modo per mantenere lo stato di eventuali modifiche apportate dopo l'avvio da una determinata AMI. Nella mia mente, questo è un po 'come un diff sullo stato finale della tua istanza rispetto all'AMI.

  • Un'istantanea è ... beh, non sono sicuro. Posso solo supporre che sia un'istantanea di un'istanza specifica, ma non mi è chiaro come questo differisca dallo stato memorizzato in un EBS. In che modo un'istantanea differisce dalla creazione di un'AMI EBS da un'istanza esistente?

  • Un volume è ... sembrerebbe montato lo spazio su disco in cui è caricata una coppia AMI / EBS? Non sono sicuro neanche su questo. Posso vedere (dalla Console AWS) che è possibile creare un volume da un'istantanea e che è possibile collegare / scollegare i volumi, ma non mi è chiaro perché o quando lo si farebbe.

Risposte:


150

Un AMI, come notate, è un'immagine macchina. È un'istantanea totale di un sistema memorizzato come immagine che può essere avviata come istanza. Torneremo alle AMI tra un secondo.

Diamo un'occhiata a EBS. Gli altri due articoli sono sotto-elementi di questo. EBS è un dispositivo a blocchi virtuale. Puoi pensarlo come un disco rigido, anche se è davvero un mucchio di magia software collegarsi a un altro tipo di dispositivo di archiviazione ma farlo sembrare un disco rigido a un'istanza.

EBS è solo il nome per l'intero servizio. All'interno di EBS hai quelli che sono chiamati volumi. Queste sono le "unità" che Amazon ti sta vendendo. Crei un volume e ti assegnano un numero X di gigabyte e lo usi come un disco rigido che puoi collegare a qualsiasi computer in esecuzione (istanze). I volumi possono essere creati vuoti o da una copia istantanea del volume precedente, il che ci porta all'argomento successivo.

Le istantanee sono ... beh ... istantanee di volumi: un'acquisizione esatta dell'aspetto di un volume in un particolare momento nel tempo, inclusi tutti i suoi dati. Potresti avere un volume, collegarlo alla tua istanza, riempirlo con cose, quindi istantaneamente, ma continuare a usarlo. Il contenuto del volume continuerebbe a cambiare man mano che lo si utilizzava come file system ma l'istantanea si sarebbe congelata nel tempo. È possibile creare un nuovo volume utilizzando questa istantanea come base. Il nuovo volume sarebbe esattamente come il tuo primo disco quando hai scattato l'istantanea. È possibile iniziare a utilizzare il nuovo volume al posto di quello precedente per ripristinare i dati oppure collegare lo stesso set di dati a un secondo computer. Puoi continuare a scattare istantanee di volumi in qualsiasi momento. È come un backup di un'istanza di freeze frame che può essere facilmente trasformato in un nuovo disco live (volume) ogni volta che ne hai bisogno.

Quindi i volumi possono essere basati su un nuovo spazio vuoto o su un'istantanea. Capito? I volumi possono essere collegati e staccati da qualsiasi istanza, ma collegati solo a un'istanza alla volta, proprio come il disco fisico di cui sono un'astrazione virtuale.

Ora torniamo alle AMI. Questi sono difficili perché ci sono due tipi. Uno crea istanze effimere in cui il filesystem di root sembra un disco per il computer ma in realtà si trova in memoria da qualche parte e vaporizza nel momento in cui smette di essere utilizzato. L'altro tipo è chiamato istanza supportata da EBS. Ciò significa che quando le tue istanze si caricano, carica il suo file system radice su un nuovo volume EBS, fondamentalmente sovrapponendo la tecnologia della macchina virtuale EC2 alla loro tecnologia EBS. Un volume EBS normale è qualcosa che si trova accanto a EC2 e può essere collegato, ma anche un'istanza supportata da EBS È un volume stesso.

Una normale AMI è solo una grande mole di dati che viene caricata come una macchina. Un'AMI supportata da EBS verrà caricata su un volume EBS, quindi è possibile spegnerla e ricominciare da dove era stata interrotta proprio come farebbe un disco reale.

Ora metti tutto insieme. Se un'istanza è supportata da EBS, è anche possibile snapshot. Fondamentalmente questo fa esattamente quello che un'istantanea normale farebbe ... un frame di blocco del disco di root del tuo computer in un momento. In pratica, fa due cose diverse. Uno è che arresta l'istanza in modo da ottenere una copia del disco come apparirebbe su un computer OFF, non su ON. Ciò semplifica l'avvio :) Quindi quando si esegue l'istantanea di un'istanza, la si arresta, scatta l'immagine del disco, quindi si riavvia. In secondo luogo, salva le immagini come AMI anziché come un'istantanea del disco normale. Fondamentalmente è un'istantanea avviabile di un volume.


1
Grazie per le ottime informazioni, penso che si stiano riunendo per me. Una domanda di follow-up: qual è la differenza tra fare un'istantanea di un AMI EBS rispetto al clic con il tasto destro e selezionando 'Crea immagine (EBS AMI) dalla console web EC2? Sulla base della tua descrizione sopra, sembrerebbe che siano identici, tranne per il modo in cui li usi. È possibile creare un volume da un'istantanea, quindi collegarlo a un AMI. Dove l'immagine AMI di EBS ... non lo so, elimina quel passaggio di collegarlo a un volume?
Matt

In realtà penso che lo strumento console per lo snapshot di un AMI faccia la stessa cosa della console web. Dove la tua descrizione errori è la parte degli allegati. Se si esegue un'istantanea di un'istanza, sì, viene creata un'istantanea del volume principale, ma più di ciò l'istantanea diventa un AMI. Un'istantanea normale creata in un volume e allegata a un'istanza. Un'istantanea di un'istanza trasformata in un'istanza (non si collega il volume a un'istanza, è l'istanza). Ha senso?
Caleb,

Ogni volta che dicevo console intendevo dire console web. Non ho ancora giocato con API della riga di comando o altro. Immagino che ciò di cui sono confuso sia che crei un'AMI EBS da un'istanza e crei un'istantanea da un volume, ma sembra che il volume sia l'AMI EBS. Quindi, per creare una nuova istanza, è possibile 1) avviarne uno da un'AMI creata oppure 2) copiare l'istantanea su un volume e avviare un'AMI collegata a quel volume, ma alla fine il risultato è lo stesso. È corretto?
Matt,

Stavi bene fino alla parte "sembra", quindi smette di abbinare la realtà. In particolare l'ultima parte (il tuo 2) è una sciocchezza. Non allegare AMI ai volumi. Gli AMI supportati da EBS sono volumi con tag speciali che sono avviabili. I volumi sono collegati alle istanze, non viceversa.
Caleb,

2
Quando si esegue lo snapshot di qualcosa di diverso dal disco di root. Ho molti dischi che memorizzano set di dati che non fanno parte di un determinato computer. Se si esegue l'istantanea del disco di sistema / unità principale, utilizzare gli strumenti di creazione AMI EBS. Ma a volte si hanno altri volumi con altri insiemi di dati che possono o meno essere collegati a un determinato sistema. Quelle che puoi fotografare nel tuo tempo libero. Verrà creata un'istantanea automatica se capita di essere collegata a un'istanza alla quale si esegue l'istantanea, ma si potrebbe anche voler fare il proprio a volte ... dire di duplicare un disco e attaccarlo in un'altra istanza.
Caleb,

9

Penso che rendiamolo semplice. Crea un modello AMI da un'istanza esistente (ad esempio l'istanza n. 1. Nota: quando crei un modello AMI, avrai anche un'istantanea del volume, guarda nella sezione dell'istantanea. Quando vuoi creare una nuova istanza, scegli la nuova creazione Modello AMI, selezionerà quindi l'istantanea al momento della creazione del modello AMI. Semplice.

Ora, se hai creato snapshot dal volume dell'istanza n. 1, va bene. Crea una nuova istanza dal modello AMI, quindi scollega il volume che è stato creato automaticamente per esso, quindi collega il volume creato dalle istantanee dal volume dell'istanza n. 1.


2

Per riassumere le cose:

  • EBS = il servizio AWS stesso

  • Volume EBS = pensalo come un disco rigido che puoi collegare a un'istanza EC2

  • Snapshot = una copia temporizzata del volume

  • AMI = una copia di un'istanza completa


0

Oltre alle spiegazioni precedenti, ecco un esempio per chiarire tutto ciò.

Supponiamo che alla tua "EC2 Instance I1" siano associati due volumi EBS: EBS Volume V1a e EBS Volume V1b.

Ora, se crei un'immagine AMI dall'istanza EC2 I1, otterrai:

un. Un'immagine AMI dell'istanza EC2 I1, chiamiamola AMI1

b. Un'istantanea di EBS Volume V1a, chiamiamola S1

c. Un'istantanea di EBS Volume V1b, chiamiamola S2

Quindi, se avvii una nuova istanza dall'immagine AMI1, otterrai -

un. Una nuova istanza EC2, chiamiamola I2

b. Un nuovo volume EBS generato da Snapshot S1, chiamiamolo V2a

c. Un nuovo volume EBS generato da Snapshot S2, chiamiamolo V2b

Riassumendo -

  1. Un'immagine AMI crea un'istantanea del volume o dei volumi collegati all'istanza originale (da cui viene creata l'AMI)

  2. Una nuova istanza avviata da un'immagine AMI crea volume / i dalle istantanee associate a tale AMI.

L'ho spiegato in dettaglio in http://zilhaz.com/ebs-ami-aws-ec2/

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.