Come funzionano Amazon Machine Images?


9

Ho visto molti tutorial e cose simili sulla creazione di AMI, ma non ho mai veramente capito il concetto completo di AMI. È un collegamento all'istanza o è memorizzato e mai modificato. Inoltre, un'immagine include l'archiviazione locale e tutti i pacchetti ecc. Installati su quell'istanza o è semplicemente una copia della configurazione di un'istanza particolare. Grazie

Risposte:


10

Nella sua forma più semplice, un AMI è una descrizione di una macchina virtuale: il tipo di virtualizzazione, l'architettura (32/64 bit), il kernel e il dispositivo root. Nelle parole di Amazon:

Un AMI è un modello che contiene una configurazione software (sistema operativo, application server e applicazioni) che è possibile eseguire sul comprovato ambiente di elaborazione di Amazon.

Le istanze EC2 sono macchine virtuali, in esecuzione sull'hardware di Amazon. Per avviare l'istanza, è necessaria una quantità minima di informazioni. Inoltre, diversi tipi di istanza supportano diverse configurazioni (ad esempio alcuni non supportano AMI a 32 bit).

Ogni AMI ha un identificatore (ad es. Ami-a1b2c3d4) e la configurazione di tale AMI non può essere modificata dopo la creazione. (Tuttavia, è possibile ignorare molte delle impostazioni al momento dell'avvio o, in alcuni casi, anche dopo l'avvio di un'istanza).

In termini di volume principale, le AMI contengono un riferimento a un volume esistente (ad esempio fanno riferimento a un'istantanea per istanze supportate da EBS o alle parti dell'immagine nel caso di un'istanza supportata da S3).

Le AMI contengono anche un certo grado di controllo degli errori - in genere un ID utente per indicare la proprietà, le chiavi di crittografia (che crittografano l'immagine) e una firma (per verificare l'integrità dell'immagine). Puoi avere una buona idea di cosa sia un AMI guardando il file manifest creato quando si crea un'istanza supportata da S3: è solo un file contenente dati e riferimenti ad altri elementi (memoria, kernel, ecc.).

Un'immagine fa riferimento alla sua come una mappatura del dispositivo a blocchi: specifica il dispositivo (ad esempio / dev / sda1) e la fonte dei dati (effimeri (e le parti S3 se pertinenti) o ebs-snapshot). Poiché le parti S3 sono firmate e le ebs-snapshot non possono essere modificate (solo cancellate), l'avvio di un'istanza da un AMI (senza sovrascrivere le sue impostazioni) dovrebbe sempre tradursi in un'istanza con la stessa configurazione software. (Notare che è ancora possibile che le istanze avviate dalla stessa AMI differiscano nei loro stati di funzionamento a causa dei dati dell'utente o delle diverse mappature dei dispositivi a blocchi (ad esempio le microistanze non hanno memoria effimera, mentre altri tipi di istanza lo fanno). Solo per essere chiari qui, i volumi collegati sono archiviati separatamente dall'AMI, ma sono referenziati dall'AMI in modo tale che i volumi non possano essere modificati.

Prima di avviare un'istanza da un'AMI, è possibile ignorare la mappatura del dispositivo a blocchi (ad esempio per aggiungere un volume EBS aggiuntivo o un altro volume effimero se il tipo di istanza lo supporta). Nel caso di volumi EBS, dopo l'avvio dell'istanza, è possibile scollegare il volume principale e collegare un volume EBS diverso.

Quindi, per rispondere brevemente alle tue domande: è un collegamento all'istanza o è memorizzato e mai modificato. È memorizzato e mai modificato.

Inoltre, un'immagine include l'archiviazione locale e tutti i pacchetti ecc. Installati su quell'istanza o è semplicemente una copia della configurazione di un'istanza particolare. L'immagine include l'archiviazione locale e tutti i pacchetti ecc. Installati su tale istanza. (In genere, questo è solo il volume principale, ma è possibile configurare un AMI per avviare un'istanza con più volumi popolati).


Quindi sono riferimenti all'EBS dell'istanza, quindi se lo stato EBS cambia dopo la creazione dell'AMI, anche lo stato dell'AMI cambierà?
Wiz,

No, fanno riferimento a istantanee EBS, non ai volumi EBS stessi. Le istantanee EBS non possono cambiare, anche se il volume EBS cambia. Se avvii una determinata AMI, caricherà l'istantanea EBS a cui fa riferimento. Se lo si desidera, è possibile specificare un'istantanea EBS diversa da utilizzare all'avvio dell'istanza oppure sostituire il volume EBS utilizzato dopo l'avvio dell'istanza.
cyberx86,

3

Un'AMI è effettivamente la copia principale di un file system di root che viene utilizzata per avviare nuove istanze EC2, insieme ad alcuni metadati come l'architettura. Contiene il sistema operativo completo e i pacchetti software che normalmente potresti trovare quando avvii una nuova copia di quella distribuzione, oltre a ciò che il creatore AMI ha ritenuto opportuno aggiungere.

Se si crea un'AMI da un'istanza, si sta fondamentalmente creando una copia del file system radice di tale istanza, che può essere successivamente utilizzata per creare nuove istanze.

La mia risposta qui potrebbe anche aiutare: https://stackoverflow.com/a/7895489/111286

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.