14
elastic-beanstalk #elastic- beanstalk

elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

elastic-beanstalk

#elastic-

beanstalk

Page 2: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Table des matières

À propos 1

Chapitre 1: Débuter avec élastique-haricot 2

Remarques 2

Examples 2

Installation ou configuration 2

Chapitre 2: Définition des options de la JVM 3

Remarques 3

Examples 3

Définition des options de la JVM via la configuration des Ebextensions 3

Chapitre 3: Déployer une application Web Java sur Elastic Beanstalk 4

Introduction 4

Examples 4

Déploiement d'une application Spring Boot sur Elastic Beanstalk 4

Objectifs: 4

Conditions préalables: 4

Partie 1: Créer une application Java 4

Pas 5

Partie 2: Déployer l'application Java sur Elastic Beanstalk 6

Pas 6

Partie 3: Modifier l'application Spring Boot pour inclure des fonctionnalités prêtes à la 8

Pas 9

Partie 4: Déployer l'application modifiée 11

Pas 11

Crédits 12

Page 3: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

À propos

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: elastic-beanstalk

It is an unofficial and free elastic-beanstalk ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official elastic-beanstalk.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/fr/home 1

Page 4: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Chapitre 1: Débuter avec élastique-haricot

Remarques

Cette section fournit une vue d'ensemble de ce qu'est élastique-beanstalk et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets dans Elastic-Beanstalk, et établir un lien avec les sujets connexes. Étant donné que la documentation pour elastic-beanstalk est nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Examples

Installation ou configuration

Instructions détaillées sur la mise en place ou l'installation de élastique-beanstalk.

Lire Débuter avec élastique-haricot en ligne: https://riptutorial.com/fr/elastic-beanstalk/topic/7568/debuter-avec-elastique-haricot

https://riptutorial.com/fr/home 2

Page 5: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Chapitre 2: Définition des options de la JVM

Remarques

-bundle.zip //--> bundle file which will be uploaded |--.ebextensions //--> the file name must be exactly ".ebextensions" |--jvm.config //--> config file that will set the JVM options on deployment (upload) |--java_app.jar //Here, I am using Spring Boot

option_settings: //--> must have line aws:elasticbeanstalk:application:environment: //--> namespace used to set JVM values XX:MaxPermSize: 256m //--> set XX:MaxPermSize to 256m Xmx: 1024m //--> set Xmx to 1024m Xms: 512m //--> set Xms to 512m

Examples

Définition des options de la JVM via la configuration des Ebextensions

Pour configurer les options JVM à l’intérieur de beanstalk élastique, votre fichier de bundle doit être comme suit:

-bundle.zip |--.ebextensions //do not forget the dot at the beginning of the name |--jvm.config |--java_app.jar

Et, le fichier jvm.config doit être défini comme ceci:

option_settings: aws:elasticbeanstalk:application:environment: XX:MaxPermSize: 256m Xmx: 1024m Xms: 512m

Lorsque vous téléchargez votre bundle, ces paramètres seront d'abord lus et appliqués à la JVM du serveur (instance Ec2) et vous devez voir l'état "OK".

La source

Lire Définition des options de la JVM en ligne: https://riptutorial.com/fr/elastic-beanstalk/topic/7569/definition-des-options-de-la-jvm

https://riptutorial.com/fr/home 3

Page 6: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Chapitre 3: Déployer une application Web Java sur Elastic Beanstalk

Introduction

Elastic Beanstalk est un fournisseur de PaaS Cloud (Platform as a Service), ce qui signifie que les applications peuvent être déployées sur la plateforme sans devoir configurer manuellement un environnement de déploiement.

Les applications Java peuvent être facilement déployées sur Elastic Beanstalk via une interface Web ou via des outils de ligne de commande.

Examples

Déploiement d'une application Spring Boot sur Elastic Beanstalk

Objectifs:

En utilisant l' interface CLI Spring , nous allons créer une nouvelle application Spring Boot à déployer sur Elastic Beanstalk.

Nous allons modifier l'application Spring Boot générée afin qu'elle:Créez un fichier nommé aws-eb-demo.jar .○

Écoutez sur le port 5000.○

Inclure une seule page Web nommée index.html .○

1.

En utilisant la CLI Elastic Beanstalk , nous allons:

Initialisez le projet pour le déploiement sur Elastic Beanstalk.•Créez un nouvel environnement de déploiement et déployez l'application Spring Boot en une seule étape.

Modifiez et redéployez l'application dans le même environnement.•

