Interconnectez les services Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interconnectez les services Amazon ECS

Les applications qui s'exécutent dans le cadre de tâches Amazon ECS ont souvent besoin de recevoir des connexions depuis Internet ou de se connecter à d'autres applications exécutées dans les services Amazon ECS. Si vous avez besoin de connexions externes depuis Internet, nous vous recommandons d'utiliser Elastic Load Balancing. Pour plus d'informations sur l'équilibrage de charge intégrée, consultez Utiliser l'équilibrage de charge pour distribuer le trafic du service Amazon ECS.

Si vous avez besoin d'une application pour vous connecter à d'autres applications qui s'exécutent dans les services Amazon ECS, Amazon ECS propose les méthodes suivantes pour le faire sans équilibreur de charge :

  • Amazon ECS Service Connect

    Nous recommandons Service Connect, qui fournit une configuration Amazon ECS pour la découverte de services, la connectivité et la surveillance du trafic. Avec Service Connect, vos applications peuvent utiliser des noms abrégés et des ports standard pour se connecter aux services Amazon ECS du même cluster ou à d'autres clusters, y compris entre les VPC du même Région AWS cluster.

    Lorsque vous utilisez Service Connect, Amazon ECS gère toutes les étapes de la découverte de services : création des noms susceptibles d'être découverts, gestion dynamique des entrées pour chaque tâche au démarrage et à l'arrêt des tâches, exécution d'un agent dans chaque tâche configuré pour découvrir les noms. Votre application peut rechercher les noms en utilisant les fonctionnalités standard pour les noms DNS et en établissant des connexions. Si votre application le fait déjà, vous n'avez pas besoin de la modifier pour utiliser Service Connect.

    Vous fournissez la configuration complète dans chaque définition de service et de tâche. Amazon ECS gère les modifications apportées à cette configuration lors de chaque déploiement de service, afin de garantir que toutes les tâches d'un déploiement se comportent de la même manière. Par exemple, un problème courant lié à la découverte du DNS en tant que service est le contrôle d'une migration. Si vous modifiez un nom DNS pour qu'il pointe vers les nouvelles adresses IP de remplacement, le délai TTL maximal peut être nécessaire avant que tous les clients commencent à utiliser le nouveau service. Avec Service Connect, le déploiement du client met à jour la configuration en remplaçant les tâches du client. Vous pouvez configurer le disjoncteur de déploiement et toute autre configuration de déploiement pour affecter les modifications de Service Connect de la même manière que pour tout autre déploiement.

    Pour plus d’informations, consultez Utilisez Service Connect pour connecter les services Amazon ECS avec des noms abrégés.

  • Découverte du service Amazon ECS

    Une autre approche de service-to-service communication est la communication directe à l'aide de la découverte de services. Dans cette approche, vous pouvez utiliser l'intégration de la découverte de AWS Cloud Map services avec Amazon ECS. À l'aide de la découverte de services, Amazon ECS synchronise la liste des tâches lancées avec AWS Cloud Map, ce qui permet de conserver un nom d'hôte DNS qui correspond aux adresses IP internes d'une ou de plusieurs tâches provenant de ce service en particulier. Les autres services d'Amazon VPC peuvent utiliser ce nom d'hôte DNS pour envoyer du trafic directement vers un autre conteneur à l'aide de son adresse IP interne.

    Cette approche de service-to-service communication permet une faible latence. Il n'y a aucun composant supplémentaire entre les récipients. Le trafic se déplace directement d'un conteneur à l'autre.

    Cette approche convient lorsque vous utilisez le mode awsvpc réseau, où chaque tâche possède sa propre adresse IP unique. La plupart des logiciels ne prennent en charge que l'utilisation d'Aenregistrements DNS, qui se résolvent directement en adresses IP. Lorsque vous utilisez le mode awsvpc réseau, l'adresse IP de chaque tâche est un A enregistrement. Toutefois, si vous utilisez le mode bridge réseau, plusieurs conteneurs peuvent partager la même adresse IP. En outre, les mappages de ports dynamiques entraînent l'attribution aléatoire de numéros de port aux conteneurs sur cette adresse IP unique. À ce stade, un A enregistrement ne suffit plus pour la découverte de services. Vous devez également utiliser un SRV enregistrement. Ce type d'enregistrement permet de suivre à la fois les adresses IP et les numéros de port, mais nécessite que vous configuriez les applications de manière appropriée. Certaines applications prédéfinies que vous utilisez peuvent ne pas prendre en charge SRV les enregistrements.

    Un autre avantage du mode awsvpc réseau est que vous disposez d'un groupe de sécurité unique pour chaque service. Vous pouvez configurer ce groupe de sécurité pour autoriser les connexions entrantes provenant uniquement des services en amont spécifiques qui doivent communiquer avec ce service.

    Le principal inconvénient de la service-to-service communication directe utilisant la découverte de services est que vous devez implémenter une logique supplémentaire pour effectuer de nouvelles tentatives et faire face aux échecs de connexion. Les enregistrements DNS ont une période time-to-live (TTL) qui contrôle la durée pendant laquelle ils sont mis en cache. Il faut un certain temps pour que l'enregistrement DNS soit mis à jour et que le cache expire afin que vos applications puissent récupérer la dernière version de l'enregistrement DNS. Il se peut donc que votre application finisse par résoudre l'enregistrement DNS pour qu'il pointe vers un autre conteneur qui n'existe plus. Votre application doit gérer les nouvelles tentatives et disposer d'une logique lui permettant d'ignorer les mauvais backends.

    Pour plus d’informations, consultez Utilisez la découverte des services pour connecter les services Amazon ECS aux noms DNS.

Tableau de compatibilité des modes réseau

Le tableau suivant décrit la compatibilité entre ces options et les modes réseau des tâches. Dans le tableau, le terme « client » fait référence à l'application qui établit les connexions depuis une tâche Amazon ECS.

Options d'interconnexion Pontée awsvpc Host (Hôte)
Découverte de service oui, mais nécessite que les clients soient au courant des enregistrements SRV dans le DNS sans hostPort. oui oui, mais nécessite que les clients soient au courant des enregistrements SRV dans le DNS sans hostPort.
Service Connect oui oui non