[Code Pipeline x Elastic Beanstalk] Application Java CI / CD vers Elastic Beanstalk avec Code Pipeline, partie 2

Application pratique à l'application Java CI / CD (obtient la valeur de la base de données et renvoie le résultat au format JSON) à Elastic Beanstalk avec CodePipeline. [Code Pipeline x Elastic Beanstalk] Application Java CI / CD vers Elastic Beanstalk avec Code Pipeline Part 1 C'est une continuation de.

environnement

procédure

3. Création d'un environnement Elastic Beanstalk

Ensuite, créez un environnement Elastic Beanstalk. Créer un environnement → Si vous démarrez EC2, vous serez facturé, il est donc préférable de passer à la création du pipeline à l'étape 5 si possible! Si vous êtes un peu fatigué des étapes 1 et 2, veuillez vous reposer et attendre que votre énergie soit rétablie.

Allons-y!

[1] Nouvel environnement et application

(1) Connectez-vous à AWS Management Console, recherchez et cliquez sur «Services» (1)> «Elastic Beanstalk». image.png

(2) Cliquez sur "Environnement" dans le volet de navigation. image.png

(3) Cliquez sur "Créer un nouvel environnement". image.png

(4) Sélectionnez «Environnement du serveur Web» (①) et cliquez sur «Sélectionner» (②). image.png

(5) Vous serez redirigé vers la page "Créer un environnement de serveur Web". Entrez et définissez comme suit, puis cliquez sur "Définir plus d'options" (9).

No Nom Réglages
Nom de l'application sample-eb-java
Nom de l'environnement Lorsque vous entrez le nom de l'application, il sera entré automatiquement (* 1)
Plate-forme Java
Branche de la plateforme Java 8 running on 64bit Amazon Linux
Version de la plateforme 2.10.9: recommandé
Code d'application Sélectionnez "Télécharger le code"
Source du code source Sélectionnez "Fichier local"
Sélectionnez les fichiers 「1-[4]Téléchargez le fichier jar créé dans "Création d'un fichier jar" (* 2)

image.png

(6) Passez à l'écran de réglage des options. L'image entière est comme indiqué dans la capture ci-dessous. image.png

Cette fois,

-①: Logiciel -②: Réseau --③: base de données

Mettez vos mains sur les trois.

(7) Premièrement, ① à partir du logiciel. Cochez «Activer» dans «Log Streaming» et cliquez sur «Enregistrer» en bas de l'écran. Cela vous permettra de voir les journaux, ce qui est utile pour rechercher la cause d'une erreur dans votre environnement. image.png

(8) Ensuite, ② Réseau. Cochez la case à gauche de l'adresse IP publique (1) et de la zone de disponibilité (2), puis cliquez sur «Enregistrer» (3).

image.png

(9) Enfin, la base de données. Définissez le nom d'utilisateur (①) et le mot de passe (②), puis cliquez sur Enregistrer (③). image.png

(10) Cliquez sur "Créer un environnement" sur l'écran "Définir plus d'options".

(11) Une fois l'environnement créé dans environ 10 minutes, vérifiez que "Health" est "OK". image.png

(12) Si «Santé» devient jaune (avertissement) ou rouge (dégradé, grave), identifiez et résolvez la cause. Vous pouvez vérifier le contenu en cliquant sur «Journal» ou «Santé» dans le volet de navigation.

[2] Paramètres supplémentaires

(1) Faisons des réglages supplémentaires. Cliquez sur Paramètres dans le volet de navigation Elastic Beanstalk. image.png

(2) Cliquez sur "Modifier" sur le côté droit de "Instance". image.png

(3) Cochez «Par défaut» (①) et cliquez sur «Appliquer» (②). ~~ [Important] Si vous l'oubliez, la communication ne fonctionnera pas et ce sera 502 (Bad Gateway), alors assurez-vous de le configurer. </ b> ~~ → Tout allait bien sans ce paramètre. 502 (Bad Gateway) semble être causé par une mauvaise configuration du numéro de port du serveur. image.png

4. Paramètres de la base de données

