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](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/27db76ee-b9e3-45f1-a385-1e51af8415a9.png)
Pile technologique cible
Amazon ECR
Amazon ECS
AWS Fargate
Architecture cible
![Architecture cible pour le déploiement de microservices Java sur Amazon ECS](images/pattern-img/a48764de-d310-42dd-bff6-0efd70bc3aed/images/e85cb42a-9982-4050-96fb-b7886fce4d38.png)
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âche | Description | Compé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 | 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âche | Description | Compé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/ | 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âche | Description | Compé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âche | Description | Compé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
Principes de base de Docker pour Amazon ECS (documentation Amazon ECS)
Amazon ECS sur AWS Fargate (documentation Amazon ECS)
Création d'un référentiel privé (documentation Amazon ECR)
Création d'une définition de tâche (documentation Amazon ECS)
Définitions des conteneurs (documentation Amazon ECS)
Création d'un cluster (documentation Amazon ECS)
Configuration des paramètres de service de base (documentation Amazon ECS)
Configuration d'un réseau (documentation Amazon ECS)
Configuration de votre service pour utiliser un équilibreur de charge (documentation Amazon ECS)
Configuration de votre service pour utiliser Service Auto Scaling (documentation Amazon ECS)