Diferencia de AWS entre una instantánea y AMI

107

Así que tengo problemas para averiguar cuál es, específicamente, la diferencia entre estos dos.

Según tengo entendido, una instantánea es simplemente una copia de seguridad de la unidad de disco, mientras que la AMI es una copia de seguridad de todo el sistema (o instancia, debería decir), pero ¿no está todo el sistema técnicamente ubicado en la unidad de disco? y si ese es el caso, entonces no hay una diferencia clara y me falta algo?

Melbourne2991
fuente

Respuestas:

70

Hay dos tipos de AMI (e instancias correspondientes):

  1. instancia-tienda (a veces denominada basada en S3). Estos son menos comunes y no los recomiendo para principiantes. Una AMI de almacén de instancias es una copia del volumen de almacén de instancias raíz más algunos metadatos, todos guardados en un depósito de S3 en un formato especial

  2. Arranque EBS. Probablemente esto es lo que estás usando. Una AMI de arranque de EBS es una instantánea de EBS del volumen raíz de EBS más algunos metadatos como la arquitectura, el kernel, el nombre de la AMI, la descripción, las asignaciones de dispositivos de bloque y más.

Puede tomar una instantánea de un volumen de arranque de EBS y convertirlo en una AMI de arranque de EBS registrándolo con los metadatos adecuados. La parte más complicada de esto es especificar el ID de AKI correcto (kernel) para que arranque correctamente.

Eric Hammond
fuente
Gracias Eric, hice una copia de seguridad de una imagen AMI y tengo la opción de iniciarla y registrarla. Estoy confundido en cuanto a cuál es la diferencia aquí ...
Melbourne2991
No sé qué quiere decir con "hacer una copia de seguridad de una imagen AMI".
Eric Hammond
8
Cuando hace clic en "crear AMI", EC2 crea una instantánea de EBS del volumen de EBS de esa instancia y la registra como AMI. Puede lanzar nuevas instancias especificando esa AMI como punto de partida. También puede crear nuevos volúmenes de la instantánea de EBS si solo desea ver los archivos sin ejecutar una nueva instancia.
Eric Hammond
6
Alternativamente, puede crear una instantánea de EBS del volumen de EBS usted mismo y luego registrar esa instantánea como una AMI. Esta es una forma un poco más difícil de crear una AMI, ya que requiere que conozca los atributos de registro de AMI adecuados para configurar. "Crear AMI" hace todo esto por usted.
Eric Hammond
1
@ cosbor11 No puede eliminar la instantánea de una AMI.
Eric Hammond
24

La principal diferencia radica en el tipo de servicio al que se hace referencia. Una instantánea es de un volumen de EBS en el que puede guardar el estado y reiniciar con los mismos datos en un momento determinado.

Una AMI es similar, pero es para las propias instancias EC2. No puede tomar una instantánea de una instancia no respaldada por ebs, pero puede crear una AMI (imagen del sistema) de una.

Generalmente utilizo instantáneas de EBS como soluciones de respaldo para un volumen de base de datos y uso una AMI para guardar la configuración de la instancia

BrianJakovich
fuente
1
¿Qué sucede si mi volumen contiene mis bases de datos y la configuración de mi instancia? ¿Qué guarda AMI que no haga una instantánea de EBS (y viceversa)? Gracias
Melbourne2991
1
una AMI se lanza inmediatamente a una nueva instancia. una instantánea de EBS se puede copiar a un nuevo volumen (disco virtual). Ese disco virtual se puede usar como base para una nueva instancia, pero no es una instancia en sí misma.
Dan Pritts
16

Se puede crear una AMI mediante una instantánea. Por ejemplo, con una sola "instantánea" puede crear varias AMI, digamos una AMI de PV y una HVM con la misma instantánea.

Entonces, la instantánea tiene los datos del sistema / SO. AMI es (instantánea + máquina / metadatos de hardware).

Anshu Prateek
fuente
1
si tengo una AMI, que se creó una instancia a partir de ella. ¿La AMI incluye los datos de esa instancia? Quiero decir, si la instancia contiene archivos WAR de tomcat, ¿la AMI desde la que se creó esa instancia también se incluye?
Dejell
1
Si crea una AMI a partir de la instancia que contiene tomcat (o cualquier archivo), la nueva AMI creada contendrá esos archivos / datos. Cualquier instancia que se cree posteriormente a partir de esta AMI tendrá estos archivos. Sin embargo, la AMI de origen desde la que creó la instancia no los tendrá (suponiendo que haya agregado los archivos a la instancia después de la creación de la instancia).
Anshu Prateek
15

