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.
Déployez des microservices Java sur Amazon ECS à l'aide d'Amazon ECR et de l'équilibrage de charge
Créée par Durga Prasad Cheepuri (AWS)
Récapitulatif
Ce modèle décrit les étapes à suivre pour déployer une architecture de microservices Java conteneurisée sur Amazon Elastic Container Service (Amazon ECS) afin de faciliter le dimensionnement et d'accélérer le développement de vos applications. Cela permet de favoriser l'innovation et d'accélérer la time-to-market mise en place de nouvelles fonctionnalités.
Le modèle utilise également Amazon Elastic Container Registry (Amazon ECR) pour stocker et gérer les conteneurs basés sur Docker, ainsi qu'un modèle CloudFormation AWS avec un script Python pour automatiser la configuration de votre infrastructure. Le modèle est basé sur le billet Deploying Java Microservices on Amazon Elastic Container Service
Les microservices fournissent une approche architecturale et organisationnelle du développement logiciel, dans laquelle le logiciel est composé de petits services indépendants qui communiquent via des interfaces de programmation d'applications bien définies ()APIs. De petites équipes autonomes sont propriétaires de ces services.
Amazon ECS est un service d'orchestration de conteneurs hautement évolutif et performant. Il prend en charge les conteneurs Docker et vous permet d'exécuter et de faire évoluer rapidement des applications conteneurisées sur AWS. Avec Amazon ECS, vous n'avez plus besoin d'installer et d'utiliser votre logiciel d'orchestration de conteneurs, de gérer et de dimensionner un cluster de machines virtuelles (VMs) ou de planifier des conteneurs sur ces VMs machines.
À l'aide de simples appels d'API, vous pouvez lancer et arrêter des applications compatibles Docker, demander l'état complet de votre demande et accéder à de nombreuses fonctionnalités naturelles, telles que les rôles AWS Identity and Access Management (IAM), les groupes de sécurité, les équilibreurs de charge, Amazon Events CloudWatch , les modèles AWS et les journaux CloudFormation AWS. CloudTrail
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Code source des microservices Java, avec le kit de développement Java version 1.7 ou ultérieure
Une clé d'accès et une clé d'accès secrète pour un utilisateur du compte
Interface de ligne de commande AWS (AWS CLI)
Java, kit de développement logiciel (SDK) AWS pour Python (Boto3) et logiciels Docker
Connaissance de l'utilisation des technologies précédentes
Connaissance des services AWS tels qu'Amazon ECS CloudFormation, AWS et Elastic Load Balancing
Architecture
Pile technologique source
Microservices implémentés en Java et déployés sur Apache Tomcat dans un environnement sur site
Pile technologique cible
Application Load Balancer qui inspecte la demande du client. Sur la base des règles de routage, l'équilibreur de charge dirige la demande vers une instance et un port du groupe cible correspondant à l'état.
Un groupe cible pour chaque microservice. Les groupes cibles sont utilisés par les services correspondants pour enregistrer les instances de conteneur disponibles. Chaque groupe cible possède un chemin. Ainsi, lorsque vous appelez un microservice en particulier, celui-ci correspond au groupe cible approprié. Cela vous permet d'utiliser une Application Load Balancer pour desservir tous les microservices accessibles par le chemin. Par exemple, https:///owner/ * serait mappé et redirigerait vers le microservice Owner.
Un cluster Amazon ECS qui héberge les conteneurs pour chaque microservice.
Un réseau Amazon Virtual Private Cloud (Amazon VPC) pour héberger le cluster Amazon ECS et les groupes de sécurité associés.
Un référentiel Amazon Elastic Container Registry (Amazon ECR) pour chaque microservice.
Une définition de service ou de tâche pour chaque microservice, qui active des conteneurs sur les instances du cluster Amazon ECS.
Architecture cible

Outils
Amazon ECS — Amazon ECS vous permet de lancer et d'arrêter des applications basées sur des conteneurs à l'aide de simples appels d'API, vous permet d'obtenir l'état de votre cluster à partir d'un service centralisé et vous donne accès à de nombreuses fonctionnalités familières d'Amazon Elastic Compute Cloud EC2 (Amazon).
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) est un registre entièrement géré qui permet aux développeurs de stocker, de gérer et de déployer facilement des images de conteneurs Docker. Amazon ECR est intégré à Amazon ECS pour simplifier votre development-to-production flux de travail. Amazon ECR héberge vos images dans une architecture hautement disponible et évolutive afin que vous puissiez déployer des conteneurs de manière fiable pour vos applications. L'intégration à AWS Identity and Access Management (IAM) permet de contrôler chaque référentiel au niveau des ressources.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Provisionnez une instance Amazon EC2 Linux, installez Docker et créez un fichier Docker pour chaque microservice. | Ops | |
Configurez des images Docker sur Amazon ECR. | Utilisez le Dockerfile pour l'image à envoyer, créez l'image et balisez-la pour votre nouveau référentiel. Procédez de même pour chaque microservice. Transférez les images nouvellement balisées vers le référentiel. | Ops |
Créez un CloudFormation modèle AWS. | Créez un CloudFormation modèle AWS pour approvisionner le cloud privé virtuel (VPC), le cluster Amazon ECS et Amazon Relational Database Service (Amazon RDS). | Ops |
Tâche | Description | Compétences requises |
---|---|---|
Créez l'infrastructure AWS à l'aide du CloudFormation modèle que vous avez créé précédemment. | Utilisez le script Python situé à l' https://github.com/awslabs/amazon-ecs-java-microservicesadresse/blob/master/2_ECS_Java_Spring_PetClinic_Microservices/setup.py pour appeler le CloudFormation modèle AWS que vous avez créé précédemment. Ce modèle crée l'infrastructure AWS dont vous avez besoin pour l'environnement cible. | Ops |
Créez des référentiels, des tâches, des services Amazon ECR, l'Application Load Balancer et des groupes cibles. | Le script Python lit les sorties du CloudFormation modèle AWS et utilise des appels d' BOTO3 API pour créer des référentiels Amazon ECR, des tâches, des services, l'Application Load Balancer et des groupes cibles. | Ops |