2.

Nous allons modifier l'application Spring Boot pour ajouter des fonctionnalités de surveillance, de gestion et de journalisation.

3.

Nous allons redéployer l'application Spring Boot sur son environnement cible.4.

Conditions préalables:

Installer la CLI Spring•Installer la CLI Elastic Beanstalk•

https://riptutorial.com/fr/home 4

Page 7: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Partie 1: Créer une application Java

Créons une nouvelle application Java en utilisant l'interface de ligne de commande Spring. Spring CLI constitue un moyen pratique de commencer rapidement à utiliser des applications compatibles avec le cloud qui utilisent Spring Boot et Spring Framework.

Pas

Créez une application Web Spring Boot avec le CLI Spring et cd dans le dossier.

$ spring init -d=web -name=aws-eb-demo aws-eb-demo $ cd aws-eb-demo

1.

Initialisez le projet avec le contrôle de code source, puis validez la révision initiale. Cela nous permettra de suivre les modifications au fur et à mesure qu'elles sont effectuées et de revenir à un état antérieur si nécessaire. Ceci est toujours une bonne pratique avant de commencer à apporter des modifications à votre application.

Pour cet exemple, nous utiliserons Git:

$ git init $ git add . $ git commit -m "initial commit"

2.

Pour faciliter le déploiement, éditez pom.xml et ajoutez le <finalName> sous la section <project> / <build> :

<build> <finalName>${project.artifactId}</finalName> ... </build>

Le <finalName> provoquera le nom aws-eb-demo.jar sans la version. Cela garantit que les scripts de déploiement ne devront pas être modifiés chaque fois que l'application effectue une itération vers une nouvelle version.

3.

Configurez l'application pour l'écouter sur le port 5000 en ajoutant la propriété suivante à src/main/resources/application.properties :

server.port=5000

Par défaut, l'application Web Spring Boot écoute les requêtes sur le port 8080 . Cependant, l'équilibreur de charge AWS qui gère les applications Elastic Beanstalk s'attend à ce qu'elles soient à l'écoute sur le port 5000 . Sans ce paramètre, nous obtiendrons l'erreur 502 Bad Gateway lors de la tentative d'accès à notre application sur le Web.

4.

Donnez à votre application une page d'accueil statique en créant un fichier à l' 5.

https://riptutorial.com/fr/home 5

Page 8: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

src/main/resources/static/index.html avec le contenu suivant:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>AWS EB Demo</title> </head> <body> <h1>Hello from Elastic Beanstock</h1> </body> </html>

Testez l'application Web localement.

$ mvn spring-boot:run

Ouvrez votre navigateur sur http://localhost:5000 et vérifiez que la page d'accueil est bien servie.

Une fois le test terminé, tapez Ctrl+C dans le terminal en cours d'exécution pour arrêter l'application.

6.

Emballez l'application Web.

$ mvn package -DskipTests

Le target/aws-eb-demo.jar application sera créé sur target/aws-eb-demo.jar .

7.

Validez vos modifications au contrôle de source.

$ git add . $ git commit -m "prepared for initial deployment"

8.

Partie 2: Déployer l'application Java sur Elastic Beanstalk

Avec notre application testée et prête à être déployée pour la première fois, nous pouvons maintenant utiliser la CLI Elastic Beanstalk pour initialiser notre configuration de déploiement, créer l'environnement de déploiement et le transmettre au cloud.

Pas

A l'aide de la CLI Elastic Beanstock, initialisez votre application pour le déploiement.

$ eb init

1.

https://riptutorial.com/fr/home 6

Page 9: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

une. Lorsque vous êtes invité à "Sélectionner une région par défaut", acceptez la valeur par défaut.

b. Lorsque vous êtes invité à "Sélectionner une application à utiliser", acceptez la valeur par défaut pour créer une nouvelle application.

c. Lorsque vous êtes invité à saisir le nom de l'application, acceptez la valeur par défaut ou entrez aws-eb-demo .

ré. Lorsque vous êtes invité à "Sélectionner une plate-forme", choisissez Java .

e. Lorsque vous êtes invité à "Sélectionner une version de plate-forme", choisissez Java 8 .

F. Lorsque vous êtes invité à déployer à l'aide d'AWS CodeCommit, acceptez la valeur par défaut ( n ).

je. Lorsque vous êtes invité à configurer SSH pour votre instance, sélectionnez «y». Cela vous permettra d'utiliser l'interface de ligne de commande Elastic Beanstalk pour effectuer un shell dans la machine virtuelle sur laquelle votre instance d'application sera déployée.

