Déployez des microservices Java sur Amazon ECS à l'aide 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'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 fournit des conseils pour le déploiement de microservices Java conteneurisés sur Amazon Elastic Container Service (Amazon ECS) à l'aide d'AWS Fargate. Le modèle n'utilise pas Amazon Elastic Container Registry (Amazon ECR) pour la gestion des conteneurs ; les images Docker sont plutôt extraites d'un hub Docker.

Conditions préalables et limitations

Prérequis

  • Une application de microservices Java existante sur un hub Docker

  • Un dépôt Docker public

  • Un compte AWS actif

  • Connaissance des services AWS, notamment Amazon ECS et Fargate

  • Framework Docker, Java et Spring Boot

  • Amazon Relational Database Service (Amazon RDS) est opérationnel (facultatif)

  • Un cloud privé virtuel (VPC) si l'application nécessite Amazon RDS (facultatif)

Architecture

Pile technologique source

  • Microservices Java (par exemple, implémentés dans Spring Boot) et déployés sur Docker

Architecture de la source

Architecture source pour les microservices Java déployés sur Docker

Pile technologique cible

  • Un cluster Amazon ECS qui héberge chaque microservice à l'aide de Fargate

  • Un réseau VPC pour héberger le cluster Amazon ECS et les groupes de sécurité associés 

  • Une définition de cluster/tâche pour chaque microservice qui lance des conteneurs à l'aide de Fargate

Architecture cible

Architecture cible sur les microservices Java sur Amazon ECS

Outils

Outils

  • Amazon ECS élimine le besoin d'installer et d'exploiter votre propre logiciel d'orchestration de conteneurs, de gérer et de dimensionner un cluster de machines virtuelles ou de planifier des conteneurs sur ces machines virtuelles. 

  • AWS Fargate vous permet d'exécuter des conteneurs sans avoir à gérer de serveurs ou d'instances Amazon Elastic Compute Cloud (Amazon EC2). Il est utilisé conjointement avec Amazon Elastic Container Service (Amazon ECS).

  • Docker est une plate-forme logicielle qui vous permet de créer, de tester et de déployer des applications rapidement. Docker regroupe les logiciels dans des unités standardisées appelées conteneurs qui contiennent tout ce dont le logiciel a besoin pour fonctionner, notamment les bibliothèques, les outils système, le code et le runtime. 

Code Docker

Le Dockerfile suivant indique la version du kit de développement Java (JDK) utilisée, l'emplacement du fichier d'archive Java (JAR), le numéro de port exposé et le point d'entrée de l'application.

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

Épopées

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, puis créez une nouvelle définition de tâche. Pour plus d'informations, consultez la documentation Amazon ECS.

Administrateur système AWS, développeur d'applications

Choisissez le type de lancement.

Choisissez Fargate comme type de lancement.

Administrateur système AWS, développeur d'applications

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.

Administrateur système AWS, développeur d'applications

Définissez le conteneur.

Spécifiez le nom du conteneur. Pour l'image, entrez le nom du site Docker, le nom du référentiel et le nom de balise de l'image Docker ()docker.io/sample-repo/sample-application:sample-tag-name. Définissez les limites de mémoire pour l'application et définissez les mappages de ports (8080, 80) pour les ports autorisés.

Administrateur système AWS, développeur d'applications

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.

Administrateur système AWS, développeur d'applications
TâcheDescriptionCompétences requises

Créez et configurez un cluster.

Choisissez Networking only comme type de cluster, configurez le nom, puis créez le cluster ou utilisez un cluster existant s'il est disponible. Pour plus d'informations, consultez la documentation Amazon ECS.

Administrateur système AWS, développeur d'applications
TâcheDescriptionCompétences requises

Créez une tâche.

Dans le cluster, choisissez Exécuter une nouvelle tâche.

Administrateur système AWS, développeur d'applications

Choisissez le type de lancement.

Choisissez Fargate comme type de lancement.

Administrateur système AWS, développeur d'applications

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, la révision de la définition de la tâche et la version de la plateforme.

Administrateur système AWS, développeur d'applications

Sélectionnez le cluster .

Choisissez le cluster à partir duquel vous souhaitez exécuter la tâche.

Administrateur système AWS, développeur d'applications

Spécifiez le nombre de tâches.

Configurez le nombre de tâches à exécuter. Si vous lancez deux tâches ou plus, un équilibreur de charge est nécessaire pour répartir le trafic entre les tâches.

Administrateur système AWS, développeur d'applications

Spécifiez le groupe de tâches.

(Facultatif) Spécifiez un nom de groupe de tâches pour identifier un ensemble de tâches connexes en tant que groupe de tâches.

Administrateur système AWS, développeur d'applications

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

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

Administrateur système AWS, développeur d'applications

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. L'option recommandée par défaut est Activé.

Administrateur système AWS, développeur d'applications

Vérifiez les paramètres et créez la tâche

Vérifiez vos paramètres, puis choisissez Exécuter la tâche.

Administrateur système AWS, développeur d'applications
TâcheDescriptionCompétences requises

Copiez l'URL de l'application.

Lorsque le statut de la tâche est passé à En cours d'exécution, sélectionnez la tâche. Dans la section Mise en réseau, copiez l'adresse IP publique.

Administrateur système AWS, développeur d'applications

Testez votre application.

Dans votre navigateur, saisissez l'adresse IP publique pour tester l'application.

Administrateur système AWS, développeur d'applications

Ressources connexes