Allouer une interface réseau pour une tâche 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.

Allouer une interface réseau pour une tâche Amazon ECS

Les fonctions de mise en réseau des tâches fournies par le mode réseau awsvpc attribuent aux tâches Amazon ECS les mêmes propriétés de mise en réseau que les instances Amazon EC2. L'utilisation du mode awsvpc réseau simplifie la mise en réseau des conteneurs, car vous pouvez mieux contrôler la façon dont vos applications communiquent entre elles et avec les autres services au sein de vos VPC. Le mode awsvpc réseau renforce également la sécurité de vos conteneurs en vous permettant d'utiliser des groupes de sécurité et des outils de surveillance réseau à un niveau plus détaillé dans le cadre de vos tâches. Vous pouvez également utiliser d'autres fonctionnalités réseau d'Amazon EC2, telles que les journaux de flux VPC pour surveiller le trafic en provenance et à destination de vos tâches. De plus, les conteneurs qui appartiennent à la même tâche peuvent communiquer via l'interface localhost.

La task elastic network interface (ENI) est une fonctionnalité entièrement gérée d'Amazon ECS. Amazon ECS crée l'ENI et l'attache à l'instance Amazon EC2 hôte avec le groupe de sécurité spécifié. La tâche envoie et reçoit le trafic réseau sur l'ENI de la même manière que les instances Amazon EC2 avec leurs interfaces réseau principales. Chaque ENI de tâche se voit attribuer une adresse IPv4 privée par défaut. Si votre VPC est activé pour le mode double pile et que vous utilisez un sous-réseau avec un bloc CIDR IPv6, l'ENI de tâche recevra également une adresse IPv6. Chaque tâche ne peut avoir qu'une seule ENI.

Ces ENI sont visibles dans la console Amazon EC2 de votre compte. Votre compte ne peut pas détacher ou modifier les ENI. L'objectif est d'empêcher la suppression accidentelle de toute ENI associée à une tâche en cours d'exécution. Vous pouvez consulter les informations de pièce jointe ENI pour les tâches dans la console Amazon ECS ou lors du fonctionnement de l'DescribeTasksAPI. Lorsque la tâche s'arrête ou si le service est réduit, l'ENI de la tâche est détachée et supprimée.

Lorsque vous avez besoin d'une densité ENI accrue, utilisez les paramètres du awsvpcTrunking compte. Amazon ECS crée et attache également une interface réseau « tronc » pour votre instance de conteneur. Le réseau « de jonction » est entièrement géré par Amazon ECS. L'ENI « de jonction » est supprimée lorsque vous résiliez votre instance de conteneur ou lorsque vous annulez son enregistrement dans le cluster Amazon ECS. Pour plus d'informations sur le paramétrage du awsvpcTrunking compte, consultezPrérequis.

Vous le spécifiez awsvpc dans le networkMode paramètre de la définition de la tâche. Pour plus d’informations, consultez Mode réseau.

Ensuite, lorsque vous exécutez une tâche ou créez un service, utilisez le networkConfiguration paramètre qui inclut un ou plusieurs sous-réseaux dans lesquels placer vos tâches et un ou plusieurs groupes de sécurité à associer à un ENI. Pour plus d’informations, consultez Configuration réseau. Les tâches sont placées sur des instances Amazon EC2 compatibles dans les mêmes zones de disponibilité que ces sous-réseaux et les groupes de sécurité spécifiés sont associés à l'ENI qui est allouée pour la tâche.

Considérations relatives à Linux

