Votre question
Est-ce que ECS est juste une installation docker sur EC2? Si j'ai déjà un EC2, et que je démarre un ECS, est-ce que cela signifie que j'ai deux instances?
Non. AWS ECS
est juste un regroupement logique (cluster) d'instances EC2
, et toutes les instances EC2
faisant partie d'un ECS
agissent comme des hôtes Docker
c'est-à-dire que l'ECS peut envoyer des commandes pour lancer un conteneur sur eux (EC2
). Si vous avez déjà un EC2, et que vous lancez ensuite un ECS, vous aurez toujours une seule instance. Si vous ajoutez/enregistrez (en installant l'Agent de Conteneur AWS ECS) l'EC2 dans l'ECS, il deviendra partie du regroupement, mais restera tout de même une seule instance EC2.
Un Amazon ECS sans aucun EC2 enregistré (ajouté au cluster) ne sert à rien.
TL; DR
Un aperçu
EC2
- est tout simplement une machine distante (virtuelle).
ECS
signifie Elastic Container Service
- selon la définition de base d'un cluster informatique, ECS
est en fait un regroupement logique de machines/instances EC2
. Techniquement parlant, ECS
est simplement une configuration pour une utilisation efficace et gestion de vos ressources d'instance(s) EC2
comme le stockage, la mémoire, le CPU, etc.
Pour simplifier davantage, si vous avez lancé un Amazon ECS
sans aucune instance EC2
ajoutée, il ne servira à rien c'est-à-dire que vous ne pourrez rien faire avec. ECS
n'a de sens que lorsque une (ou plusieurs) instances EC2
y sont ajoutées.
La prochaine chose confuse ici est le terme de conteneur - qui ne sont pas des instances de machines entièrement virtualisées, et Docker est une technologie que nous pouvons utiliser pour créer des instances de conteneurs. Docker
est un utilitaire que vous pouvez installer sur votre machine, ce qui en fait un hôte Docker
, et sur cet hôte vous pouvez créer des conteneurs (similaires aux machines virtuelles - mais beaucoup plus légères). En résumé, ECS
concerne simplement le regroupement d'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'ajouter/enregistrer autant d'instances EC2
que vous en avez besoin. Vous pouvez ajouter/enregistrer des instances EC2, il vous suffit d'avoir l'Agent de Conteneur Amazon ECS en cours d'exécution sur votre instance/machine EC2, ce qui peut être fait manuellement ou directement en utilisant l'AMI spécial (Amazon Machine Image) c'est-à-dire l'AMI optimisé pour Amazon ECS, qui contient 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 fonctionnant sur chacune des instances (instances EC2
) au sein d'un cluster Amazon ECS
envoie des informations sur les tâches actuellement en cours d'exécution sur l'instance et sur 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, voir Agent de Conteneur Amazon ECS. Une fois configuré, chacune des instances de conteneur créées (issu quelque soit la machine/EC2
) sera une instance dans l'ensemble de 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 l'AMI optimisé pour Amazon ECS, ou un autre système d'exploitation, comme CoreOS ou Ubuntu. Si vous ne choisissez pas l'AMI optimisé pour Amazon ECS, vous devez suivre les procédures 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 le lancer dans votre propre cluster à la place du cluster par défaut, choisissez les détails avancés et collez le script suivant dans le champ de 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 avez un fichier ecs.config dans Amazon S3 et avez activé l'accès en lecture seule à Amazon S3 pour le rôle de votre instance de conteneur, choisissez les détails avancés et collez le script suivant dans le champ de données utilisateur, en remplaçant your_bucket_name par le nom de votre bucket pour installer AWS CLI et écrire votre fichier de configuration au moment du lancement. Note Pour plus d'informations sur cette configuration, consultez Stocker la Configuration de l'Instance du 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 davantage - vous pouvez créer des conteneurs sur votre unique instance EC2
sans ECS
. Installez l'une des technologies de conteneurisation c'est-à-dire Docker
et exécutez la commande de création de conteneur, en définissant votre EC2
comme un hôte Docker
, et créez autant de conteneurs Docker
que vous le souhaitez (ou autant que les ressources de votre EC2
le permettent).