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.
Architecture de votre solution pour Amazon ECS
Vous devez bâtir vos applications de manière à ce qu’elles puissent s’exécuter sur des conteneurs. Un conteneur est une unité standardisée de développement logiciel qui contient tout ce dont votre application logicielle a besoin pour être exécutée. Cela inclut le code, l'exécution, les outils système et les bibliothèques système pertinents. Les conteneurs sont créés à partir d'un modèle en lecture seule appelé image. Une image de conteneur est un artefact statique contenant votre application et ses dépendances. Les images sont généralement créées à partir d'un fichier Dockerfile. Un Dockerfile est un fichier en texte brut qui contient les instructions pour créer un conteneur. Après leur création, ces images sont stockées dans un registre, comme Amazon ECR, d'où elles peuvent être téléchargées.
Après avoir créé et stocké votre image, vous créez une définition de tâche Amazon ECS. Une définition de tâche est le plan de votre application. Il s'agit d'un fichier texte au format JSON qui décrit les paramètres et un ou plusieurs conteneurs qui forment votre application. Par exemple, vous pouvez l'utiliser pour spécifier l'image et les paramètres du système d'exploitation, les conteneurs à utiliser, les ports à ouvrir pour votre application et les volumes de données à utiliser avec les conteneurs dans la tâche. Les paramètres spécifiques disponibles pour votre définition de tâche dépendent des besoins de votre application spécifique.
Après avoir défini votre définition de tâche, vous la déployez sous forme de service ou de tâche sur votre cluster. Un cluster est un regroupement logique de tâches ou de services qui s'exécute sur l'infrastructure de capacité enregistrée dans un cluster.
Une tâche est l'instanciation d'une définition de tâche au sein d'un cluster. Vous pouvez exécuter une tâche autonome ou exécuter une tâche dans le cadre d'un service. Vous pouvez utiliser un service Amazon ECS service pour exécuter et gérer simultanément le nombre souhaité de tâches dans un cluster Amazon ECS. Le principe est le suivant : si l'une de vos tâches échoue ou s'arrête pour une raison quelconque, le planificateur de service d'Amazon ECS service lance une autre instance en fonction de votre définition de tâche. Il procède ainsi pour le remplacer et donc maintenir le nombre de tâches souhaité dans le service.
L'agent de conteneur s'exécute sur chaque instance de conteneur dans un cluster Amazon ECS. L'agent envoie à Amazon ECS des informations relatives aux tâches en cours d'exécution et à l'utilisation des ressources de vos conteneurs. Il démarre et arrête les tâches lorsqu'il reçoit une requête de la part d'Amazon ECS.
Une fois la tâche ou le service déployés, vous pouvez utiliser l'un des outils suivants pour surveiller votre déploiement et votre application :
-
CloudWatch
-
Surveillance d’exécution
Capacité
La capacité correspond à l’infrastructure sur laquelle vos conteneurs s’exécutent. Amazon ECS propose trois types d’infrastructure pour vos clusters :
-
Instances gérées Amazon ECS : gère AWS entièrement les EC2 instances Amazon sous-jacentes exécutées sur votre compte, y compris le provisionnement, l'application de correctifs et le dimensionnement. Cette option offre un équilibre optimal entre performances, rentabilité et simplicité opérationnelle.
-
Sans serveur (Fargate) : ne payez que pour les ressources utilisées par vos tâches sans gérer aucune infrastructure. Idéal pour les charges de travail variables et pour démarrer rapidement.
-
EC2 Instances Amazon : vous gérez directement les EC2 instances Amazon sous-jacentes, y compris la sélection, la configuration et la maintenance des instances.
Utilisez les instances gérées Amazon ECS lorsque :
vous recherchez la simplicité de Fargate avec un meilleur contrôle de l’infrastructure sous-jacente ;
vous avez besoin de performances prévisibles et d’une optimisation des coûts ;
Vous souhaitez AWS gérer la gestion de l'infrastructure tout en préservant la flexibilité.
Utilisez Fargate lorsque :
vous souhaitez vous concentrer sur votre application sans gérer l’infrastructure ;
vous avez des charges de travail variables ou imprévisibles ;
vous débutez avec les conteneurs et souhaitez l’option de déploiement la plus simple.
Utilisez les EC2 instances Amazon lorsque :
vous avez besoin d’exigences matérielles spécifiques (accélération du GPU, calcul haute performance) ;
vous avez besoin de réserves de capacité ou de types d’instances spécifiques ;
Vous avez besoin de fonctionnalités privilégiées ou personnalisées AMIs.
L’infrastructure est spécifiée lors de la création d’un cluster. Le type d’infrastructure est également spécifié lors de l’enregistrement d’une définition de tâche. La définition de la tâche désigne l’infrastructure sous le nom de « type de lancement ». Vous pouvez également faire appel à des fournisseurs de capacité.
Points de terminaison de service
Le point de terminaison du service est l'URL du point d'entrée d'Amazon ECS que vous utilisez pour vous connecter au service par programmation à l'aide du protocole Internet version 4 (IPv4) ou du protocole Internet version 6 (IPv6). Par défaut, les demandes que vous effectuez pour vous connecter à Amazon ECS par programmation utilisent des points de terminaison de service qui ne prennent en charge que les demandes. IPv4 Pour vous connecter par programmation à Amazon ECS à l'aide de l'une IPv4 ou de plusieurs IPv6 requêtes, vous pouvez utiliser un point de terminaison à double pile. Pour de plus amples informations sur les points de terminaison à double pile, consultez la section Utilisation des points de terminaison à double pile Amazon ECS.
Réseaux
AWS les ressources sont créées dans des sous-réseaux. Lorsque vous utilisez EC2 des instances, Amazon ECS lance les instances dans le sous-réseau que vous spécifiez lorsque vous créez un cluster. Vos tâches s’exécutent dans le sous-réseau de l’instance. Pour Fargate ou les machines virtuelles sur site, vous spécifiez le sous-réseau lorsque vous exécutez une tâche ou créez un service.
Selon votre application, le sous-réseau peut être un sous-réseau privé ou public et le sous-réseau peut se trouver dans l'une des ressources suivantes : AWS
-
Zones de disponibilité
-
Local Zones
-
Zones Wavelength
-
Régions AWS
-
AWS Outposts
Pour plus d’informations, consultez Applications Amazon ECS dans des sous-réseaux partagés, des zones locales et des Zones Wavelength ou Amazon Elastic Container Service sur AWS Outposts.
Vous pouvez connecter votre application à Internet à l’aide de l’une des méthodes suivantes :
-
Un sous-réseau public avec une passerelle Internet
Utilisez des sous-réseaux publics lorsque vous avez des applications publiques qui nécessitent de grandes quantités de bande passante ou une latence minimale. Les scénarios applicables incluent le streaming vidéo et les services de jeux.
-
Un sous-réseau privé avec une passerelle NAT
Utilisez des sous-réseaux privés lorsque vous souhaitez protéger vos conteneurs d’un accès externe direct. Les scénarios applicables incluent les systèmes de traitement des paiements ou les conteneurs stockant les données utilisateur et les mots de passe.
-
AWS PrivateLink
AWS PrivateLink Utilisez-le pour bénéficier d'une connectivité privée entre les VPCs AWS services et vos réseaux locaux sans exposer votre trafic à l'Internet public.
Accès aux fonctionnalités
Vous pouvez utiliser les paramètres de votre compte Amazon ECS pour accéder aux fonctionnalités suivantes :
-
Container Insights
CloudWatch Container Insights collecte, agrège et résume les métriques et les journaux de vos applications conteneurisées et de vos microservices. Les métriques incluent l'utilisation des ressources telles que l'UC, la mémoire, le disque et le réseau.
-
Jonction
awsvpcPour certains types d' EC2 instances, des interfaces réseau supplémentaires (ENIs) peuvent être disponibles sur les instances de conteneur récemment lancées.
-
Autorisation de balisage
Les utilisateurs doivent être autorisés à effectuer les actions qui créent la ressource, comme
ecsCreateCluster. Si des balises sont spécifiées dans l'action de création de ressources, octroie AWS une autorisation supplémentaire à l'ecs:TagResourceaction afin de vérifier si les utilisateurs ou les rôles sont autorisés à créer des balises. -
Conformité de Fargate à la norme FIPS-140
Fargate prend en charge la norme Federal Information Processing Standard (FIPS-140), qui spécifie les exigences de sécurité pour les modules cryptographiques qui protègent des informations sensibles. Il s'agit de la norme gouvernementale en vigueur aux États-Unis et au Canada, applicable aux systèmes qui doivent être conformes à la loi sur la gestion de la sécurité des informations fédérales (FISMA) ou au programme fédéral de gestion des risques et des autorisations (FedRAMP).
-
Modification de l’heure de mise hors service de tâche Fargate
Vous pouvez configurer la période d’attente avant que les tâches ne soient mises hors service pour l’application de correctif.
-
VPC à double pile
Autorisez les tâches à communiquer entre IPv6 elles ou les deux. IPv4
-
Format Amazon Resource Name (ARN)
Certaines fonctionnalités, telles que l’autorisation d’étiquetage, nécessitent un nouveau format Amazon Resource Name (ARN).
Pour de plus amples informations, veuillez consulter Accès aux fonctionnalités d’Amazon ECS avec les paramètres du compte.
Rôles IAM
Un rôle IAM est une identité IAM que vous pouvez créer dans votre compte et qui dispose d’autorisations spécifiques. Dans Amazon ECS, vous pouvez créer des rôles pour accorder des autorisations à des ressources Amazon ECS telles que des conteneurs ou des services.
Certaines fonctionnalités d’Amazon ECS nécessitent des rôles. Pour de plus amples informations, veuillez consulter Rôles IAM pour Amazon ECS.
Logging
La journalisation et la surveillance sont des aspects importants pour maintenir la fiabilité, la disponibilité et les performances des charges de travail Amazon ECS. Les options suivantes sont disponibles :
-
Amazon CloudWatch logs - acheminer les journaux vers Amazon CloudWatch
-
FireLenspour Amazon ECS : acheminez les journaux vers un AWS service ou une AWS Partner Network destination pour le stockage et l'analyse des journaux. AWS Partner Network Il s'agit d'une communauté mondiale de partenaires qui tire parti des programmes, de l'expertise et des ressources pour créer, commercialiser et vendre des offres aux clients.
Pratiques exemplaires relatives aux images de conteneur
Les principes clés relatifs aux images de conteneurs Amazon ECS sont les suivants :
-
Inclure toutes les dépendances dans l’image
-
Exécuter un processus par conteneur
-
Gérer
SIGTERMpour des arrêts gracieux -
Écrire des journaux dans
stdoutetstderr -
Utilisez des balises uniques, évitez
latesten production