Tenez compte des éléments suivants lorsque vous utilisez le système d'exploitation Linux.

  • Si vous utilisez une instance p5.48xlarge en awsvpc mode, vous ne pouvez pas exécuter plus d'une tâche sur l'instance.

  • Les tâches et les services qui utilisent le mode awsvpc réseau nécessitent le rôle lié au service Amazon ECS pour fournir à Amazon ECS les autorisations nécessaires pour passer des appels vers d'autres AWS services en votre nom. Ce rôle est généré automatiquement lorsque vous créez un cluster, ou si vous créez ou mettez à jour un service dans la AWS Management Console. Pour plus d’informations, consultez Utilisation des rôles liés à un service pour Amazon ECS. Vous pouvez également créer le rôle lié à un service à l'aide de la commande suivante : AWS CLI

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Votre instance Linux Amazon EC2 Linux nécessite une version 1.15.0 ou une version ultérieure de l'agent de conteneur pour exécuter des tâches qui utilisent le mode réseau awsvpc. Si vous utilisez l'AMI Linux optimisée pour Amazon ECS, votre instance doit également au moins disposer de la version 1.15.0-4 du package ecs-init.

  • Amazon ECS remplit le nom d'hôte d'une tâche avec un nom d'hôte DNS (interne) fourni par Amazon lorsque les options enableDnsHostnames et enableDnsSupport sont toutes deux activées sur votre VPC. Si ces options ne sont pas activées, le nom d'hôte DNS de la tâche est un nom d'hôte aléatoire. Pour plus d'informations sur les paramètres DNS d'un VPC, veuillez consulter la rubrique Utilisation de DNS avec votre VPC dans le Guide de l'utilisateur Amazon VPC.

  • Les tâches Amazon ECS qui utilisent le mode réseau awsvpc reçoivent chacune leur propre interface réseau Elastic (ENI), qui est attachée à l'instance Amazon EC2 qui l'héberge. Il existe un quota par défaut pour le nombre d'interfaces réseau qui peuvent être attachées à une instance Amazon EC2 Linux. L'interface réseau principale est considérée comme une seule pour ce quota. Par exemple, par défaut, une instance c5.large peut avoir jusqu'à trois ENI pouvant lui être attachées. L'interface réseau principale de l'instance est considérée comme une interface réseau. Vous pouvez attacher deux ENI supplémentaires à l'instance. Dans la mesure où chaque tâche utilisant le mode réseau awsvpc nécessite une ENI, vous ne pouvez généralement exécuter que deux tâches sur ce type d'instance. Pour plus d'informations sur les limites ENI par défaut pour chaque type d'instance, consultez la section Adresses IP par interface réseau et par type d'instance dans le guide de l'utilisateur Amazon EC2.

  • Amazon ECS prend en charge le lancement d'instances Amazon EC2 Linux avec une augmentation de la densité ENI et utilisant des types d'instances pris en charge. Lorsque vous activez le paramètre de compte awsvpcTrunking et enregistrez les instances Linux Amazon EC2 à l'aide de ces types d'instance dans votre cluster, ces instances ont des quotas ENI plus élevés. L'utilisation de ces instances avec ce quota plus élevé signifie que vous pouvez placer davantage de tâches sur chaque instance Amazon EC2 Linux. Pour utiliser une densité ENI supérieure avec la fonctionnalité de jonction, vos instances Amazon EC2 doivent utiliser la version 1.28.1 ou ultérieure de l'agent de conteneur. Si vous utilisez une AMI optimisée pour Amazon ECS, votre instance doit également au moins disposer de la version 1.28.1-2 du package ecs-init. Pour en savoir plus sur l'acceptation du paramètre de compte awsvpcTrunking, consultez Accédez aux fonctionnalités d'Amazon ECS avec les paramètres du compte. Pour en savoir plus sur la jonction ENI, consultez Augmentation des interfaces réseau des instances de conteneur Linux Amazon ECS.

  • Lors de l'hébergement de tâches qui utilisent le mode réseau awsvpc sur les instances Linux Amazon EC2, les ENI de votre tâche ne reçoivent pas d'adresses IP publiques. Pour accéder à Internet, les tâches doivent être lancées dans un sous-réseau privé configuré pour utiliser une passerelle NAT. Pour plus d'informations, veuillez consulter NAT Gateways (Passerelles NAT) dans le Guide de l'utilisateur Amazon VPC. L'accès entrant au réseau doit se faire depuis un VPC avec l'adresse IP privée ou doit transiter par un équilibreur de charge au sein du VPC. Les tâches lancées dans les sous-réseaux publics n'ont pas accès à Internet.

  • Amazon ECS reconnaît uniquement les ENI qu'il attache à vos instances Amazon EC2 Linux. Si vous avez associé manuellement des ENI à vos instances, Amazon ECS peut tenter d'ajouter une tâche à une instance qui ne dispose pas de suffisamment de cartes réseau. Cela peut entraîner l'expiration de la tâche et le passage à un état de déprovisionnement, puis à un état d'arrêt. Nous vous recommandons de ne pas attacher manuellement des ENI à vos instances.

  • Les instances Amazon EC2 Linux doivent être enregistrées avec la capacité ecs.capability.task-eni pour pouvoir faire l'objet d'un placement des tâches avec le mode réseau awsvpc. Les instances exécutant la version 1.15.0-4 ou une version ultérieure d'ecs-init sont automatiquement enregistrées avec cet attribut.

  • Les ENI créées et attachées à vos instances Amazon EC2 Linux ne peuvent pas être détachées manuellement ni modifiées par votre compte. L'objectif est d'empêcher la suppression accidentelle de toute ENI associée à une tâche en cours d'exécution. Pour libérer les ENI d'une tâche, arrêtez cette dernière.

  • Il existe une limite de 16 sous-réseaux et 5 groupes de sécurité pouvant être spécifiés dans awsVpcConfiguration lors de l'exécution d'une tâche ou de la création d'un service qui utilise le mode réseau awsvpc. Pour plus d'informations, consultez le AwsVpcConfigurationmanuel Amazon Elastic Container Service API Reference.

  • Lorsqu'une tâche est démarrée avec le mode réseau awsvpc, l'agent de conteneur Amazon ECS crée un conteneur pause supplémentaire pour chaque tâche avant de démarrer les conteneurs dans la définition de tâche. Il configure ensuite l'espace de noms réseau du pause conteneur en exécutant les plugins amazon-ecs-cni-plugins CNI. L'agent démarre ensuite le reste des conteneurs dans la tâche afin qu'ils partagent la pile réseau du conteneur pause. Cela signifie que tous les conteneurs d'une tâche peuvent être adressés par les adresses IP de l'ENI et qu'ils peuvent communiquer entre eux via l'interface localhost.

  • Les services avec des tâches qui utilisent le mode réseau awsvpc prennent uniquement en charge Application Load Balancer et Network Load Balancer. Lorsque vous créez des groupes cibles pour ces services, vous devez choisir ip comme type de cible. N'utilisez pas  instance. En effet, les tâches qui utilisent le mode réseau awsvpc sont associées à une ENI, et non à une instance Amazon EC2 Linux. Pour plus d’informations, consultez Utiliser l'équilibrage de charge pour distribuer le trafic du service Amazon ECS.

  • Si votre VPC est mis à jour pour modifier le jeu d'options DHCP qu'il utilise, vous ne pouvez pas appliquer ces modifications aux tâches existantes. Commencez de nouvelles tâches en leur appliquant ces modifications, vérifiez qu'elles fonctionnent correctement, puis arrêtez les tâches existantes afin de modifier ces configurations réseau en toute sécurité.

