Quelle est la différence entre Amazon ECS et Amazon EC2?

Je viens juste de commencer avec AWS EC2, je comprends que EC2 est comme un ordinateur distant, je peux faire à peu près tout ce que je veux. Alors je trouve ECS, je sais qu’il utilise docker mais confondu par la relation entre ces deux.

ECS est-il juste un docker installé dans EC2? Si j’ai déjà un EC2, alors je lance un ECS, cela signifie-t-il que j’ai deux instances?

Ta question

ECS est-il juste un docker installé dans EC2? Si j’ai déjà un EC2, alors je lance un ECS, cela signifie-t-il que j’ai deux instances?

Non. AWS ECS n’est qu’un regroupement logique d’instances EC2 et toutes les instances EC2 d’une ECS agissent en tant qu’hôte Docker , c’est-à-dire qu’ECS peut envoyer une commande pour lancer un conteneur sur elles ( EC2 ). Si vous avez déjà un EC2, puis lancez ECS, vous aurez toujours une seule instance. Si vous ajoutez / enregistrez (en installant l’agent conteneur AWS ECS), l’EC2 à ECS deviendra la partie du cluster, mais toujours une seule instance de EC2.

Un Amazon ECS sans EC2 enregistré (ajouté au cluster) ne sert à 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 informatique , ECS est essentiellement un regroupement logique de machines / instances EC2 . Techniquement parlant, ECS est une simple configuration pour une utilisation et une gestion efficaces de vos ressources d’instance (s) EC2 (stockage, mémoire, CPU, etc.).

Pour le simplifier davantage, si vous avez lancé un Amazon ECS sans ajout d’ EC2 , il ne sert à rien, c’est-à-dire que vous ne pouvez rien y faire. ECS n’a de sens qu’une fois qu’une ou plusieurs instances EC2 y ont été ajoutées.

La prochaine difficulté est le terme conteneur – qui n’est pas entièrement virtualisé des instances de la machine, 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 ordinateur, ce qui en fait un hôte Docker . Sur cet hôte, vous pouvez créer des conteneurs (identiques aux machines virtuelles, mais beaucoup plus légères). En résumé, ECS concerne uniquement le clustering des instances EC2 et utilise Docker pour instancier des conteneurs / instances / machines virtuelles sur ces hôtes ( EC2 ) .

Tout ce que vous avez à faire est de lancer un ECS et d’enregistrer / append autant d’instances EC2 que nécessaire. Vous pouvez append / enregistrer des instances EC2, tout ce dont vous avez besoin est Amazon ECS Container Agent exécuté sur votre instance / machine EC2, ce qui peut être fait manuellement ou directement à l’aide de l’AMI (Amazon Machine Image) spéciale AMI d’Amazon ECS. 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 (instances EC2 ) d’un cluster Amazon ECS envoie des informations sur les tâches en cours d’exécution et l’utilisation des ressources de l’instance à 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, voir Agent de conteneur Amazon ECS . Une fois définie, chacune des instances de conteneur créées (quelle que soit la machine / le nœud EC2 ) sera une instance dans Amazon ECS .


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 une 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 est lancée dans votre cluster par défaut. Si vous souhaitez lancer votre propre cluster au lieu de celui par défaut, choisissez la liste Advanced Details et collez le script suivant dans le champ User data, en remplaçant votre_cluster_name par le nom de votre cluster.

 #!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 

Ou, si vous avez un fichier ecs.config dans Amazon S3 et avez activé l’access en lecture seule d’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 nom_bucket 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, voir Stockage de la configuration d’une 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 cela, vous pouvez créer des conteneurs sur votre seule instance EC2 sans ECS . Installez n’importe quelle technologie de conteneurisation, par exemple Docker et exécutez la commande create container, en définissant votre EC2 tant qu’hôte Docker et en disposant autant de conteneurs Docker que vous le souhaitez (ou en fonction des ressources de votre EC2 ).

EC2 vous permet de lancer des instances individuelles que vous pouvez utiliser à peu près comme vous voulez. ECS est un service de conteneur, ce qui signifie qu’il lancera des instances prêtes à lancer des applications de conteneur. La principale distinction entre les deux services est que, avec EC2, vous devez gérer chaque instance séparément, quelle que soit la méthode choisie (manuellement, à l’aide d’un outil CM ou autre) – déployez vos applications et maintenez la connexion entre les serveurs. ECS vous permet de lancer un cluster de machines qui serviront de terrain de déploiement pour vos applications de conteneur, vous permettant de traiter toutes les instances du cluster comme une grande instance disponible pour votre charge de travail de conteneur.

Et pour répondre à votre question – Vous pouvez démarrer un cluster ECS sans qu’il y ait d’instance, mais il ne pourra rien y exécuter. Une fois que vous enregistrez une instance EC2 dans un cluster ECS, les conteneurs sont prêts à être exécutés. L’essentiel est que vous pouvez utiliser ECS et EC2 avec une seule instance, mais ce n’est pas le cas d’utilisation réel pour lequel ces services ont été construits.