Ensuite, configurons la base de données (RDS) créée par 3. Création de l'environnement Elastic Beanstalk.

[1] Paramètres de connexion dans RDS

(1) Recherchez et cliquez sur RDS sur la console de gestion. image.png

(2) Cliquez sur "Base de données" dans le volet de navigation. image.png

(3) Cochez le bouton radio de l'instance de base de données créée (①) et cliquez sur «Modifier» (②). image.png

(4) L'écran passera à l'écran de changement d'instance de base de données. Réglez «Accessibilité publique» dans la colonne «Réseau et sécurité» sur «Oui» et cliquez sur «Suivant» en bas de l'écran. image.png

(5) Après vous être déplacé vers l'écran "Change Summary", vérifiez le contenu, sélectionnez "Apply Immediately" dans "Change Schedule" (1), et cliquez sur "Change DB Instance" (2). image.png

(6) Lorsque vous revenez à l'écran "Base de données", cliquez sur le lien au-dessus du nom de l'instance de base de données. image.png

(7) Cliquez sur "Groupe de sécurité VPC" (lien) dans l'onglet "Connexion et sécurité". image.png

(8) Après être passé à l'écran "Security Group", cliquez sur l'onglet "Inbound Rules" (①) et cliquez sur "Edit Inbound Rules" (②). image.png

(9) Sélectionnez «N'importe quel emplacement» (1) et cliquez sur «Enregistrer la règle» (2). [Attention] Ce paramètre n'est pas bon pour la sécurité car il autorise l'accès à partir de toutes les sources de connexion. </ b> Cette fois, nous utiliserons le LAN sans fil pour nous connecter à partir du PC client, donc ce paramètre est utilisé. image.png

[2] Création d'un tableau

(1) Ensuite, créons une table à partir du PC client, qui sert également de contrôle de connexion. Démarrez une invite de commande et exécutez la commande suivante pour vous connecter à l'instance de base de données.

Commande d'exécution


> mysql -h nom d'hôte-Numéro de port P-nom d'utilisateur-p

