Accédez à des applications de conteneur en privé sur Amazon ECS à l'aide d'AWS PrivateLink et d'un Network Load Balancer - Recommandations AWS

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.

Accédez à des applications de conteneur en privé sur Amazon ECS à l'aide d'AWS PrivateLink et d'un Network Load Balancer

Créée par Kirankumar Chandrashekar (AWS)

Environnement : Production

Technologies : conteneurs et microservices ; mise en réseau ; sécurité, identité, conformité ; applications Web et mobiles

Charge de travail : toutes les autres charges de travail

Services AWS : Amazon EC2 ; Amazon EC2 Auto Scaling ; Amazon EC2 Container Registry ; Amazon EFS ; Amazon RDS ; Amazon VPC ; Amazon ECS ; Elastic Load Balancing (ELB) ; AWS Lambda

Ce modèle décrit comment héberger en privé une application de conteneur Docker sur Amazon Elastic Container Service (Amazon ECS) derrière un Network Load Balancer, et comment accéder à l'application via AWS. PrivateLink Vous pouvez ensuite utiliser un réseau privé pour accéder en toute sécurité aux services sur le cloud Amazon Web Services (AWS). Amazon Relational Database Service (Amazon RDS) héberge la base de données relationnelle de l'application exécutée sur Amazon ECS avec haute disponibilité (HA). Amazon Elastic File System (Amazon EFS) est utilisé si l'application nécessite un stockage permanent.

Le service Amazon ECS exécutant les applications Docker, avec un Network Load Balancer sur le front-end, peut être associé à un point de terminaison de cloud privé virtuel (VPC) pour un accès via AWS. PrivateLink Ce service de point de terminaison VPC peut ensuite être partagé avec d'autres VPC en utilisant leurs points de terminaison VPC. 

Vous pouvez également utiliser AWS Fargate au lieu d'un groupe Amazon EC2 Auto Scaling. Pour plus d'informations, consultez Accéder aux applications de conteneur de manière privée sur Amazon ECS à l'aide d'AWS Fargate, d' PrivateLinkAWS et d'un Network Load Balancer.                          

Prérequis

Utiliser AWS PrivateLink pour accéder à une application de conteneur sur Amazon ECS via un Network Load Balancer.

Pile technologique

  • Amazon CloudWatch

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • Amazon EC2 Auto Scaling

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon ECS

  • Amazon RDS

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Lambda

  • AWS PrivateLink

  • AWS Secrets Manager

  • Application Load Balancer

  • Network Load Balancer

  • VPC

Automatisation et mise à l'échelle

  • Amazon EC2 — Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le cloud AWS.

  • Amazon EC2 Auto Scaling — Amazon EC2 Auto Scaling vous aide à vous assurer que vous disposez du nombre correct d'instances Amazon EC2 disponibles pour gérer la charge de votre application.

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) est un service de gestion de conteneurs rapide et hautement évolutif qui facilite l'exécution, l'arrêt et la gestion des conteneurs sur un cluster.

  • Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) est un service de registre d'images de conteneurs AWS géré qui est sécurisé, évolutif et fiable.

  • Amazon EFS — Amazon Elastic File System (Amazon EFS) fournit un système de fichiers NFS élastique simple, évolutif et entièrement géré à utiliser avec les services cloud AWS et les ressources sur site.

  • AWS Lambda — Lambda est un service de calcul permettant d'exécuter du code sans provisionner ni gérer de serveurs.

  • Amazon RDS — Amazon Relational Database Service (Amazon RDS) est un service Web qui facilite la configuration, l'exploitation et le dimensionnement d'une base de données relationnelle dans le cloud AWS.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) est un service de stockage pour Internet. Il est conçu pour faciliter l'informatique à l'échelle d'Internet pour les développeurs.

  • AWS Secrets Manager — Secrets Manager vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, en fournissant un appel d'API à Secrets Manager pour récupérer le secret par programmation.

  • Amazon VPC — Amazon Virtual Private Cloud (Amazon VPC) vous aide à déployer des ressources AWS dans un réseau virtuel que vous avez défini.

  • Elastic Load Balancing — Elastic Load Balancing distribue le trafic applicatif ou réseau entrant sur plusieurs cibles, telles que les instances Amazon EC2, les conteneurs et les adresses IP, dans plusieurs zones de disponibilité.

  • Docker — Docker aide les développeurs à emballer, expédier et exécuter n'importe quelle application sous la forme d'un conteneur léger, portable et autonome.

TâcheDescriptionCompétences requises

