[Code Pipeline x Elastic Beanstalk] CI / CD-Java-Anwendung für Elastic Beanstalk mit Code Pipeline Part 2

Hands-on zur CI / CD-Java-Anwendung (ruft den Wert aus der Datenbank ab und gibt das Ergebnis im JSON-Format zurück) an Elastic Beanstalk mit CodePipeline. [Code Pipeline x Elastic Beanstalk] CI / CD-Java-Anwendung für Elastic Beanstalk mit Code Pipeline Teil 1 Es ist eine Fortsetzung von.

Umgebung

Verfahren

3. Erstellen einer elastischen Beanstalk-Umgebung

Erstellen Sie als Nächstes eine Elastic Beanstalk-Umgebung. Erstellen einer Umgebung → Wenn Sie EC2 starten, wird Ihnen eine Gebühr berechnet. Wenn möglich, sollten Sie die Pipeline in Schritt 5 sofort erstellen! Wenn Sie von den Schritten 1 und 2 etwas müde sind, machen Sie bitte eine Pause und warten Sie, bis Ihre Energie wiederhergestellt ist.

Lass uns gehen!

[1] Neue Umgebung und Anwendung

(1) Melden Sie sich bei der AWS Management Console an, suchen Sie nach "Services" (1)> "Elastic Beanstalk" und klicken Sie darauf. image.png

(2) Klicken Sie im Navigationsbereich auf "Umgebung". image.png

(3) Klicken Sie auf "Neue Umgebung erstellen". image.png

(4) Wählen Sie "Webserverumgebung" (①) und klicken Sie auf "Auswählen" (②). image.png

(5) Sie werden zur Seite "Webserverumgebung erstellen" weitergeleitet. Geben Sie Folgendes ein, legen Sie es fest und klicken Sie auf "Weitere Optionen festlegen" (9).

No Name die Einstellungen
Anwendungsname sample-eb-java
Umgebungsname Wenn Sie den Anwendungsnamen eingeben, wird dieser automatisch eingegeben (* 1).
Plattform Java
Plattformzweig Java 8 running on 64bit Amazon Linux
Plattformversion 2.10.9: Empfohlen
Anwendungscode Wählen Sie "Code hochladen"
Quellcode Quelle Wählen Sie "Lokale Datei"
Dateien auswählen 「1-[4]Laden Sie die unter "Erstellen einer JAR-Datei" erstellte JAR-Datei hoch (* 2).

image.png

(6) Gehen Sie zum Optionseinstellungsbildschirm. Das ganze Bild ist wie in der Aufnahme unten gezeigt. image.png

Diesmal,

-①: Software -②: Netzwerk --③: Datenbank

Legen Sie Ihre Hände auf die drei.

(7) Erstens ① aus der Software. Aktivieren Sie "Aktivieren" unter "Protokoll-Streaming" und klicken Sie unten auf dem Bildschirm auf "Speichern". Auf diese Weise können Sie die Protokolle anzeigen. Dies ist hilfreich, wenn Sie die Fehlerursache in Ihrer Umgebung untersuchen. image.png

(8) Weiter ② Netzwerk. Aktivieren Sie das Kontrollkästchen links neben der öffentlichen IP-Adresse (1) und der Verfügbarkeitszone (2) und klicken Sie auf "Speichern" (3).

image.png

(9) Schließlich die Datenbank. Stellen Sie den Benutzernamen (①) und das Passwort (②) ein und klicken Sie auf Speichern (③). image.png

(10) Klicken Sie im Bildschirm "Weitere Optionen festlegen" auf "Umgebung erstellen".

(11) Nachdem die Umgebung in ca. 10 Minuten erstellt wurde, überprüfen Sie, ob "Gesundheit" "OK" ist. image.png

(12) Wenn "Gesundheit" gelb (Warnung) oder rot (Verschlechtert, Schwerwiegend) wird, identifizieren und beheben Sie die Ursache. Sie können den Inhalt überprüfen, indem Sie im Navigationsbereich auf "Protokoll" oder "Zustand" klicken.

[2] Zusätzliche Einstellungen

(1) Nehmen wir zusätzliche Einstellungen vor. Klicken Sie im Navigationsbereich Elastic Beanstalk auf Einstellungen. image.png

(2) Klicken Sie rechts neben "Instanz" auf "Bearbeiten". image.png

(3) Aktivieren Sie "Standard" (①) und klicken Sie auf "Übernehmen" (②). ~~ [Wichtig] Wenn Sie es vergessen, funktioniert die Kommunikation nicht und es ist 502 (Bad Gateway). Stellen Sie es also unbedingt ein. </ b> ~~ → Ohne diese Einstellung war es okay. 502 (Bad Gateway) scheint durch eine Fehlkonfiguration der Server-Portnummer verursacht worden zu sein. image.png