Eso también me confundió. Esta es la forma más sencilla de entenderlo:

  • EBS Snapshot muy a menudo representa una copia de seguridad de un volumen específico de EBS, puede ser cualquier volumen (volumen raíz, volumen de datos, etc.)

  • AMI(Imagen de máquina de Amazon) es una copia de seguridad de toda la instancia EC2. Por ejemplo, con la configuración adecuada, es posible crear una AMI que incluya varios volúmenes de EBS.

Ahora, puede parecer confuso, pero ambos están almacenados como "Instantáneas de EBS".

Solo piensa en esa forma:

  • EBS Snapshot es solo una copia de seguridad de datos.
  • AMIes una representación del estado del sistema en un momento específico. También puede arrancar desde él.
Skryvets
fuente
Entonces, si creé una instantánea del volumen raíz, ¿se puede usar esa instantánea para lanzar una instancia?
gaurav parashar
1
Respuesta corta: No. No se puede hacer directamente usando solo el volumen, ya que la única "opción de arranque" disponible para EC2 es AMI. Sin embargo, puede crear AMI a partir del volumen y lanzar una instancia desde la AMI creada recientemente (como una opción indirecta).
skryvets
7

EBS Volumees el disco subyacente detrás de EC2. Snapshotes una copia de seguridad de un volumemomento específico, mientras que la AMI es una copia de seguridad de toda la instancia EC2 que puede tener varios volúmenes adjuntos, exactamente como las máquinas virtuales.

Con Packer , puede crear imágenes de máquinas automatizadas, incluidas AMI para EC2, archivos VMDK / VMX para VMware, exportaciones OVF para 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) 

Instantáneas se pueden utilizar para realizar copias de seguridad de unidades / volúmenes. Es una operación de copia de seguridad incremental, lo que significa que cada vez que toma una instantánea de un volumen, solo agregará los nuevos cambios agregados / introducidos al volumen desde su última copia de seguridad (no la copia de seguridad completa), lo que ahorra tiempo de copia de seguridad, espacio y, en última instancia, el costo. .

Las instantáneas se pueden utilizar en:

  • Realice copias de seguridad de las unidades con regularidad

  • Cambie el tipo de volumen, por ejemplo, tiene tráfico o lee y escribe y necesita aumentar las operaciones de E / S para cambiar de gp2a io1con mayorIOPs

