tutorial pricing fargate ecs aws amazon-web-services docker amazon-ec2 ami

amazon web services - pricing - Diferencia entre Docker y AMI



aws fargate (3)

Aunque esto no responde directamente a la pregunta, pero proporciona algunos antecedentes sobre cómo se utilizan.

Un enfoque es lanzar instancias de EC2 con Amazon AMI (o puede ser cualquier AMI) y luego ejecutar contenedores de ventana acoplable (con todas las dependencias) encima de él. Con este enfoque, la imagen de la ventana acoplable se hincha con el tiempo y hay una deriva del contenedor con el tiempo. Además, el tiempo necesario para que la aplicación se ejecute y se ejecute es más, ya que se debe iniciar Ec2 y la ventana acoplable tiene que abrir el servidor de aplicaciones.

Otro enfoque es "Instancias de EC2 inmutables". Con este enfoque, utiliza Amazon AMI como base e instala todas las dependencias (use shell scripts o Ansible) y las hornea en la AMI. Usamos Hashicorp Packer, que es una herramienta increíble. Aquí, el tiempo necesario para que la aplicación esté en funcionamiento se reduce considerablemente, ya que todas las dependencias (java8, tomcat, war file, etc.) ya están instaladas en la AMI.

Para el caso de uso de producción, use Packer para crear AMI y use Terraform para lanzar recursos en la nube para usar esta AMI. Unir todo esto en la tubería de Jenkins.

En el contexto de AWS:

AMI se utiliza para empaquetar software y se puede implementar en EC2. Docker también se puede utilizar para empaquetar software y también se puede implementar en EC2.

¿Cuál es la diferencia entre ambos y cómo los escojo?



Un AMI es una imagen. Esta es una máquina completa desde la que puede iniciar nuevas instancias. Un contenedor docker es más ligero y portátil. Un contenedor docker debe ser transportable entre proveedores, mientras que una AMI no es (fácilmente).

Los AMI son básicamente imágenes de VM. Los contenedores Docker son mini-imágenes empaquetadas que se ejecutan en algunas máquinas virtuales en un entorno aislado.