Créez un VPC.

  1. Connectez-vous à l'AWS Management Console et ouvrez la console Amazon VPC. Choisissez Create VPC, puis choisissez VPC et plus encore. 

  2. Entrez un nom pour votre VPC et choisissez une plage de blocs CIDR appropriée. 

  3. Spécifiez deux zones de disponibilité, deux sous-réseaux publics, quatre sous-réseaux privés. Deux sous-réseaux privés sont destinés aux tâches Amazon ECS, et deux sous-réseaux privés sont destinés aux bases de données Amazon RDS.

  4. Spécifiez une passerelle NAT pour chaque zone de disponibilité. 

  5. Sélectionnez Create VPC (Créer un VPC).

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez un Network Load Balancer.

  1. Ouvrez la console Amazon EC2 et choisissez la région AWS qui contient votre VPC. 

  2. Sous Équilibrage de charge, choisissez Load balancers, puis Create load balancer

  3. Choisissez Network Load Balancer, puis Create. 

  4. Sur la page Configurer l'équilibreur de charge, configurez votre Network Load Balancer et votre écouteur. Important : Assurez-vous de choisir le schéma de votre Network Load Balancer comme Interne

  5. Choisissez les paramètres de sécurité applicables, configurez un groupe de sécurité et un groupe cible. Choisissez Instance ou IP comme type de cible dans la section Configurer le routage. Assurez-vous de ne pas enregistrer de cible. 

  6. Lorsque vous avez configuré tous les paramètres, choisissez Next : Review, puis Create.

Administrateur du cloud

Créez un Application Load Balancer.

  1. Sur la console Amazon EC2, choisissez la même région que celle qui contient votre VPC.

  2. Sous Équilibrage de charge, choisissez Load balancers, puis Create load balancer.

  3. Choisissez Application Load Balancer, puis Create. 

  4. Configurez votre Application Load Balancer et son écouteur. Important : Assurez-vous de choisir le schéma interne de votre équilibreur de charge d'application. 

  5. Choisissez les paramètres de sécurité applicables, configurez un groupe de sécurité et un groupe cible. Choisissez Instance ou IP comme type de cible dans la section Configurer le routage. Assurez-vous de ne pas enregistrer de cible. 

  6. Lorsque vous avez configuré tous les paramètres, choisissez Next : Review, puis Create.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez un système de fichiers Amazon EFS.

  1. Ouvrez la console Amazon EFS, puis choisissez Create file system

  2. Dans la boîte de dialogue Créer un système de fichiers, entrez le nom de votre système de fichiers et choisissez votre VPC. 

  3. Choisissez Create pour créer le système de fichiers. 

  4. Configurez et configurez votre système de fichiers Amazon EFS.

Administrateur du cloud

Montez des cibles pour les sous-réseaux.

  1. Retournez à la console Amazon EFS, puis sélectionnez Systèmes de fichiers. La page Systèmes de fichiers affiche les systèmes de fichiers Amazon EFS de votre compte. 

  2. Choisissez le système de fichiers que vous avez créé, puis sélectionnez Gérer pour afficher les zones de disponibilité. Pour ajouter une cible de montage, choisissez Ajouter une cible de montage et ajoutez les quatre sous-réseaux privés que vous avez créés.

Administrateur du cloud

Vérifiez que les sous-réseaux sont montés en tant que cibles.

  1. Sur la console Amazon EFS, sélectionnez Systèmes de fichiers

  2. Choisissez Réseau pour afficher la liste des cibles de montage existantes. Assurez-vous qu'ils incluent les quatre sous-réseaux que vous avez créés.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez un compartiment S3.

Ouvrez la console Amazon S3 et créez un compartiment S3 pour stocker les actifs statiques de votre application, si nécessaire.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez une clé AWS KMS pour chiffrer le secret du Secrets Manager.

Ouvrez la console AWS Key Management Service (AWS KMS) et créez une clé KMS.

Administrateur du cloud

Créez un secret Secrets Manager pour stocker le mot de passe Amazon RDS.

  1. Ouvrez la console AWS Secrets Manager et créez un nouveau secret en choisissant Stocker un nouveau secret

  2. Choisissez la clé KMS que vous avez créée et stockez votre nouveau secret.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez un groupe de sous-réseaux de base de données.

  1. Ouvrez la console Amazon RDS et choisissez Subnet groups

  2. Choisissez Create DB subnet group, puis entrez un nom et une description pour votre groupe de sous-réseaux DB. 

  3. Choisissez le VPC que vous avez créé précédemment, puis choisissez les zones de disponibilité et les sous-réseaux. Ensuite, choisissez Créer.

Administrateur du cloud

Créez une instance Amazon RDS.

Créez et configurez une instance Amazon RDS dans les sous-réseaux privés. Assurez-vous que le mode Multi-AZ est activé pour HA.

Administrateur du cloud

Chargez les données sur l'instance Amazon RDS.

Chargez les données relationnelles requises par votre application dans votre instance Amazon RDS. Ce processus varie en fonction des besoins de votre application, ainsi que de la façon dont le schéma de votre base de données est défini et conçu.

Administrateur cloud, DBA
TâcheDescriptionCompétences requises

