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.
Composants d'Amazon ECS Service Connect
Lorsque vous utilisez Amazon ECS Service Connect, vous configurez chaque ECS service Amazon pour exécuter une application serveur qui reçoit des demandes réseau (service client-serveur) ou pour exécuter une application cliente qui fait les demandes (service client).
Lorsque vous vous préparez à utiliser Service Connect, commencez par un service client-serveur. Vous pouvez ajouter une configuration Service Connect à un nouveau service ou à un service existant. Amazon ECS crée un point de terminaison Service Connect dans l'espace de noms. En outre, Amazon ECS crée un nouveau déploiement dans le service pour remplacer les tâches en cours d'exécution.
Les tâches existantes et les autres applications peuvent continuer à se connecter aux points de terminaison existants et aux applications externes. Si un service client-serveur ajoute des tâches avec sa montée en puissance, les nouvelles connexions des clients seront équilibrées entre toutes les tâches. Si un service client-serveur est mis à jour, les nouvelles connexions des clients seront équilibrées entre les tâches de la nouvelle version.
Les tâches existantes ne peuvent pas être résolues et se connecter au nouveau point de terminaison. Seules les nouvelles tâches dont une configuration Service Connect se trouve dans le même espace de noms et qui commencent à s'exécuter après ce déploiement peuvent être résolues et se connecter à ce point de terminaison.
Cela signifie que l'opérateur de l'application cliente détermine quand la configuration de son application change, même si l'opérateur de l'application serveur peut modifier sa configuration à tout moment. La liste des points de terminaison de l'espace de noms peut changer chaque fois qu'un service est déployé dans l'espace de noms. Les tâches existantes et les tâches de remplacement continuent de se comporter comme elles le faisaient après le déploiement le plus récent.
Considérez les exemples suivants.
Tout d'abord, supposons que vous créez une application disponible sur l'Internet public dans un AWS CloudFormation modèle unique et une AWS CloudFormation pile unique. La découverte et l'accessibilité publiques doivent être créées en dernier lieu par AWS CloudFormation, y compris le service client frontal. Les services doivent être créés dans cet ordre afin d'éviter toute période pendant laquelle le service client frontend fonctionne et est accessible au public, alors que le backend ne l'est pas. Cela permet d'éliminer l'envoi de messages d'erreur au public pendant cette période. Dans AWS CloudFormation, vous devez utiliser le dependsOn
pour indiquer à AWS CloudFormation que plusieurs ECS services Amazon ne peuvent pas être créés en parallèle ou simultanément. Vous devez ajouter la valeur dependsOn
au service client frontal pour chaque service backend client-serveur auquel les tâches clientes se connectent.
Ensuite, supposons qu'un service frontal existe sans configuration Service Connect. Les tâches se connectent à un service backend existant. Ajoutez d'abord une configuration Service Connect client-serveur au service backend, en utilisant le même nom dans le DNSou clientAlias
que celui utilisé par le frontend. Cela crée un nouveau déploiement, si bien que la détection de toutes les restaurations de déploiement ou AWS Management Console AWS CLI, AWS SDKs ainsi que d'autres méthodes de restauration et rétablir le service de backend avec la configuration et le déploiement précédents. Si vous êtes satisfait des performances et du comportement du service backend, ajoutez une configuration Service Connect client ou client-serveur au service frontal. Seules les tâches du nouveau déploiement utilisent le proxy Service Connect qui est ajouté à ces nouvelles tâches. Si vous rencontrez des problèmes avec cette configuration, vous pouvez revenir à votre configuration précédente en utilisant la détection de restauration du déploiement ou AWS Management Console AWS CLI, AWS SDKs ainsi que d'autres méthodes de restauration et rétablir le service de backend avec la configuration et le déploiement précédents. Si vous utilisez un autre système de découverte de services basé sur Service Connect, toutes DNS les applications frontales ou clientes commencent à utiliser de nouveaux points de terminaison et à modifier la configuration des points de terminaison après l'expiration du DNS cache local, ce qui prend généralement plusieurs heures.
Réseaux
Par défaut, le proxy Service Connect écoute le mappage containerPort
de ports de définition de tâche. Les règles de votre groupe de sécurité doivent autoriser le trafic entrant (entrant) à ce port depuis les sous-réseaux sur lesquels les clients seront exécutés.
Même si vous définissez un numéro de port dans la configuration du service Service Connect, cela ne modifie pas le port du service client-serveur écouté par le proxy Service Connect. Lorsque vous définissez ce numéro de port, Amazon ECS modifie le port du point de terminaison auquel les services clients se connectent, sur le proxy Service Connect au sein de ces tâches. Le proxy du service client se connecte au proxy du service client-serveur à l'aide du containerPort
.
Si vous souhaitez modifier le port sur lequel le proxy Service Connect écoute, modifiez le ingressPortOverride
dans la configuration Service Connect du service client-serveur. Si vous modifiez ce numéro de port, vous devez autoriser le trafic entrant sur ce port utilisé par le trafic vers ce service.
Le trafic que vos applications envoient aux ECS services Amazon configurés pour Service Connect nécessite qu'Amazon VPC et les sous-réseaux disposent de règles de table de routage et de ACL règles réseau qui autorisent les containerPort
numéros de ingressPortOverride
port que vous utilisez.
Vous pouvez utiliser Service Connect pour envoyer du trafic entre les deuxVPCs. Les mêmes exigences en matière de règles de table de routage, de réseau ACLs et de groupes de sécurité s'appliquent aux deuxVPCs.
Par exemple, deux clusters créent des tâches différentesVPCs. Un service dans chaque cluster est configuré pour utiliser le même espace de noms. Les applications dans ces deux services peuvent résoudre tous les points de terminaison de l'espace de noms sans aucune VPC DNS configuration. Cependant, les proxys ne peuvent pas se connecter à moins que le VPC peeringVPC, ou les tables de routage des sous-réseaux, et le VPC réseau n'ACLsautorisent le trafic sur les numéros de port containerPort
etingressPortOverride
.
Pour les tâches utilisant le mode bridge
réseau, vous devez créer un groupe de sécurité doté d'une règle entrante autorisant le trafic sur la plage de ports dynamiques supérieure. Attribuez ensuite le groupe de sécurité à toutes les EC2 instances du cluster Service Connect.
Proxy Service Connect
Si vous créez ou mettez à jour un service avec la configuration Service Connect, Amazon ECS ajoute un nouveau conteneur à chaque nouvelle tâche dès son démarrage. Ce modèle d'utilisation d'un conteneur séparé est nommé sidecar
. Ce conteneur n'est pas présent dans la définition de la tâche et vous ne pouvez pas le configurer. Amazon ECS gère la configuration du conteneur dans le service. Cela vous permet de réutiliser les mêmes définitions de tâches entre plusieurs services, espaces de noms et tâches sans Service Connect.
Ressource de proxy
-
Pour les définitions de tâches, vous devez définir les paramètres CPU et de mémoire.
Nous vous recommandons d'ajouter 256 CPU unités supplémentaires et au moins 64 Mio de mémoire à votre tâche CPU et à la mémoire pour le conteneur de proxy Service Connect. Dans AWS Fargate, la quantité de mémoire la plus faible que vous pouvez définir est de 512 Mio de mémoire. Sur AmazonEC2, la mémoire de définition des tâches est requise.
-
Pour le service, vous définissez la configuration du journal dans la configuration Service Connect.
-
Si vous prévoyez que les tâches de ce service reçoivent plus de 500 demandes par seconde à leur charge maximale, nous vous recommandons d'ajouter 512 CPU unités à votre tâche CPU dans cette définition de tâche pour le conteneur de proxy Service Connect.
-
Si vous prévoyez de créer plus de 100 services Service Connect dans l'espace de noms ou 2 000 tâches au total pour tous les ECS services Amazon dans l'espace de noms, nous vous recommandons d'ajouter 128 Mio de mémoire à votre mémoire de tâche pour le conteneur de proxy Service Connect. Vous devez le faire dans chaque définition de tâche utilisée par tous les ECS services Amazon dans l'espace de noms.
Configuration du proxy
Vos applications se connectent au proxy dans le conteneur sidecar dans le cadre de la même tâche dans laquelle se trouve l'application. Amazon ECS configure la tâche et les conteneurs de telle sorte que les applications ne se connectent au proxy que lorsque l'application est connectée aux noms des points de terminaison dans le même espace de noms. Tout le reste du trafic n'utilise pas le proxy. L'autre trafic inclut les adresses IP du même traficVPC, les points de terminaison de AWS service et le trafic externe.
- Equilibrage de charge
-
Service Connect configure le proxy pour qu'il utilise la stratégie alternée pour équilibrer la charge entre les tâches d'un point de terminaison Service Connect. Le proxy local présent dans la tâche d'où provient la connexion choisit l'une des tâches du service client-serveur qui fournit le point de terminaison.
Prenons l'exemple d'une tâche exécutée WordPress dans un service configuré en tant que service client dans un espace de noms appelé local. Il existe un autre service avec deux tâches qui exécutent la base de SQL données Ma base de données. Ce service est configuré pour fournir un point de terminaison appelé
mysql
via Service Connect dans le même espace de noms. Dans WordPress cette tâche, l' WordPress application se connecte à la base de données en utilisant le nom du point de terminaison. Les connexions à ce nom sont dirigées vers le proxy qui s'exécute dans un conteneur sidecar dans le cadre de la même tâche. Le proxy peut ensuite se connecter à l'une ou l'autre de mes SQL tâches en utilisant la stratégie alternée.Stratégies d'équilibrage de charge : alternance
- Détection des valeurs aberrantes
-
Cette fonctionnalité utilise les données dont dispose le proxy concernant les échecs de connexion précédents pour éviter d'envoyer de nouvelles connexions aux hôtes dont les connexions ont échoué. Service Connect configure la fonctionnalité de détection des valeurs aberrantes du proxy afin de fournir des surveillances de l'état passives.
Dans l'exemple précédent, le proxy peut se connecter à l'une ou l'autre des Mes SQL tâches. Si le proxy a établi plusieurs connexions à une SQL tâche Ma tâche spécifique et que 5 connexions ou plus ont échoué au cours des 30 dernières secondes, le proxy évite cette SQL tâche pendant 30 à 300 secondes.
- Nouvelle tentative
-
Service Connect configure le proxy pour qu'il tente à nouveau la connexion qui passe par le proxy et échoue, et la deuxième tentative évite d'utiliser l'hôte de la connexion précédente. Cela garantit que chaque connexion via Service Connect n'échoue pas pour des raisons ponctuelles.
Nombre de nouvelles tentatives : 2
- Expiration
-
Service Connect configure le proxy pour qu'il attende au maximum que vos applications client-serveur répondent. La valeur de délai d'attente par défaut est de 15 secondes, mais elle peut être mise à jour.
Paramètres facultatifs :
idleTimeout‐ Durée en secondes pendant laquelle une connexion reste active lorsqu'elle est inactive. Une valeur de
0
désactive.idleTimeout
La
idleTimeout
valeur par défaut pourHTTP
/HTTP2
/GRPC
est de 5 minutes.La durée
idleTimeout
par défautTCP
est de 1 heure.perRequestTimeout‐ Le temps d'attente pour que l'amont réponde avec une réponse complète par demande. La valeur est
0
désactivéeperRequestTimeout
. Cela ne peut être défini que lorsque le conteneurappProtocol
de l'application estHTTP
/HTTP2
/GRPC
. La durée par défaut est de 15 secondes.Note
S'
idleTimeout
il est défini sur une durée inférieure àperRequestTimeout
, la connexion se ferme lorsque leidleTimeout
est atteint et non leperRequestTimeout
.
Considérations
Prenez les points suivants en compte lors de l'utilisation de Service Connect :
-
Les tâches qui s'exécutent dans Fargate doivent utiliser la version de la plateforme Linux Fargate ou une version
1.4.0
ultérieure pour utiliser Service Connect. -
La version de ECS l'agent Amazon sur l'instance de conteneur doit être
1.67.2
ou supérieure. -
Les instances de conteneur doivent exécuter la AMI version 2023
20230428
ou ultérieure d'Amazon Linux ECS optimisée pour Amazon, ou la AMI version ECS optimisée d'Amazon Linux 22.0.20221115
pour utiliser Service Connect. Ces versions disposent de l'agent Service Connect en plus de l'agent de ECS conteneur Amazon. Pour de plus amples informations sur l'agent Service Connect, veuillez consulter Agent Amazon ECS Service Connectsur GitHub. -
Les instances de conteneur doivent disposer de l'autorisation
ecs:Poll
pour la ressourcearn:aws:ecs:
. Si vous utilisez leregion
:0123456789012
:task-set/cluster
/*ecsInstanceRole
, vous n'avez pas besoin d'ajouter d'autorisations supplémentaires. La stratégie gérée parAmazonEC2ContainerServiceforEC2Role
dispose de ces autorisations. Pour de plus amples informations, veuillez consulter IAMRôle de l'instance de ECS conteneur Amazon. -
Seuls les services qui utilisent des déploiements continus sont pris en charge par Service Connect.
-
Les tâches qui utilisent le mode
bridge
réseau et utilisent Service Connect ne prennent pas en charge le paramètre de définition duhostname
conteneur. -
Les définitions de tâches doivent définir la limite de mémoire des tâches pour utiliser Service Connect. Pour de plus amples informations, veuillez consulter Proxy Service Connect.
-
Les définitions de tâches qui définissent les limites de mémoire des conteneurs ne sont pas prises en charge.
Vous pouvez définir des limites de mémoire de conteneur sur vos conteneurs, mais vous devez définir la limite de mémoire des tâches sur un nombre supérieur à la somme des limites de mémoire des conteneurs. La mémoire supplémentaire CPU et la mémoire incluses dans les limites de tâches que vous n'allouez pas dans les limites de conteneur sont utilisées par le conteneur de proxy Service Connect et les autres conteneurs qui ne définissent pas de limites de conteneur. Pour de plus amples informations, veuillez consulter Proxy Service Connect.
-
Vous pouvez configurer Service Connect pour utiliser n'importe quel AWS Cloud Map espace de noms d'une même Compte AWS région.
-
Chaque service ne peut appartenir qu'à un seul espace de noms.
-
Seules les tâches créées par les services sont prises en charge.
-
Tous les points de terminaison doivent être uniques dans un espace de noms.
-
Tous les noms de découverte doivent être uniques dans un espace de noms.
-
Vous devez redéployer les services existants avant que les applications puissent résoudre de nouveaux points de terminaison. Les nouveaux points de terminaison ajoutés à l'espace de noms après le déploiement le plus récent ne seront pas ajoutés à la configuration de la tâche. Pour de plus amples informations, veuillez consulter Composants d'Amazon ECS Service Connect.
-
Service Connect ne supprime pas les espaces de noms lorsque des clusters sont supprimés. Vous devez supprimer les espaces de noms dans. AWS Cloud Map
-
Le trafic Application Load Balancer est acheminé par défaut via l'agent Service Connect en
awsvpc
mode réseau. Si vous souhaitez que le trafic non lié au service contourne l'agent Service Connect, utilisez leingressPortOverride
paramètre dans la configuration de votre service Service Connect.
Service Connect ne prend pas en charge les fonctionnalités suivantes :
-
Conteneurs Windows
-
HTTP 1.0
-
Tâches autonomes
-
Services utilisant les types de déploiement bleu/vert et externe
-
External
Les instances de conteneur pour Amazon ECS Anywhere ne sont pas prises en charge par Service Connect. -
PPv2
Régions dans lesquelles Service Connect est disponible
Amazon ECS Service Connect est disponible dans les AWS régions suivantes :
Nom de la région | Région |
---|---|
USA Est (Ohio) |
us-east-2 |
USA Est (Virginie du Nord) |
us-east-1 |
US West (N. California) |
us-west-1 |
US West (Oregon) |
us-west-2 |
Afrique (Le Cap) |
af-south-1 |
Asie-Pacifique (Hong Kong) |
ap-east-1 |
Asie-Pacifique (Jakarta) |
ap-southeast-3 |
Asie-Pacifique (Mumbai) |
ap-south-1 |
Asie-Pacifique (Hyderabad) |
ap-south-2 |
Asie-Pacifique (Osaka) |
ap-northeast-3 |
Asie-Pacifique (Séoul) |
ap-northeast-2 |
Asie-Pacifique (Singapour) |
ap-southeast-1 |
Asie-Pacifique (Sydney) |
ap-southeast-2 |
Asie-Pacifique (Melbourne) |
ap-southeast-4 |
Asie-Pacifique (Malaisie) |
ap-southeast-5 |
Asie-Pacifique (Tokyo) |
ap-northeast-1 |
Canada (Central) |
ca-central-1 |
Canada Ouest (Calgary) |
ca-west-1 |
Chine (Beijing) |
cn-north-1 (Remarque : TLS Service Connect n'est pas disponible dans cette région.) |
Chine (Ningxia) |
cn-northwest-1 (Remarque : TLS Service Connect n'est pas disponible dans cette région.) |
Europe (Francfort) |
eu-central-1 |
Europe (Irlande) |
eu-west-1 |
Europe (Londres) |
eu-west-2 |
Europe (Paris) |
eu-west-3 |
Europe (Milan) |
eu-south-1 |
Europe (Espagne) |
eu-south-2 |
Europe (Stockholm) |
eu-north-1 |
Europe (Zurich) |
eu-central-2 |
Israël (Tel Aviv) |
il-central-1 |
Moyen-Orient (Bahreïn) |
me-south-1 |
Moyen-Orient (UAE) |
me-central-1 |
Amérique du Sud (São Paulo) |
sa-east-1 |