4. Datenbankeinstellungen

Als nächstes richten wir die Datenbank (RDS) ein, die von 3 erstellt wurde. Erstellen der Elastic Beanstalk-Umgebung.

[1] Verbindungseinstellungen in RDS

(1) Suchen Sie in der Verwaltungskonsole nach RDS und klicken Sie darauf. image.png

(2) Klicken Sie im Navigationsbereich auf "Datenbank". image.png

(3) Aktivieren Sie das Optionsfeld der erstellten Datenbankinstanz (①) und klicken Sie auf "Ändern" (②). image.png

(4) Der Bildschirm wechselt zum Bildschirm zum Ändern der Datenbankinstanz. Setzen Sie "Öffentliche Zugänglichkeit" in der Spalte "Netzwerk & Sicherheit" auf "Ja" und klicken Sie unten auf "Weiter". image.png

(5) Nachdem Sie zum Bildschirm "Zusammenfassung ändern" gewechselt sind, überprüfen Sie den Inhalt, wählen Sie "Sofort anwenden" unter "Zeitplan ändern" (1) und klicken Sie auf "DB-Instanz ändern" (2). image.png

(6) Wenn Sie zum Bildschirm "Datenbank" zurückkehren, klicken Sie auf den Link über dem Namen der Datenbankinstanz. image.png

(7) Klicken Sie auf der Registerkarte "Verbindung und Sicherheit" auf "VPC-Sicherheitsgruppe" (Link). image.png

(8) Nachdem Sie zum Bildschirm "Sicherheitsgruppe" gewechselt sind, klicken Sie auf die Registerkarte "Eingehende Regeln" (①) und dann auf "Eingehende Regeln bearbeiten" (②). image.png

(9) Wählen Sie "Beliebiger Ort" (1) und klicken Sie auf "Regel speichern" (2). [Achtung] Diese Einstellung ist nicht sicherheitsrelevant, da sie den Zugriff von allen Verbindungsquellen ermöglicht. </ b> Dieses Mal verwenden wir WLAN, um eine Verbindung vom Client-PC herzustellen, daher wird diese Einstellung verwendet. image.png

[2] Erstellen einer Tabelle

(1) Als nächstes erstellen wir eine Tabelle auf dem Client-PC, die auch als Verbindungsprüfung dient. Starten Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um eine Verbindung zur Datenbankinstanz herzustellen.

Ausführungsbefehl


> mysql -h Hostname-P Portnummer-u Benutzername-p

Hier ist der Hostname der "Endpunkt" (1) in der folgenden Erfassung, die Portnummer ist der "Port" (2: Standard ist 3306) und der Benutzername ist der in 3 festgelegte "Benutzername". Erstellen der Elastic Beanstalk-Umgebung. (Diesmal Admin).

image.png

Nach dem Ausführen des Befehls werden Sie nach dem Kennwort gefragt. Geben Sie daher das unter Erstellen der Elastic Beanstalk-Umgebung festgelegte "Kennwort" ein und drücken Sie die Eingabetaste.

Führen Sie nach dem Anmelden die folgende DDL und SQL aus, um eine Datenbank und eine Tabelle zu erstellen und Daten einzufügen.

