Déployez des microservices Java sur Amazon à ECS l'aide d'Amazon ECR et de l'équilibrage de charge - 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.

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

Environnement : PoC ou pilote

Source : Java

Cible : Amazon ECS

Type R : N/A

Technologies : Conteneurs et microservices ; applications Web et mobiles

AWSservices : Amazon ECS

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 (AmazonECS) 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 (AmazonECR) pour stocker et gérer les conteneurs basés sur Docker, ainsi qu'un AWS CloudFormation modèle 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, publié sur le blog AWS Compute.

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. AWS Avec AmazonECS, 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 API appels, 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, CloudWatch Amazon Events AWS CloudFormation , les modèles et les journaux. AWS CloudTrail

Conditions préalables et limitations

Prérequis

  • Un AWS compte 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

  • AWSInterface de ligne de commande (AWSCLI)

  • Java, kit de développement AWS logiciel (SDK) pour Python (Boto3) et logiciels Docker

  • Connaissance de l'utilisation des technologies précédentes

  • Connaissance de AWS services tels qu'Amazon ECS et Elastic Load Balancing AWS CloudFormation

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 ECS cluster Amazon qui héberge les conteneurs pour chaque microservice.

  • Un réseau Amazon Virtual Private Cloud (AmazonVPC) pour héberger le ECS cluster Amazon et les groupes de sécurité associés.

  • Un référentiel Amazon Elastic Container Registry (AmazonECR) pour chaque microservice.

  • Une définition de service ou de tâche pour chaque microservice, qui active des conteneurs sur les instances du ECS cluster Amazon.

Architecture cible

Étapes de déploiement d'une architecture de microservices Java conteneurisée sur Amazon. ECS

Outils

  • Amazon ECS — Amazon vous ECS permet de lancer et d'arrêter des applications basées sur des conteneurs par de simples API appels, de connaître l'état de votre cluster à partir d'un service centralisé et d'accéder à de nombreuses fonctionnalités familières d'Amazon Elastic Compute Cloud EC2 (Amazon).

  • Amazon ECR — Amazon Elastic Container Registry (AmazonECR) 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 avec AWS Identity and Access Management (IAM) permet de contrôler chaque référentiel au niveau des ressources.

Épopées

TâcheDescriptionCompé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 AmazonECR.

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 AWS CloudFormation modèle.

Créez un AWS CloudFormation modèle pour approvisionner le cloud privé virtuel (VPC), le ECS cluster Amazon et Amazon Relational Database Service (RDSAmazon).

Ops
TâcheDescriptionCompétences requises

Créez l'AWSinfrastructure à l'aide du CloudFormation modèle que vous avez créé précédemment.

Utilisez le script Python à https://github.com/awslabs/amazon-ecs-java-microservices/blob/master/2_ECS_Java_Spring_PetClinic_Microservices/setup.py pour appeler le AWS CloudFormation modèle que vous avez créé précédemment. Ce modèle crée l'AWSinfrastructure dont vous avez besoin pour l'environnement cible.

Ops

Créez des ECR référentiels, des tâches, des services Amazon, l'Application Load Balancer et des groupes cibles.

Le script Python lit les sorties du AWS CloudFormation modèle et utilise des BOTO3 API appels pour créer des ECR référentiels Amazon, des tâches, des services, l'Application Load Balancer et des groupes cibles.

Ops

Ressources connexes