j. Lorsque vous Create new KeyPair invité à "Sélectionner une paire de clés", choisissez la valeur par défaut ( Create new KeyPair ). Vous pouvez également sélectionner une paire de clés existante.

k. Lorsque vous êtes invité à taper un nom de paire de clés, acceptez la valeur par défaut ou tapez un nom.

l. Lorsque vous êtes invité à entrer une phrase secrète, laissez vide ou saisissez une phrase secrète dont vous vous souviendrez. Tapez la même phrase secrète une seconde fois et appuyez sur Entrée.

Modifiez le manifeste de déploiement Elastic .elasticbeanstock/config.yml nouvellement créé en ouvrant .elasticbeanstock/config.yml et en ajoutant le paramètre suivant au bas du fichier:

deploy: artifact: 'target/aws-eb-demo.jar'

2.

À l'aide de l'interface de ligne de commande Elastic Beanstock, déployez votre application dans un nouvel environnement.

$ eb create

une. Lorsque vous êtes invité à entrer le nom de l'environnement, acceptez la valeur par défaut ( aws-eb-demo-dev ).

b. Lorsque vous êtes invité à "Entrer le préfixe DNS CNAME", acceptez la valeur par défaut ( aws-eb-demo-dev ).

3.

https://riptutorial.com/fr/home 7

Page 10: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

c. Lorsque vous êtes invité à sélectionner un type d'équilibreur de charge, acceptez la valeur par défaut ( classic ).

Elastic Beanstalk peut mettre jusqu'à 5 minutes pour terminer le déploiement. Pendant ce temps, Elastic Beanstalk fait ce qui suit pour vous:

créer l'environnement de déploiement•créer l'équilibreur de charge•préparer un groupe de sécurité•configurer la mise à l'échelle automatique•lancer une ou plusieurs instances EC2•lancer l'application•

Pendant que ce travail est en cours, il est prudent de taper Ctrl+C

En attendant, vous pouvez utiliser l'interface de ligne de commande Elastic Beanstalk pour vérifier l'état de déploiement de l'application.

$ eb status

4.

Lorsque le champ Health: affiche le champ Green et l' Status: Ready , vous pouvez accéder à l'application à l'aide de l'adresse indiquée dans le champ CNAME .

