La liaison des conteneurs entre les définitions de tâches dans AWS ECS?
j'essaie de configurer une application web de base, qui a une base de données associée, en AWS ECS. Localement, j'ai ces configurations dans des conteneurs différents, et sur ECS, j'aimerais avoir des définitions de tâches séparées pour que je puisse les mettre à l'échelle séparément.
- j'ai enregistré ma première définition de tâche comme
david_mongodb
succès à L'ECS. Il dispose d'un conteneur nommédavid_mongodb
. - Puis j'ai essayé d'enregistrer mon deuxième tâche de définition
david_web
, qui a un récipient nommédavid_web
qui relie la base de données viadavid_mongodb:db
. quand je clique sur 'Create', il retourne une erreur:
Unable to create Task Definition Linked container 'david_mongodb:db' doesn't exist.
il semble que les définitions de tâches ne peuvent pas voir les noms de conteneur dans les autres définitions de tâches? Je pense mettre les deux david_web
et david_mongodb
les conteneurs dans la même définition de tâche fonctionnerait, mais je ne veux pas faire cela: il m'empêcherait de mettre à l'échelle soit l'application web ou la base de données séparément. vue d'ensemble semble confirmez que mon architecture est recommandée...
alors comment relier les conteneurs qui vivent dans des définitions de tâches différentes? Ou y a-t-il une autre façon intelligente de gérer ça?
1 réponses
les liens dans une définition de tâche ECS sont analogues à Panneau liens ne fonctionnent que lorsque les conteneurs sont partie de la même définition de tâche (conteneurs qui font partie d'une seule définition de tâche sont placés sur le même hôte). Afin de communiquer entre les conteneurs dans différentes définitions de tâches, vous aurez besoin d'un mécanisme pour découvrir où les conteneurs sont situés (quel hôte) ainsi que le port pour la communication.
L'ECS a une intégration avec Équilibrage des charges élastiques (équilibreurs de charges D'Application, équilibreurs de charges réseau et équilibreurs de charges classiques) par le biais de service où les tâches seront automatiquement enregistrées à la BEI et révoquées de manière appropriée.
ECS a aussi une intégration avec Route 53 Automatique De Nommage pour la découverte de services basée sur le DNS en utilisant A
et SRV
enregistrements. Les tâches de votre service peuvent être automatiquement saisies et retirées du DNS dossier.
Découverte de Service pour Amazon ECS à l'Aide de DNS décrit une approche différente où une fonction Lambda écoute le flux d'événements ECS à travers les événements CloudWatch et met à jour les enregistrements DNS Route 53. cette méthode a été remplacée par la fonction de nommage automatique de la Route 53 décrite ci-dessus.
si vous voulez éviter les équilibreurs de charge et DNS, un autre modèle pourrait être un l'ambassadeur conteneur (il y a un échantillon appelé ecs-tâche-cerf-volant qui utilise L'API ECS) ou vous pourriez être intéressé par un réseau de superposition (Weave a un guide de démarrage pour leur solution).
Nathan Peck suit de près un certain nombre de sujets liés aux SCE, y compris la découverte de services, ici.