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

Créée par Vijay Thompson (AWS) et Sandeep Bondugula (AWS)

Environnement : PoC ou pilote

Source : Conteneurs

Cible : Amazon ECS

Type R : N/A

Technologies : Conteneurs et microservices ; applications Web et mobiles

Services AWS : Amazon ECS

Récapitulatif

Ce modèle vous guide à travers les étapes du déploiement de microservices Java sous forme d'applications conteneurisées dans Amazon Elastic Container Service (Amazon ECS). Le modèle utilise également Amazon Elastic Container Registry (Amazon ECR) pour gérer votre conteneur, et AWS Fargate pour gérer votre conteneur.

Conditions préalables et limitations

Prérequis

  • Une application de microservices Java existante exécutée sur site sur Docker

  • Un compte AWS actif

  • Connaissance d'Amazon ECR, d'Amazon ECS, d'AWS Fargate et de l'interface de ligne de commande (AWS CLI)

  • Connaissance des logiciels Java et Docker

Versions du produit

  • AWS CLI version 1.7 ou ultérieure

Architecture

Pile technologique source

  • Microservices Java (par exemple, développés à l'aide de Spring Boot) et déployés sur site

  • Docker

Architecture source

Architecture source pour le déploiement de microservices Java sur Amazon ECS

Pile technologique cible

  • Amazon ECR

  • Amazon ECS

  • AWS Fargate

Architecture cible

Architecture cible pour le déploiement de microservices Java sur Amazon ECS

Outils

Outils

  • 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.

  • Amazon Elastic Container Service (Amazon ECS) est un service d'orchestration de conteneurs hautement évolutif et performant qui prend en charge les conteneurs Docker et vous permet d'exécuter et de dimensionner facilement des applications conteneurisées sur AWS. Amazon ECS vous évite d'avoir à installer et à exploiter votre propre logiciel d'orchestration de conteneurs, à gérer et à dimensionner un cluster de machines virtuelles ou à planifier des conteneurs sur ces machines virtuelles.

  • AWS Fargate est un moteur de calcul pour Amazon ECS qui vous permet d'exécuter des conteneurs sans avoir à gérer de serveurs ou de clusters. Avec AWS Fargate, vous n'avez plus besoin de provisionner, de configurer et de dimensionner des clusters de machines virtuelles pour exécuter des conteneurs. Vous n'avez plus à choisir de types de serveurs, décider quand mettre à l'échelle vos clusters ni optimiser les packs de clusters.

  • Docker est une plate-forme qui vous permet de créer, de tester et de fournir des applications dans des packages appelés conteneurs.

Code

Ce qui suit DockerFile indique la version du kit de développement Java (JDK) utilisée, où se trouve le fichier d'archive Java (JAR), le numéro de port exposé et le point d'entrée de l'application.

FROM openjdk:8 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]

Épopées

TâcheDescriptionCompétences requises

Créer un référentiel .

Connectez-vous à la console de gestion AWS et ouvrez la console Amazon ECR à l'adresse https://console.aws.amazon.com/ecr/repositories. Créez un dépôt privé. Pour obtenir des instructions, consultez la section Création d'un référentiel privé dans la documentation Amazon ECR.

Développeur, administrateur système

Téléchargez le projet.