Las AMI personalizadas se pueden utilizar en:

  • Para recuperación ante desastres en caso de que la instancia EC2 en ejecución actual esté dañada y no pueda ejecutarse sin motivo.

  • AMI de la empresa estándar que tienen todos los softwares prerrequisitos instalados que simplifican el proceso de implementación (por ejemplo, configurados para conectarse a `Splunk, tiene algunos software de monitoreo y observabilidad instalados, tiene Docker instalado o está configurado para conectar Puppet o Chef en el inicio)

  • Las AMI se pueden utilizar para implementar sus aplicaciones en diferentes regiones fácilmente.

  • Actualice su servidor a especificaciones superiores o diferentes con todos los softwares instalados y sus configuraciones

  • Las AMI se pueden compartir públicamente entre cuentas de AWS.

Muhammad Soliman
fuente
Su primer párrafo es la definición más clara que he leído hasta ahora. ¡Gracias!
specialk 1 de
5

Aquí hay algunas diferencias más entre AMI y EBS Snapshots:

1) Una AMI se puede iniciar y contiene enlaces al dispositivo raíz y puede contener enlaces a instantáneas de los otros volúmenes de datos.

2) La imagen de datos contenida en una AMI no representa un punto en el tiempo bien definido, a menos que se reinicie la instancia, algo que normalmente no es aceptable para el entorno de producción. Las instantáneas se pueden tomar de manera coherente, ya que se puede controlar su momento exacto, por lo que antes de que comience la instantánea se puede asegurarse de que todo esté "listo para la copia de seguridad".

3) Se puede crear una AMI a partir de instantáneas existentes del dispositivo raíz para Linux pero no para Windows.

OK1
fuente
2

Según la definición proporcionada por AWS,

Una AMI es una plantilla desde la que puede iniciar una instancia EC2. Una instantánea de EBS es una copia a nivel de bloque de un volumen de EBS. El volumen de EBS puede ser un volumen de arranque (es decir, que contiene un sistema operativo) o un volumen de solo datos (que contiene archivos de base de datos, por ejemplo). Utiliza RegisterImage para crear una AMI (a partir de una instantánea).

Estos son dos conceptos diferentes, aplicados a diferentes niveles (volúmenes EBS frente a plantillas EC2). Sin embargo, existen algunas dependencias entre los dos conceptos.

Para instancias EC2 respaldadas por EBS (es decir, instancias EC2 que arrancan desde un volumen EBS), la AMI se implementa como una instantánea de EBS de un volumen de arranque + un par de metadatos (la arquitectura de la máquina - 32 vs 64 bits -, el tipo de virtualización - HVM vs PV - etc ...)

Entonces, para las instancias EC2 respaldadas por EBS, una AMI es una instantánea de EBS + un archivo XML. Incluso puede crear su propia AMI basada en cualquier instantánea de un volumen de arranque que posea.

Ashish Khandelwal
fuente
1

Las instantáneas son menos costosas de usar como estrategia de copia de seguridad, porque cuando tiene varias instantáneas, solo paga una copia de seguridad completa y el resto son, en esencia, solo diferencias y, por lo general, mucho más pequeñas.

Cary Gordon
fuente
6
Esto no es cierto para las AMI de arranque de EBS, ya que son exactamente instantáneas de EBS más algunos metadatos. El gasto sería idéntico.
Eric Hammond
1

Puede pensar en una AMI como una plantilla genérica para una máquina con SO y componentes instalados que se conservan.

Una instantánea puede incluir todo lo que hace una AMI, pero también guarda los datos del disco de un volumen de EBS.

El que decida usar generalmente dependerá de si sus instancias están respaldadas por EBS y si desea recrear exactamente una máquina con todos los datos intactos o simplemente desea una plantilla de máquina genérica.

CIGuy
fuente
¿Entonces la AMI no guarda el volumen de EBS?
Melbourne2991
1
Se puede configurar una AMI para incluir uno o más volúmenes de EBS, pero esos volúmenes estarán en blanco al arrancar, no contendrán los datos que contenía la máquina de origen original.
CIGuy
Entonces, ¿AMI es realmente solo metadatos (no estoy seguro de si ese es el término correcto)? ¿Qué sistema operativo estás usando, el tamaño de la instancia, etc.? Técnicamente debería tener solo unos pocos kb de tamaño, ¿lo tomo?
Melbourne2991
1
Una AMI también almacena cualquier programa que haya instalado en la máquina, opciones de configuración de nivel de sistema operativo, etc., por lo que no son solo metadatos, pero sí, generalmente son mucho más pequeños que una instantánea.
CIGuy
1
Esta respuesta es incorrecta. Una AMI incluye una o más instantáneas. Es decir, hace referencia a una o más instantáneas (no hay copia de datos) y también contiene algunos metadatos adicionales. Esta es la razón por la que no puede eliminar una instantánea si una AMI la está utilizando actualmente. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Consulte también las contribuciones de Eric Hammond en este hilo.
Max Barraclough
0

A partir de la definición proporcionada por AWS, se aclara la diferencia: una imagen de máquina de Amazon (AMI) es una plantilla que contiene una configuración de software (por ejemplo, un sistema operativo, un servidor de aplicaciones y aplicaciones). Desde una AMI, inicia una instancia, que es una copia de la AMI que se ejecuta como un servidor virtual en la nube. Mientras que para las instantáneas, puede realizar una copia de seguridad de los datos de sus volúmenes de EBS en Amazon S3 tomando instantáneas de un momento determinado. Las instantáneas son copias de seguridad incrementales, lo que significa que solo se guardan los bloques del dispositivo que han cambiado después de la instantánea más reciente. Cuando elimina una instantánea, solo se eliminan los datos exclusivos de esa instantánea.

Sidharth
fuente