Tu pregunta
¿ECS es solo una instalación acoplable en EC2? Si ya tengo un EC2, entonces inicio un ECS, ¿significa que tengo dos instancias?
No. AWS ECS
es solo una agrupación lógica (clúster) de EC2
instancias, y todas las EC2
instancias forman parte de un ECS
acto como Docker
host, es decir, ECS puede enviar un comando para lanzar un contenedor en ellas ( EC2
). Si ya tiene un EC2 y luego inicia ECS, aún tendrá una sola instancia. Si agrega / registra (instalando AWS ECS Container Agent) el EC2 en ECS, se convertirá en parte del clúster, pero seguirá siendo una instancia única de EC2.
Un Amazon ECS sin ningún EC2 registrado (agregado al clúster) no sirve para nada.
TL; DR
Una visión general
EC2
- es simplemente una máquina remota (virtual).
ECS
significa Elastic Container Service
: según la definición básica de clúster de computadoras , ECS
es básicamente una agrupación lógica de
EC2
máquinas / instancias . Técnicamente hablando ECS
es una mera configuración para un uso y administración eficiente de los EC2
recursos de su instancia (s), es decir, almacenamiento, memoria, CPU, etc.
Para simplificarlo aún más, si ha lanzado un Amazon ECS
sin EC2
agregar instancias, no sirve para nada, es decir, no puede hacer nada al respecto. ECS
tiene sentido solo una vez que EC2
se le agregan una (o más) instancias.
La siguiente cosa confusa aquí es el término contenedor , que no es instancias de máquina completamente virtualizadas, y Docker es una tecnología que podemos usar para crear instancias de contenedor. Docker
es una utilidad que puede instalar en nuestra máquina, lo que la convierte en un Docker
host, y en este host puede crear contenedores (igual que las máquinas virtuales, pero mucho más livianos). En resumen, se ECS
trata solo de la agrupación en clústeres de instancias EC2 y se utiliza Docker
para crear instancias de contenedores / instancias / máquinas virtuales en estos ( EC2
) hosts .
Todo lo que necesita hacer es iniciar ECS
y registrar / agregar tantas EC2
instancias como necesite. Puede agregar / registrar instancias EC2, todo lo que necesita es Amazon ECS Container Agent ejecutándose en su instancia / máquina EC2, lo que se puede hacer de forma manual o directa utilizando la AMI especial (Imagen de máquina de Amazon), es decir, la AMI optimizada para Amazon ECS, que ya tiene el agente de contenedor de Amazon ECS. Durante el lanzamiento de una nueva instancia EC2, el agente la registra automáticamente en el clúster ECS predeterminado.
El agente contenedor que se ejecuta en cada una de las instancias ( EC2
instancias) dentro de un Amazon ECS
clúster envía información sobre las tareas en ejecución actuales de la instancia y la utilización de recursos a Amazon ECS, e inicia y detiene las tareas cada vez que recibe una solicitud de Amazon ECS. Para obtener más información, consulte Agente de contenedor de Amazon ECS . Una vez configuradas, cada una de las instancias de contenedor creadas (de cualquier EC2
máquina / nodo) será una instancia en Amazon ECS
el enjambre de.
Para obtener más información, lea el paso 10 de esta documentación: Lanzamiento de una instancia de contenedor de Amazon ECS :
Elija una AMI para su instancia de contenedor. Puede elegir la AMI optimizada para Amazon ECS u otro sistema operativo, como CoreOS o Ubuntu. Si no elige la AMI optimizada para Amazon ECS, debe seguir los procedimientos de Instalación del agente de contenedor de Amazon ECS .
De forma predeterminada, su instancia de contenedor se inicia en su clúster predeterminado. Si desea iniciar su propio clúster en lugar del predeterminado, elija la lista Detalles avanzados y pegue la siguiente secuencia de comandos en el campo de datos de usuario, reemplazando your_cluster_name con el nombre de su clúster.
#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
O, si tiene un archivo ecs.config en Amazon S3 y ha habilitado el acceso de solo lectura de Amazon S3 a su función de instancia de contenedor, elija la lista Detalles avanzados y pegue la siguiente secuencia de comandos en el campo Datos de usuario, reemplazando your_bucket_name con el nombre de su bucket para instalar la AWS CLI y escribir su archivo de configuración en el momento del lanzamiento. Nota Para obtener más información sobre esta configuración, consulte Almacenamiento de la configuración de la instancia de contenedor en Amazon S3.
#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
Solo para aclararlo más, puede crear contenedores en su única EC2
instancia sin ECS
. Instale cualquier tecnología de contenedorización, es decir, Docker
ejecute el comando de creación de contenedor, estableciendo su EC2
como Docker
host y tenga tantos Docker
contenedores como desee (o tanto como lo EC2
permitan sus recursos).
En palabras simples, ECS es un administrador, mientras que las instancias EC2 son como empleados. Todos los empleados (EC2) bajo este gerente (ECS) pueden realizar tareas "Docker" y el gerente también entiende bastante bien "Docker". Por lo tanto, siempre que necesite recursos "docker", se presenta al Administrador. El gerente ya tiene el estado de cada empleado (EC2) decide cuál debe realizar la tarea.
Ahora, volviendo a su pregunta, un gerente sin un "empleado" no tiene sentido.
fuente
EC2 le permite lanzar instancias individuales que puede usar para prácticamente lo que quiera. ECS es un servicio de contenedor, lo que significa que lanzará instancias que estarán listas para lanzar aplicaciones de contenedor. La principal distinción entre los dos servicios es que con EC2 debe administrar cada instancia por separado en el método que elija (manualmente, utilizando una herramienta CM o de cualquier otra manera): implemente sus aplicaciones y mantenga la conexión entre los servidores usted mismo. ECS le permite lanzar un clúster de máquinas que servirán como el terreno de implementación de sus aplicaciones de contenedor, lo que le permitirá tratar todas las instancias del clúster como una gran instancia disponible para su carga de trabajo de contenedor.
Y para responder a su pregunta, puede iniciar un clúster de ECS sin instancias en él, pero luego no podrá ejecutar nada en él. Una vez que registre una instancia EC2 dentro de un clúster de ECS, los contenedores estarán listos para ejecutarse en él. Entonces, la conclusión es que puede usar tanto ECS como EC2 con una sola instancia, pero ese no es el caso de uso real para el que se crearon estos servicios.
fuente
En pocas palabras, Elastic Container Service (ECS) es un servicio de orquestación de contenedores de Docker.
Puede pedirle que ejecute una o más imágenes de Docker, ya sea como un " Servicio " capaz de escalar automáticamente o como una " Tarea " ad-hoc .
Los servicios y tareas se ejecutan en un " Clúster ". Originalmente, un clúster era un grupo de uno o más servidores EC2 preconfigurados que ejecutaban el Agente de clúster de ECS. El Cluster Agent programaría los contenedores en el servidor EC2. Estos servidores EC2 aparecen en su lista de instancias EC2 y se cobran a los costos regulares de EC2 por minuto. Incluso puede SSH en ellos como cualquier servidor EC2 normal. Si desea más capacidad para ejecutar más servicios o tareas, o si desea resistencia contra fallas de EC2, entonces necesitaría más servidores EC2.
Alrededor de noviembre de 2017, AWS agregó ECS Fargate . Ahora, un clúster puede ejecutarse "sin servidor" sin aprovisionar nodos EC2. Simplemente defina la cantidad de CPU y memoria que su tarea o servicio requiere para funcionar, lo que significa que solo paga por la CPU y el tiempo de memoria en lugar del EC2.
fuente
Bien, como sabe, EC2 es una máquina virtual en AWS y ECS es un sistema de orquestación de contenedores en AWS.
Para usar ECS, debe ejecutar su contenedor en algunas máquinas virtuales, EC2 es una de las opciones para proporcionarlo.
Deberá instalarlo
ecs-agent
en EC2 para establecer una conexión con ECS. Y ECS también puede monitorear el uso de recursos en su EC2. Básicamente, eliges el tipo de EC2 de más alto nivel, luego más recursos (CPU / MEM) que tu contenedor puede usar.fuente
La principal diferencia son las instancias de Fargate que proporciona ECS.
fuente