Ouvrez le référentiel et choisissez Afficher les commandes push. Suivez les étapes affichées pour télécharger le projet. (Ces étapes ne fonctionnent que lorsque vous utilisez la version 1.7 ou ultérieure de l'interface de ligne de commande AWS.) Lorsque le téléchargement est terminé, copiez l'URL du build dans le référentiel. Vous utiliserez cette URL lorsque vous créerez un conteneur dans Amazon ECS.

Développeur, administrateur système
TâcheDescriptionCompétences requises

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

L'exécution d'un conteneur Docker dans Amazon ECS nécessite une définition de tâche. Ouvrez la console Amazon ECS à l'adresse https://console.aws.amazon.com/ecs/, choisissez Définitions de tâches et créez une nouvelle définition de tâche. Pour plus d'informations, consultez la section Création d'une définition de tâche dans la documentation Amazon ECS.

Développeur, administrateur système

Choisissez le type de lancement.

Choisissez Fargate comme type de lancement.

Développeur, administrateur système

Configurez la tâche.

Définissez un nom de tâche et configurez l'application avec la quantité appropriée de mémoire de tâche et de processeur.

Développeur, administrateur système

Définissez le conteneur.

Ajoutez le conteneur en fournissant un nom, l'URL du référentiel Amazon ECR, les limites de mémoire et le mappage des ports. Les ports 8080 et 80 sont configurés pour les mappages de ports. Configurez les autres paramètres en fonction des exigences de votre application.

Développeur, administrateur système

Créez la tâche.

Lorsque les configurations de tâche et de conteneur sont en place, créez la tâche. Pour obtenir des instructions détaillées, consultez les liens dans la section Ressources connexes.

Développeur, administrateur système
TâcheDescriptionCompétences requises

Créez ou choisissez un cluster.

Un cluster Amazon ECS fournit un regroupement logique de tâches ou de services. Vous pouvez choisir d'utiliser un cluster existant ou d'en créer un nouveau. Si vous décidez de créer un nouveau cluster, choisissez le type de cluster en fonction de vos besoins. Dans notre exemple, nous avons sélectionné un cluster réseau. Donnez un nom au cluster et indiquez si vous souhaitez créer un nouveau cloud privé virtuel (VPC) à utiliser pour les tâches Fargate.

Développeur, administrateur système

Créer un service.

Dans le cluster, choisissez Create service.

Développeur, administrateur système

Choisissez le type de lancement.

Choisissez Fargate comme type de lancement.

Développeur, administrateur système

Choisissez la définition de la tâche, la révision et la version de la plateforme.

Choisissez la tâche que vous souhaitez exécuter, puis révisez la définition de la tâche et la version de la plateforme.

Développeur, administrateur système

Sélectionnez le cluster .

Sélectionnez le cluster dans lequel vous souhaitez créer votre service dans la liste déroulante.

Développeur, administrateur système

Entrez un nom de service.

Donnez un nom unique au service que vous créez.

Développeur, administrateur système

Spécifiez le nombre de tâches.

Configurez le nombre de tâches qui doivent être exécutées au lancement du service. Si vous lancez deux tâches ou plus, un équilibreur de charge est nécessaire pour équilibrer les tâches. Le nombre minimum de tâches à configurer est de une.

Développeur, administrateur système

Définissez les pourcentages de santé minimum et maximum.

Configurez les pourcentages de santé minimum et maximum pour l'application ou acceptez l'option par défaut fournie.

Développeur, administrateur système

Configurez les paramètres de déploiement.

Choisissez le type de déploiement en fonction de vos besoins. Vous pouvez choisir une mise à jour progressive ou un déploiement bleu/vert.

Développeur, administrateur système

Configurez le VPC, les sous-réseaux et les groupes de sécurité du cluster.

Configurez le VPC du cluster, les sous-réseaux sur lesquels vous souhaitez déployer l'application et les groupes de sécurité (HTTP, HTTPS et port 8080) pour fournir un accès aux connexions entrantes/sortantes.

Développeur, administrateur système

Configurez les paramètres IP publics.

Activez ou désactivez l'adresse IP publique, selon que vous souhaitez ou non utiliser une adresse IP publique pour les tâches Fargate.

Développeur, administrateur système

Configurez l'équilibrage de charge.

Configurez l'équilibreur de charge si vous lancez le service avec plusieurs tâches. Vous devez créer un équilibreur de charge et son groupe cible avant de lancer le service.

Développeur, administrateur système

Configurez le dimensionnement automatique.

Configurez votre service pour utiliser Amazon ECS Service Auto Scaling afin d'ajuster le nombre de tâches souhaité à la hausse ou à la baisse, en fonction de vos besoins.

Développeur, administrateur système

Vérifiez les paramètres et créez le service.

Vérifiez les paramètres de votre service, puis choisissez Créer un service.

Développeur, administrateur système
TâcheDescriptionCompétences requises

Testez votre application.

Testez l'application à l'aide du DNS public créé lors du déploiement de la tâche. Si l'application est équipée d'un équilibreur de charge, testez-la en l'utilisant, puis recoupez-la.

Développeur, administrateur système

Ressources connexes