Considérations relatives à Windows

Voici quelques points à prendre en compte lorsque vous utilisez le système d'exploitation Windows :

  • Les instances de conteneur utilisant l'AMI Windows Server 2016 optimisée pour Amazon ECS ne peuvent pas héberger des tâches qui utilisent le mode réseau awsvpc. Si vous disposez d'un cluster qui contient des AMI Windows Server 2016 optimisées pour Amazon ECS et des AMI Windows qui prennent en charge le mode réseau awsvpc, les tâches qui utilisent le mode réseau awsvpc ne sont pas lancées sur les instances Windows 2016 Server. Elles sont plutôt lancées sur des instances qui prennent en charge le mode réseau awsvpc.

  • Votre instance Windows Amazon EC2 nécessite une version 1.57.1 ou une version ultérieure de l'agent de conteneur pour utiliser CloudWatch les métriques pour les conteneurs Windows qui utilisent le mode awsvpc réseau.

  • Les tâches et les services qui utilisent le mode awsvpc réseau nécessitent le rôle lié au service Amazon ECS pour fournir à Amazon ECS les autorisations nécessaires pour passer des appels vers d'autres AWS services en votre nom. Ce rôle est généré automatiquement lorsque vous créez un cluster, ou si vous créez ou mettez à jour un service dans AWS Management Console. Pour plus d’informations, consultez Utilisation des rôles liés à un service pour Amazon ECS. Vous pouvez également créer le rôle lié à un service à l'aide de la commande suivante AWS CLI .

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Votre instance Amazon EC2 Windows nécessite une version 1.54.0 ou une version ultérieure de l'agent de conteneur pour exécuter des tâches qui utilisent le mode réseau awsvpc. Lorsque vous amorcez l'instance, vous devez configurer les options requises pour le mode réseau awsvpc. Pour plus d’informations, consultez Démarrage des instances de conteneur Windows Amazon ECS pour transmettre des données.

  • Amazon ECS remplit le nom d'hôte d'une tâche avec un nom d'hôte DNS (interne) fourni par Amazon lorsque les options enableDnsHostnames et enableDnsSupport sont toutes deux activées sur votre VPC. Si ces options ne sont pas activées, le nom d'hôte DNS de la tâche est un nom d'hôte aléatoire. Pour plus d'informations sur les paramètres DNS d'un VPC, veuillez consulter la rubrique Utilisation de DNS avec votre VPC dans le Guide de l'utilisateur Amazon VPC.

  • Les tâches Amazon ECS qui utilisent le mode réseau awsvpc reçoivent chacune leur propre interface réseau Elastic (ENI), qui est attachée à l'instance Amazon EC2 Windows qui l'héberge. Il existe un quota par défaut pour le nombre d'interfaces réseau pouvant être attachées à une instance Amazon EC2 Windows. L'interface réseau principale est considérée comme une seule pour ce quota. Par exemple, par défaut, une instance c5.large peut avoir jusqu'à trois ENI qui lui sont attachées. L'interface réseau principale de l'instance compte parmi celles-ci. Vous pouvez attacher deux ENI supplémentaires à l'instance. Dans la mesure où chaque tâche utilisant le mode réseau awsvpc nécessite une ENI, vous ne pouvez généralement exécuter que deux tâches sur ce type d'instance. Pour plus d'informations sur les limites ENI par défaut pour chaque type d'instance, consultez la section Adresses IP par interface réseau et par type d'instance dans le guide de l'utilisateur Amazon EC2.

  • Lors de l'hébergement de tâches qui utilisent le mode réseau awsvpc sur les instances Windows Amazon EC2, les ENI de votre tâche ne reçoivent pas d'adresses IP publiques. Pour accéder à Internet, lancez les tâches dans un sous-réseau privé configuré pour utiliser une passerelle NAT. Pour plus d'informations, veuillez consulter NAT Gateways (Passerelles NAT) dans le Guide de l'utilisateur Amazon VPC. L'accès entrant au réseau doit se faire depuis le VPC avec l'adresse IP privée ou doit transiter par un équilibreur de charge au sein du VPC. Les tâches lancées dans les sous-réseaux publics n'ont pas accès à Internet.

  • Amazon ECS reconnaît uniquement les ENI qu'il a attachées à votre instance Windows Amazon EC2. Si vous avez associé manuellement des ENI à vos instances, Amazon ECS peut tenter d'ajouter une tâche à une instance qui ne dispose pas de suffisamment de cartes réseau. Cela peut entraîner l'expiration de la tâche et le passage à un état de déprovisionnement, puis à un état d'arrêt. Nous vous recommandons de ne pas attacher manuellement des ENI à vos instances.

  • Les instances Amazon EC2 Windows doivent être enregistrées avec l'interface réseau ecs.capability.task-eni pour pouvoir faire l'objet d'un placement des tâches avec le mode réseau awsvpc.

  • Vous ne pouvez pas modifier ou détacher manuellement les ENI créées et attachées à vos instances Windows Amazon EC2. Cela vous évite de supprimer accidentellement une ENI associée à une tâche en cours d'exécution. Pour libérer les ENI d'une tâche, arrêtez cette dernière.

  • Vous pouvez uniquement spécifier jusqu'à 16 sous-réseaux et 5 groupes de sécurité dans awsVpcConfiguration, lorsque vous exécutez une tâche ou créez un service qui utilise le mode réseau awsvpc. Pour plus d'informations, consultez le AwsVpcConfigurationmanuel Amazon Elastic Container Service API Reference.

  • Lorsqu'une tâche est démarrée avec le mode réseau awsvpc, l'agent de conteneur Amazon ECS crée un conteneur pause supplémentaire pour chaque tâche avant de démarrer les conteneurs dans la définition de tâche. Il configure ensuite l'espace de noms réseau du pause conteneur en exécutant les plugins amazon-ecs-cni-plugins CNI. L'agent démarre ensuite le reste des conteneurs dans la tâche afin qu'ils partagent la pile réseau du conteneur pause. Cela signifie que tous les conteneurs d'une tâche peuvent être adressés par les adresses IP de l'ENI et qu'ils peuvent communiquer entre eux via l'interface localhost.

  • Les services avec des tâches qui utilisent le mode réseau awsvpc prennent uniquement en charge Application Load Balancer et Network Load Balancer. Lorsque vous créez des groupes cibles pour ces services, vous devez choisir le type de cible ip, et non instance. En effet, les tâches qui utilisent le mode réseau awsvpc sont associées à une ENI, et non à une instance Amazon EC2 Windows. Pour plus d’informations, consultez Utiliser l'équilibrage de charge pour distribuer le trafic du service Amazon ECS.

  • Si votre VPC est mis à jour pour modifier le jeu d'options DHCP qu'il utilise, vous ne pouvez pas appliquer ces modifications aux tâches existantes. Commencez de nouvelles tâches en leur appliquant ces modifications, vérifiez qu'elles fonctionnent correctement, puis arrêtez les tâches existantes afin de modifier ces configurations réseau en toute sécurité.

  • Les éléments suivants ne sont pas pris en charge lorsque vous utilisez le mode réseau awsvpc dans une configuration Windows EC2 :

    • Configuration à double pile

    • IPv6

    • Jonction ENI

Utilisation d'un VPC en mode double pile

Lorsque vous utilisez un VPC en mode double pile, vos tâches peuvent communiquer via IPv4 ou IPv6, ou les deux. Les adresses IPv4 et IPv6 sont indépendantes les unes des autres. Vous devez donc configurer le routage et la sécurité dans votre VPC séparément pour IPv4 et IPv6. Pour plus d'informations sur la configuration de votre VPC pour le mode double pile, consultez la rubrique Migration vers IPv6 dans le Guide de l'utilisateur Amazon VPC.

Si vous avez configuré votre VPC avec une passerelle Internet ou une passerelle Internet sortante uniquement, vous pouvez utiliser votre VPC en mode double pile. De ce fait, les tâches auxquelles une adresse IPv6 est attribuée peuvent accéder à Internet via une passerelle Internet ou une passerelle Internet de sortie uniquement. Les passerelles NAT sont facultatives. Pour plus d'informations, veuillez consulter les rubriques Passerelles Internet et Passerelle Internet en sortie uniquement dans le Guide de l'utilisateur Amazon VPC.

Une adresse IPv6 est attribuée aux tâches Amazon ECS si les conditions suivantes sont réunies :