Ta question
ECS est-il juste une installation de docker dans EC2? Si j'ai déjà un EC2, alors je démarre un ECS, cela signifie-t-il que j'ai deux instances?
Non. AWS ECS
Est juste un regroupement logique (cluster) d' EC2
instances, et toutes les EC2
instances faisant partie d'un ECS
agissent en tant Docker
qu'hôte, c'est-à-dire qu'ECS peut envoyer une commande pour lancer un conteneur sur elles ( EC2
). Si vous avez déjà un EC2 et que vous lancez ensuite ECS, vous aurez toujours une seule instance. Si vous ajoutez / enregistrez (en installant l'agent de conteneur AWS ECS) l'EC2 à ECS, il deviendra la partie du cluster, mais toujours une instance unique d'EC2.
Un Amazon ECS sans EC2 enregistré (ajouté au cluster) n'est bon à rien.
TL; DR
Un aperçu
EC2
- est simplement une machine distante (virtuelle).
ECS
signifie Elastic Container Service
- selon la définition de base du cluster d'ordinateurs , ECS
est essentiellement un groupement logique de
EC2
machines / instances . Techniquement parlant, il ECS
s'agit d'une simple configuration pour une utilisation et une gestion efficaces des ressources de votre EC2
( vos) instance (s) à savoir le stockage, la mémoire, le processeur, etc.
Pour simplifier encore plus, si vous avez lancé un Amazon ECS
sans aucune EC2
instance ajoutée, c'est bon à rien, c'est-à-dire que vous ne pouvez rien y faire. ECS
n'a de sens qu'une fois qu'une (ou plusieurs) EC2
instances y sont ajoutées.
La prochaine chose déroutante ici est le terme de conteneur - qui n'est pas des instances de machine entièrement virtualisées, et Docker est une technologie que nous pouvons utiliser pour créer des instances de conteneur. Docker
est un utilitaire que vous pouvez installer sur notre machine, ce qui en fait un Docker
hôte, et sur cet hôte, vous pouvez créer des conteneurs (comme les machines virtuelles - mais beaucoup plus légers). Pour résumer, il ECS
s'agit simplement de mettre en cluster des instances EC2 et d'utiliser Docker
pour instancier des conteneurs / instances / machines virtuelles sur ces EC2
hôtes ( ) .
Tout ce que vous avez à faire est de lancer ECS
et d'enregistrer / d'ajouter autant d' EC2
instances que vous en avez besoin. Vous pouvez ajouter / enregistrer des instances EC2, tout ce dont vous avez besoin est Amazon ECS Container Agent s'exécutant sur votre instance / machine EC2, ce qui peut être fait manuellement ou directement à l'aide de l'AMI spéciale (Amazon Machine Image), c'est-à-dire AMI optimisée pour Amazon ECS, qui a déjà l'agent de conteneur Amazon ECS. Lors du lancement d'une nouvelle instance EC2, l'agent l'enregistre automatiquement dans le cluster ECS par défaut.
L' agent de conteneur s'exécutant sur chacune des instances ( EC2
instances) d'un Amazon ECS
cluster envoie des informations sur les tâches en cours d'exécution de l'instance et l'utilisation des ressources à Amazon ECS, et démarre et arrête les tâches chaque fois qu'il reçoit une demande d'Amazon ECS. Pour plus d'informations, consultez Agent de conteneur Amazon ECS . Une fois définie, chacune des instances de conteneur créées (quelle que soit la EC2
machine / le nœud) sera une instance dans Amazon ECS
le swarm de.
Pour plus d'informations, lisez l'étape 10 de cette documentation: Lancement d'une instance de conteneur Amazon ECS :
Choisissez une AMI pour votre instance de conteneur. Vous pouvez choisir l'AMI optimisée pour Amazon ECS ou un autre système d'exploitation, tel que CoreOS ou Ubuntu. Si vous ne choisissez pas l'AMI optimisée pour Amazon ECS, vous devez suivre les procédures décrites dans Installation de l'agent de conteneur Amazon ECS .
Par défaut, votre instance de conteneur se lance dans votre cluster par défaut. Si vous souhaitez lancer dans votre propre cluster au lieu de celui par défaut, choisissez la liste Détails avancés et collez le script suivant dans le champ Données utilisateur, en remplaçant your_cluster_name par le nom de votre cluster.
#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
Ou, si vous disposez d'un fichier ecs.config dans Amazon S3 et avez activé l'accès en lecture seule Amazon S3 à votre rôle d'instance de conteneur, choisissez la liste Détails avancés et collez le script suivant dans le champ Données utilisateur, en remplaçant your_bucket_name par le nom de votre compartiment pour installer l'AWS CLI et écrire votre fichier de configuration au moment du lancement. Remarque Pour plus d'informations sur cette configuration, consultez Stockage de la configuration d'instance de conteneur dans Amazon S3.
#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
Juste pour clarifier les choses, vous pouvez créer des conteneurs sur votre seule EC2
instance sans ECS
. Installez n'importe quelle technologie de conteneurisation, c'est-à Docker
- dire et exécutez la commande create container, en définissant votre EC2
comme Docker
hôte, et ayez autant de Docker
conteneurs que vous le souhaitez (ou autant que les EC2
ressources de vos ressources le permettent).
En termes simples, ECS est un gestionnaire tandis que les instances EC2 sont comme les employés. Tous les employés (EC2) sous ce gestionnaire (ECS) peuvent effectuer des tâches "Docker" et le gestionnaire comprend également assez bien "docker". Ainsi, chaque fois que vous avez besoin de ressources "docker", vous vous présentez au Manager. Le gestionnaire a déjà le statut de chaque employé (EC2) décide lequel doit effectuer la tâche.
Maintenant, pour revenir à votre question, un gestionnaire sans «employé» n'a pas de sens.
la source
EC2 vous permet de lancer des instances individuelles que vous pouvez utiliser pour à peu près tout ce que vous voulez. ECS est un service de conteneur, ce qui signifie qu'il lancera des instances qui seront prêtes à lancer des applications de conteneur. La principale distinction entre les deux services est qu'avec EC2, vous devez gérer chaque instance séparément dans la méthode que vous choisissez (manuellement, à l'aide d'un outil CM ou de toute autre manière) - déployez vos applications et maintenez vous-même la connexion entre les serveurs. ECS vous permet de lancer un cluster de machines qui servira de terrain de déploiement de vos applications de conteneur, vous permettant de traiter toutes les instances du cluster comme une seule grande instance disponible pour votre charge de travail de conteneur.
Et pour répondre à votre question, vous pouvez démarrer un cluster ECS sans instance, mais il ne pourra rien y exécuter. Une fois que vous avez enregistré une instance EC2 dans un cluster ECS, les conteneurs sont prêts à y être exécutés. Donc, l'essentiel est que vous pouvez utiliser à la fois ECS et EC2 avec une seule instance, mais ce n'est pas le cas d'utilisation réel pour lequel ces services ont été conçus.
la source
En termes simples, Elastic Container Service (ECS) est un service d'orchestration de conteneurs Docker.
Vous pouvez lui demander d'exécuter une ou plusieurs images Docker, soit en tant que « Service » capable de mise à l'échelle automatique ou en tant que « Tâche » ad hoc .
Les services et tâches s'exécutent sur un « cluster ». À l'origine, un cluster était un groupe d'un ou de plusieurs serveurs EC2 préconfigurés exécutant ECS Cluster Agent. L'agent de cluster planifierait les conteneurs sur le serveur EC2. Ces serveurs EC2 apparaissent dans votre liste d'instances EC2 et sont facturés au prix normal EC2 par minute - Vous pouvez même utiliser SSH sur eux comme n'importe quel serveur EC2 normal. Si vous vouliez plus de capacité pour exécuter plus de services ou de tâches, ou si vous vouliez une résilience contre les pannes EC2, vous auriez plus de serveurs EC2.
Vers novembre 2017, AWS a ajouté ECS Fargate . Désormais, un cluster peut fonctionner "sans serveur" sans approvisionner les nœuds EC2. Vous définissez simplement la quantité de CPU et de mémoire dont votre tâche ou service a besoin pour fonctionner, ce qui signifie que vous ne payez que pour le temps CPU et mémoire plutôt que pour l'EC2.
la source
D'accord, comme vous le savez, EC2 est une machine virtuelle sur AWS et ECS est un système d'orchestration de conteneurs sur AWS.
Pour utiliser ECS, vous devez exécuter votre conteneur dans certaines machines virtuelles, EC2 étant l'une des options pour fournir cela.
Vous devrez installer
ecs-agent
sur EC2 pour établir une connexion avec ECS. Et ECS peut également surveiller les utilisations des ressources sur votre EC2. Donc, fondamentalement, vous choisissez le type EC2 de plus haut niveau, puis plus de ressources (CPU / MEM) que votre conteneur peut utiliser.la source
La différence majeure réside dans les instances Fargate fournies par ECS.
la source