Ici, le nom d'hôte est le «point final» (1) dans la capture suivante, le numéro de port est le «port» (2: la valeur par défaut est 3306) et le nom d'utilisateur est le «nom d'utilisateur» défini dans 3. Création de l'environnement Elastic Beanstalk. (Cette fois, l'administrateur).

image.png

Après avoir exécuté la commande, il vous sera demandé le mot de passe, alors entrez le "mot de passe" défini dans Création de l'environnement Elastic Beanstalk et appuyez sur Entrée.

Une fois connecté, exécutez le DDL et SQL suivants pour créer une base de données et une table, puis insérez des données.

Création de bases de données et de tables


CREATE DATABASE `sample-db` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

USE `sample-db`;

CREATE TABLE `shop_informations` (
  `shop_id` mediumint(9) NOT NULL AUTO_INCREMENT COMMENT 'Identifiant du magasin',
  `shop_name` varchar(100) DEFAULT NULL COMMENT 'Nom du magasin',
  `tel` varchar(15) DEFAULT NULL COMMENT 'numéro de téléphone',
  `zip_code` varchar(10) DEFAULT NULL COMMENT 'Code postal',
  `address` varchar(100) DEFAULT NULL COMMENT 'adresse de rue',
  `access` varchar(100) DEFAULT NULL COMMENT 'accès',
  `business_hour` varchar(100) DEFAULT NULL COMMENT 'heures de travail',
  `regular_holiday` varchar(100) DEFAULT NULL COMMENT 'Vacances régulières',
  PRIMARY KEY (`shop_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='stocker des informations';
begin;

INSERT INTO shop_informations VALUES(1, 'Café de la brise de printemps', '03-XXXX-XXXX', '100-0005', 'Marunouchi, Chiyoda-ku, Tokyo ...', '5 minutes à pied de la gare de Tokyo', 'Jours de semaine 7:00~21:00 / Samedis, dimanches et jours fériés 10:00~21:00', 'Vacances irrégulières');
INSERT INTO shop_informations VALUES(2, 'Natsumi Shokudo', '050-XXXX-XXXX', '254-0034', 'Treasure Town, préfecture de Kanagawa ...', '10 minutes à pied de la gare d'Hiratsuka', 'Jours de semaine 11:00~22:00 / Samedis, dimanches et jours fériés 11:00~20:00', 'Mardi');
INSERT INTO shop_informations VALUES(3, 'Akiyama', '049-XXXX-XXXX', '350-0041', 'Rokukencho, Kawagoe City, Préfecture de Saitama ...', 'À 7 minutes à pied de la gare Kawagoe City/À 5 minutes à pied de la gare de Honkawakoshi', 'Midi 11:00~14:00 / nuit 18:00~23:30', 'Dimanches et jours fériés');
INSERT INTO shop_informations VALUES(4, 'Cuisine ciel d'hiver', '04-XXXX-XXXX', '350-0041', 'Honmachi, ville de Gagoko, préfecture de Chiba ...', '8 minutes à pied de la gare de Gagoko', 'Midi 11:30~14:00 / nuit 17:00~23:00', 'Jeudi');

commit;
  • Les données ci-dessus sont fictives. Ce n'est pas un vrai magasin.

[3] Paramètres dans Elastic Beanstalk

(2) Ensuite, ajoutez des variables d'environnement pour la connexion à la base de données dans Elastic Beanstalk. Dans la console de gestion, recherchez et cliquez sur Elastic Beanstalk. image.png

(3) Cliquez sur «Modifier» à l'extrémité droite de «Logiciel». image.png

(4) Dans le champ "Propriétés de l'environnement", définissez comme suit (①) et cliquez sur "Appliquer" (②).

Nom valeur
DB_HOST (10)Nom d'hôte saisi dans
DB_PORT (10)Numéro de port saisi dans
DB_NAME (10)Nom de la base de données créé dans
DB_USER (10)Nom d'utilisateur saisi dans
DB_PASSWORD (10)Mot de passe entré
SERVER_PORT 5000

image.png

(5) Réécrivez le contenu de application.yml créé dans "1. Création d'une application Java (Spring Boot)" comme suit.

application.yml


spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${DB_HOST:(10)Nom d'hôte saisi dans}:${DB_PORT:(10)Numéro de port saisi dans}/${DB_NAME:(10)Nom de la base de données créé dans}?serverTimezone=JST
    username: ${DB_USERNAME:(10)Nom d'utilisateur saisi dans}
    password: ${DB_PASSWORD:(10)Mot de passe entré}
  jpa:
    database: MYSQL
    hibernate.ddl-auto: none
server:
  port: ${SERVER_PORT:5000}

En faisant cela, vous pourrez vous connecter à la base de données créée cette fois à partir du PC client.

(6) Dans Eclipse, faites un clic droit sur le projet créé (1) et cliquez sur «Exécuter» (2)> «Application Spring Boot» (3) pour démarrer le serveur local. image.png

(7) Lancez le navigateur et appuyez sur l'URL suivante pour confirmer que le résultat peut être obtenu.

URL d'exécution


http://localhost:5000/shop-information/1

(8) Refléter les changements dans application.yml dans le référentiel distant de Git (CodeCommit). Démarrez l'invite de commande, accédez au répertoire racine du projet et exécutez les commandes dans l'ordre suivant.

> git add application.yml
> git commit -m "fix application.yml"

À propos de la suite

La continuation

À. 5. Configurez la connexion pour créer le pipeline et 6. Nettoyez.

Journal des modifications

--2020 / 08/13: [1] Environnement, création d'une nouvelle application, [2] Modification partielle des paramètres supplémentaires dans "3. Création de l'environnement Elastic Beanstalk"

référence

procédure

3. Création d'un environnement Elastic Beanstalk

4. Paramètres de connexion à la base de données

  • [Comment puis-je résoudre les problèmes de connectivité aux instances Amazon RDS qui utilisent les sous-réseaux publics ou privés de VPC? | Aws](https://aws.amazon.com/jp/premiumsupport/knowledge- centre / rds-connectivité-instance-sous-réseau-vpc /)

Recommended Posts