Datenbanken und Tabellen erstellen


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 'ID speichern',
  `shop_name` varchar(100) DEFAULT NULL COMMENT 'Speichername',
  `tel` varchar(15) DEFAULT NULL COMMENT 'Telefonnummer',
  `zip_code` varchar(10) DEFAULT NULL COMMENT 'Postleitzahl',
  `address` varchar(100) DEFAULT NULL COMMENT 'Adresse',
  `access` varchar(100) DEFAULT NULL COMMENT 'Zugriff',
  `business_hour` varchar(100) DEFAULT NULL COMMENT 'Öffnungszeiten',
  `regular_holiday` varchar(100) DEFAULT NULL COMMENT 'Regelmäßiger Urlaub',
  PRIMARY KEY (`shop_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='Information speichern';
begin;

INSERT INTO shop_informations VALUES(1, 'Frühlingsbrise Cafe', '03-XXXX-XXXX', '100-0005', 'Marunouchi, Chiyoda-ku, Tokio ...', '5 Minuten zu Fuß vom Bahnhof Tokio entfernt', 'Wochentage 7:00~21:00 / Samstag, Sonntag und Feiertag 10:00~21:00', 'Unregelmäßige Feiertage');
INSERT INTO shop_informations VALUES(2, 'Natsumi Shokudo', '050-XXXX-XXXX', '254-0034', 'Schatzstadt, Präfektur Kanagawa ...', '10 Minuten zu Fuß vom Bahnhof Hiratsuka entfernt', 'Wochentage 11:00~22:00 / Samstags, sonntags und an Feiertagen 11:00~20:00', 'Dienstag');
INSERT INTO shop_informations VALUES(3, 'Akiyama', '049-XXXX-XXXX', '350-0041', 'Rokukencho, Stadt Kawagoe, Präfektur Saitama ...', '7 Minuten zu Fuß vom Bahnhof Kawagoe City entfernt/5 Minuten zu Fuß vom Bahnhof Honkawakoshi entfernt', 'Mittag 11:00~14:00 / Nacht 18:00~23:30', 'Sonn- und Feiertage');
INSERT INTO shop_informations VALUES(4, 'Winterhimmel Küche', '04-XXXX-XXXX', '350-0041', 'Honmachi, Stadt Gagoko, Präfektur Chiba ...', '8 Minuten zu Fuß vom Bahnhof Gagoko entfernt', 'Mittag 11:30~14:00 / Nacht 17:00~23:00', 'Donnerstag');

commit;
  • Die oben genannten Daten sind fiktiv. Es ist kein richtiger Laden.

[3] Einstellungen in Elastic Beanstalk

(2) Fügen Sie als Nächstes in Elastic Beanstalk Umgebungsvariablen für die Datenbankverbindung hinzu. Suchen Sie in der Verwaltungskonsole Elastic Beanstalk und klicken Sie darauf. image.png

(3) Klicken Sie am rechten Ende von "Software" auf "Bearbeiten". image.png

(4) Stellen Sie im Feld "Umgebungseigenschaften" Folgendes ein (①) und klicken Sie auf "Übernehmen" (②).

Name Wert
DB_HOST (10)Hostname eingegeben in
DB_PORT (10)Portnummer eingegeben in
DB_NAME (10)Datenbankname erstellt in
DB_USER (10)Benutzername eingegeben in
DB_PASSWORD (10)Passwort eingegeben in
SERVER_PORT 5000

image.png

(5) Schreiben Sie den Inhalt von application.yml, der in "1. Erstellen einer Java-Anwendung (Spring Boot)" erstellt wurde, wie folgt um.

application.yml


spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${DB_HOST:(10)Hostname eingegeben in}:${DB_PORT:(10)Portnummer eingegeben in}/${DB_NAME:(10)Datenbankname erstellt in}?serverTimezone=JST
    username: ${DB_USERNAME:(10)Benutzername eingegeben in}
    password: ${DB_PASSWORD:(10)Passwort eingegeben in}
  jpa:
    database: MYSQL
    hibernate.ddl-auto: none
server:
  port: ${SERVER_PORT:5000}

Auf diese Weise können Sie eine Verbindung zu der Datenbank herstellen, die dieses Mal vom Client-PC erstellt wurde.

(6) Klicken Sie in Eclipse mit der rechten Maustaste auf das erstellte Projekt (1) und klicken Sie auf "Ausführen" (2)> "Spring Boot-Anwendung" (3), um den lokalen Server zu starten. image.png

(7) Starten Sie den Browser und klicken Sie auf die folgende URL, um zu bestätigen, dass das Ergebnis erzielt werden kann.

Ausführungs-URL


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

(8) Reflektieren Sie die Änderungen in application.yml im Remote-Repository von Git (CodeCommit). Starten Sie die Eingabeaufforderung, wechseln Sie in das Stammverzeichnis des Projekts und führen Sie die Befehle in der folgenden Reihenfolge aus.

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

Über die Fortsetzung

Die Fortsetzung

Beim. 5. Richten Sie die Verbindung zum Erstellen der Pipeline ein und 6. Bereinigen Sie.

Änderungsprotokoll

--2020 / 08/13: [1] Umgebung, Erstellung neuer Anwendungen, [2] Teilweise Änderung zusätzlicher Einstellungen in "3. Erstellen einer elastischen Beanstalk-Umgebung"

Referenz

Verfahren

3. Erstellen einer elastischen Beanstalk-Umgebung

4. Einstellungen für die Datenbankverbindung

  • [Wie löse ich Konnektivitätsprobleme mit Amazon RDS-Instanzen, die öffentliche oder private VPC-Subnetze verwenden? | Aws](https://aws.amazon.com/jp/premiumsupport/knowledge- center / rds-Konnektivitätsinstanz-Subnetz-vpc /)

Recommended Posts