Par exemple, si vous avez choisi la région us-west-2 : (US West (Oregon) , votre application sera déployée à l’adresse suivante:

http://aws-eb-demo-dev.us-west-2.elasticbeanstalk.com

Si le statut de l'application est Ready , mais que le champ Health: n'est pas Green , consultez les journaux d'application pour diagnostiquer le problème:

$ eb logs

5.

Partie 3: Modifier l'application Spring Boot pour inclure des fonctionnalités prêtes à la production.

Pour que notre application soit vraiment prête à la production, nous avons besoin de la gestion, de la surveillance, de la journalisation et de la sécurité. Heureusement, Spring Boot est livré avec ces fonctionnalités hors de la boîte. Ils doivent simplement être ajoutés comme dépendances à notre projet.

Pour plus de détails sur les fonctionnalités prêtes pour la production fournies par Spring Boot, reportez-vous au Guide de référence de Spring Boot, Partie V, Actionneur de démarrage Spring: fonctionnalités prêtes pour la production .

https://riptutorial.com/fr/home 8

Page 11: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Pas

Ouvrez le fichier pom.xml (situé dans le répertoire racine de notre projet) et ajoutez les dépendances suivantes dans la section <project> / <dependencies> :

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>

une. La dépendance spring-boot-starter-actuator comprend des fonctions de gestion et de surveillance prêtes pour la production, appelées actuators . Ces fonctionnalités incluent des noeuds finaux REST prêts à l'emploi qui permettent aux administrateurs d'accéder rapidement aux informations d'exécution relatives à l'application, telles que des informations sur l'intégrité, des propriétés d'environnement, des paramètres de configuration, des fichiers journaux, etc.

b. La dépendance spring-boot-starter-hateoas permet à Spring Boot de répertorier tous les actionneurs sous un seul point de terminaison pratique à l'aide de liens de type HAL qui pointent vers chaque point de terminaison d'actionneur.

c. La dépendance spring-boot-starter-security permet à notre application de sécuriser les points de terminaison de l'actionneur, de sorte qu'ils ne peuvent être accédés que par un utilisateur authentifié ayant le rôle ACTUATOR .

1.

Tout en éditant le pom.xml , ajoutez une exécution personnalisée au spring-boot-maven-plugin afin qu'il contienne des informations sur la version contenant l'artefact de l'application empaquetée.

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>build-info</goal> </goals> </execution> </executions> </plugin>

2.

Personnalisez la configuration Spring Boot afin que tous les actionneurs soient répertoriés sous le chemin /management . Configurez également le nom d'utilisateur et le mot de passe de l'administrateur qui pourra voir les points de terminaison de l'actionneur. Enfin, configurez la

3.

https://riptutorial.com/fr/home 9

Page 12: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

journalisation des applications pour que les instructions de journalisation soient écrites dans un fichier en plus de la console.

Ouvrez src/main/resources/application.properties et ajoutez les paramètres suivants:

management.context-path=/management security.user.name=admin security.user.password=password1 logging.file=logs/application.log server.tomcat.accesslog.enabled=true

Modifiez .gitignore et ajoutez la ligne suivante en haut du fichier pour que les journaux de test locaux soient ignorés par le contrôle de code source.

logs/

4.

Testez l'application Web localement.

$ mvn spring-boot:run

une. Dans un navigateur, ouvrez http://localhost:5000/management et vérifiez qu'un objet JSON fournissant des liens vers les actionneurs Spring Boot disponibles est fourni.

b. Ouvrez http://localhost:5000/management/info et vérifiez que les informations de construction sont affichées.

b. Ouvrez http://localhost:5000/management/health et vérifiez que le statut de l'application est UP . Lorsqu'il n'est pas authentifié en tant qu'utilisateur ayant le rôle ACTUATOR , le champ d'état doit être le seul champ de santé affiché.

c. Ouvrez http://localhost:5000/management/logfile et vérifiez qu'il nécessite une authentification. Tapez les informations d'identification de l'administrateur ( admin:password1 ) et vérifiez qu'il vous autorise à y accéder.

ré. Ouvrez à nouveau http://localhost:5000/management/health et vérifiez que des détails supplémentaires relatifs à la santé sont affichés. Lorsqu'il est authentifié en tant qu'utilisateur ayant le rôle ACTUATOR , le point de terminaison d'intégrité affiche des informations de santé supplémentaires concernant les ressources utilisées par l'application.

e. Essayez certains des points d'extrémité de l'actionneur. En particulier, vous pouvez être intéressé par env , les metrics , auditevents et les mappings .

Une fois le test terminé, tapez Ctrl+C dans le terminal en cours d'exécution pour arrêter l'application.

5.

Effectuez une nouvelle reconstruction et reconditionnez l'application Web.6.

https://riptutorial.com/fr/home 10

Page 13: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

$ mvn clean package -DskipTests

Comme précédemment, le target/aws-eb-demo.jar application sera créé sur target/aws-eb-demo.jar .

Validez vos modifications au contrôle de source.

$ git add . $ git commit -m "added management and monitoring features"

7.

Partie 4: Déployer l'application modifiée

Le redéploiement est généralement beaucoup plus rapide que le déploiement initial car l'environnement a déjà été préparé. La CLI doit simplement télécharger le nouveau fichier jar dans les instances EC2 de l'environnement et redémarrer l'application.

Pas

Avec la CLI Elastic Beanstalk, redéployez le nouveau jar.

$ eb deploy

Une fois le téléchargement terminé, vous pouvez taper en toute sécurité Ctrl+C

1.

Vérifiez que l'application a bien été déployée.

$ eb status

2.

Dans un navigateur, accédez à http://aws-eb-demo-dev.us-west-2.elasticbeanstalk.com/management et vérifiez que tout fonctionne comme lors du test local.

3.

Lire Déployer une application Web Java sur Elastic Beanstalk en ligne: https://riptutorial.com/fr/elastic-beanstalk/topic/9207/deployer-une-application-web-java-sur-elastic-beanstalk

https://riptutorial.com/fr/home 11

Page 14: elastic-beanstalk - RIP Tutorial · déployer sur Elastic Beanstalk. Nous allons modifier l'application Spring Boot générée afin qu'elle: Créez un fichier nommé aws-eb-demo.jar

Crédits

S. No

Chapitres Contributeurs

1Débuter avec élastique-haricot

Community

2Définition des options de la JVM

webmaster

3

Déployer une application Web Java sur Elastic Beanstalk

Robert Thornton

https://riptutorial.com/fr/home 12