Créez un cluster ECS.

  1. Ouvrez la console Amazon ECS et choisissez Clusters.

  2. Choisissez Créer des clusters, puis configurez un cluster ECS conformément à vos spécifications requises.

Administrateur du cloud

Créez les images Docker.

Créez les images Docker en suivant les instructions de la section Ressources associées.

Administrateur du cloud

Créez des référentiels Amazon ECR.

  1. Sur la console Amazon ECR, sélectionnez Repositories

  2. Choisissez Créer un référentiel, puis entrez un nom unique pour votre référentiel. 

  3. Configurez le référentiel conformément à vos spécifications, y compris le chiffrement AWS KMS si nécessaire.

Administrateur cloud, DevOps ingénieur

Authentifiez votre client Docker pour le référentiel Amazon ECR.

Pour authentifier votre client Docker pour le référentiel Amazon ECR, exécutez la aws ecr get-login-password commande « dans l'AWS CLI.

Administrateur du cloud

Transférez les images Docker vers le référentiel Amazon ECR.

  1. Identifiez l'image Docker que vous souhaitez envoyer et exécutez la docker images commande dans l'AWS CLI. 

  2. Marquez votre image à l'aide de la combinaison de noms de registre, de référentiel et de balises d'image facultative Amazon ECR. 

  3. Appuyez sur l'image Docker en exécutant la docker push commande. 

  4. Répétez ces étapes pour toutes les images requises.

Administrateur du cloud

Créez une définition de tâche Amazon ECS.

Une définition de tâche est requise pour exécuter des conteneurs Docker dans Amazon ECS. 

  1. Revenez à la console Amazon ECS, choisissez Définitions de tâches, puis choisissez Créer une nouvelle définition de tâche

  2. Sur la page Sélectionner les compatibilités, sélectionnez le type de lancement que votre tâche doit utiliser, puis choisissez Étape suivante.

Pour obtenir de l'aide sur la configuration de votre définition de tâche, consultez la section « Création d'une définition de tâche » dans la section Ressources connexes. Important : assurez-vous de fournir les images Docker que vous avez transmises à Amazon ECR.

Administrateur du cloud

Créez un service Amazon ECS service.

Créez un service Amazon ECS en utilisant le cluster ECS que vous avez créé précédemment. Assurez-vous de choisir Amazon EC2 comme type de lancement et de choisir la définition de tâche créée à l'étape précédente, ainsi que le groupe cible de l'Application Load Balancer.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez une configuration du lancement.

Ouvrez la console Amazon EC2 et créez une configuration de lancement. Assurez-vous que les données utilisateur contiennent le code permettant aux instances EC2 de rejoindre le cluster ECS souhaité. Pour un exemple du code requis, consultez la section Ressources connexes.

Administrateur du cloud

Créez un groupe Amazon EC2 Auto Scaling.

Revenez à la console Amazon EC2 et sous Auto Scaling, sélectionnez Auto Scaling groups. Configurez un groupe Amazon EC2 Auto Scaling. Assurez-vous de choisir les sous-réseaux privés et la configuration de lancement que vous avez créés précédemment.

Administrateur du cloud
TâcheDescriptionCompétences requises

Configurez le point de PrivateLink terminaison AWS.

  1. Sur la console Amazon VPC, créez un point de terminaison AWS PrivateLink . 

  2. Associez ce point de terminaison au Network Load Balancer, qui met l'application hébergée sur Amazon ECS à la disposition privée des clients. 

Pour plus d'informations, consultez la section Ressources connexes.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez un point de terminaison de VPC.

Créez un point de terminaison VPC pour le point de PrivateLink terminaison AWS que vous avez créé précédemment. Le nom de domaine complet (FQDN) du point de terminaison VPC pointera vers le nom de domaine complet du point de terminaison AWS PrivateLink . Cela crée une interface réseau élastique vers le service de point de terminaison VPC à laquelle les points de terminaison DNS peuvent accéder.

Administrateur du cloud
TâcheDescriptionCompétences requises

Créez la fonction Lambda.

Sur la console AWS Lambda, créez une fonction Lambda pour mettre à jour les adresses IP de l'Application Load Balancer en tant que cibles pour le Network Load Balancer. Pour plus d'informations à ce sujet, consultez le billet de blog « Utilisation d'adresses IP statiques pour les équilibreurs de charge d'application » dans la section Ressources connexes.

Développeur d'applications

Créez les équilibreurs de charge :

Créez un système de fichiers Amazon EFS :

Créez un compartiment S3 :

Créez un secret du Gestionnaire de Secrets :

Créez une instance Amazon RDS :

Créez les composants Amazon ECS :

Créez un groupe Amazon EC2 Auto Scaling :

Configurez AWS PrivateLink :

Créez un point de terminaison VPC :

Créez la fonction Lambda :

Autres ressources :