[Code Pipeline x Elastic Beanstalk] Aktualisieren Sie die Laufzeitversion von Java 8 auf Corretto 11 auf der Java SE-Plattform

Am 3. Juni 2020 wurde der Zweig der Plattform Corretto 11 (Java 11) auf der Java SE-Plattform von Elastic Beanstalk allgemein verfügbar gemacht.

Aus diesem Grund möchte ich das Update der Laufzeitversion so schnell wie möglich unterstützen.

Daher habe ich dieses Mal die Schritte zum Aktualisieren der Java SE-Umgebung von Elastic Beanstalk von Java 8 (nicht Corretto 8) auf Corretto 11 zusammengefasst.

Umgebung

Voraussetzungen

Dieser Artikel ist [Code-Pipeline x Elastic Beanstalk] CI / CD-Java-Anwendung für Elastic Beanstalk mit Code-Pipeline Teil 3 | Qiita Es wird eine Folgeposition von (Reinigen Sie nicht die Spuren von Schritt 6).

Es wird davon ausgegangen, dass die Plattformumgebung für Java 8 Version 2.10.8 erstellt wurde. In einem Teil entfällt die Arbeit mit ähnlichen Inhalten. Bitte beachten Sie.

Verfahren

1. JDK Amazon Corretto 8 → Upgrade auf Amazon Corretto 11

Aktualisieren Sie zunächst in der lokalen Umgebung das JDK von Amazon Corretto 8 auf Amazon Corretto 11, um den Vorgang zu überprüfen und den Fehler zu beheben.

[1] Vorbereitungen

(1) Lassen Sie uns zunächst das Zielprojekt mit Amazon Corretto 8 bereinigen. Klicken Sie in der Menüleiste auf "Projekt" (①)> "Reinigen" (②). image.png

(2) Überprüfen Sie das Zielprojekt (①) und klicken Sie auf "Reinigen" (②). image.png

(3) Überprüfen Sie nach Abschluss der Reinigung die folgenden Punkte.

-① Es ist kein Fehler aufgetreten -② Die Anwendung startet und funktioniert normal

Bitte prüfen.

(1) Sie können den Fehler auf der Registerkarte "Problem" (④) überprüfen, die angezeigt wird, wenn Sie in der Menüleiste auf "Fenster" (1)> "Ansichtsansicht" (2)> "Problem" (3) klicken. image.png

image.png

Darüber hinaus ist der obige Fehler ein Fehler von Eclipse selbst und hat keinen Einfluss auf die Konstruktion und das Verhalten der Anwendung, sodass auch dann kein Problem auftritt, wenn er auftritt.

(2) Die Anwendungsstartmethode ist wie folgt. Klicken Sie mit der rechten Maustaste auf das Projekt (1)> "Ausführen" (2)> "Spring Boot-Anwendung" (3). image.png

Stellen Sie dann sicher, dass die Anwendung ordnungsgemäß funktioniert.

(4) Ändern Sie als Nächstes die Einstellungen, um zu verhindern, dass das Projekt unbeabsichtigt erstellt wird. Klicken Sie in der Menüleiste auf "Projekt" (1) und deaktivieren Sie "Automatisch erstellen" (2). image.png

(5) Nehmen wir eine weitere notwendige Einstellungsänderung vor. Klicken Sie in der Menüleiste auf "Fenster"> "Einstellungen" und deaktivieren Sie unter "Ausführen / Debuggen" (1)> "Start" (2) ((2)) das Kontrollkästchen "Vorher erstellen (falls erforderlich)". ③), klicken Sie auf "Übernehmen und schließen" (④). image.png

Damit sind die Vorbereitungen für das JDK-Versions-Upgrade abgeschlossen.

[2] Installieren und Anwenden von Amazon Corretto 11

Installieren Sie als Nächstes Amazon Corretto 11 und wenden Sie es auf Eclipse an.

(1) Installieren Sie Amazon Corretto 11. Amazon Corretto 11 | aws herunterladen Laden Sie das Installationsprogramm herunter und doppelklicken Sie darauf, um es zu starten.

(2) Wenn der Assistent gestartet wird, ist es in Ordnung, wenn Sie mit den grundlegenden Standardeinstellungen fortfahren. Wenn Sie jedoch den Bildschirm "Benutzerdefiniertes Setup" erreichen, überprüfen Sie, ob die JDK-Version "Amazon Corretto JDK 11 Distribution" (①) ist. Lass uns gehen. Das Standardinstallationsziel befindet sich direkt im Amazon Corretto-Ordner unter Programme (②). image.png

(3) Ändern Sie nach Abschluss der Installation die "Installierte JRE" von Eclipse. Klicken Sie in Eclipse in der Menüleiste (2) auf "Fenster" (1)> "Einstellungen". image.png

(4) Wenn das Fenster "Einstellungen" angezeigt wird, klicken Sie auf "Java" (1)> "Installierte JRE" (2)> "Hinzufügen" (3). image.png

(5) Wenn der Bildschirm "JRE hinzufügen" angezeigt wird, wählen Sie "Standard-VM" (①) und klicken Sie auf "Weiter" (②). image.png

(6) Wenn der Bildschirm "JRE bearbeiten" angezeigt wird, klicken Sie auf die Schaltfläche "Verzeichnis" (1), wählen Sie den Ordner des installierten JDK (Amazon Corretto 11) (2) aus und geben Sie ihm einen beliebigen JRE-Namen (3). ), Klicken Sie auf "Fertig stellen" (④). image.png

(7) Überprüfen Sie das hinzugefügte JDK (①) und klicken Sie auf "Übernehmen und schließen" (②). image.png

[3] Führen Sie eine Anwendung aus, die mit JDK 8 (Amazon Corretto 8) auf JDK 11 (Amazon Corretto 11) erstellt wurde.

Nachdem Sie Amazon Corretto 11 angewendet haben, überprüfen Sie den Vorgang vor dem erneuten Erstellen, dh unter Verwendung des mit JDK 8 (Amazon Corretto 8) erstellten. Der Bestätigungsgesichtspunkt ist

--Überprüfen Sie, ob Bibliotheken aktualisiert werden müssen

Es wird sein.

(1) Starten Sie die Zielanwendung auf Eclipse.

(2) Nachdem die Anwendung normal gestartet wurde, überprüfen Sie die JDK-Version zur Kompilierungszeit, bevor Sie den Vorgang überprüfen, nur für den Fall. Führen Sie an der Eingabeaufforderung den Java-Versionsbestätigungsbefehl für eine beliebige Klassendatei im Bin des Zielprojekts aus.

Bei der Ausführung in der Klassendatei des folgenden Ordners ist dies wie folgt. image.png

Ausführungsbefehl & Ergebnis


> cd C:\pleiades-2020-03\workspace\sample-eb-java\bin\main\jp\co\sample_eb_java\domain\service
> javap -v ShopInformationService.class
Classfile /C:/pleiades-2020-03/workspace/sample-eb-java/bin/main/jp/co/sample_eb_java/domain/service/ShopInformationService.class
  Last modified 2020/08/12; size 1957 bytes
  MD5 checksum b6712daccce6cad8628e31007340fcca
  Compiled from "ShopInformationService.java"
public class jp.co.sample_eb_java.domain.service.ShopInformationService
  minor version: 0
  major version: 52
・ ・ ・ (Im Folgenden weggelassen)

Wenn dort "Hauptversion: 52" steht, ist es in Ordnung! </ b> Übrigens wird es im Fall von JDK 11 "Hauptversion: 55" sein.

(3) Lassen Sie uns den Betrieb überprüfen. Wenn sich das Verhalten von dem unterscheidet, wenn Sie die Anwendung mit JDK 8 erstellen, starten und ausführen, beheben Sie sie. (Diesmal war es okay.)

[4] Führen Sie eine mit JDK 11 (Amazon Corretto 11) auf JDK 11 (Amazon Corretto 11) erstellte Anwendung aus.

Führen Sie als Nächstes die auf JDK 11 (Amazon Corretto 11) basierende Anwendung auf JDK 11 (Amazon Corretto 11) aus. Der Bestätigungsgesichtspunkt ist

--Überprüfen Sie, ob veraltete APIs verwendet werden

Wird sein.

(1) Ändern Sie zunächst die Quellkompatibilität von build.gradle von 1,8 auf 11. Diese Einstellung ist die zum Zeitpunkt der Erstellung verwendete Java-Version oder wird mit der angewendeten JDK-Version erstellt, falls nicht angegeben.

build.Gradle (vor dem Wechsel)


plugins {
	id 'org.springframework.boot' version '2.3.2.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}

group = 'io.code_check.challenge_server'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
・ ・ ・ (Im Folgenden weggelassen)

build.Gradle (nach Änderung)


plugins {
	id 'org.springframework.boot' version '2.3.2.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}

group = 'io.code_check.challenge_server'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
・ ・ ・ (Im Folgenden weggelassen)

(2) Klicken Sie nach dem Speichern mit der rechten Maustaste auf "build.gradle" (1)> "Gradle" (2)> "Gradle-Projekt aktualisieren" (3), um die Abhängigkeiten zu aktualisieren. image.png

(3) Reinigen Sie das Projekt.

(4) Überprüfen Sie den Fehler. Überprüfen Sie die Registerkarte "Probleme" und stellen Sie sicher, dass keine neuen Fehler vorliegen. Wenn ein Fehler auftritt, korrigieren Sie ihn anhand des Inhalts der Nachricht (diesmal war es auch in Ordnung). image.png

(5) Klicken Sie mit der rechten Maustaste auf das Zielprojekt und starten Sie die Anwendung.

(6) Überprüfen Sie nach dem normalen Start der Anwendung die JDK-Version zur Kompilierungszeit, bevor Sie den Vorgang überprüfen. Führen Sie an der Eingabeaufforderung den Java-Versionsbestätigungsbefehl für eine beliebige Klassendatei im Bin des Projekts aus.

Ausführungsbefehl & Ergebnis


> cd C:\pleiades-2020-03\workspace\sample-eb-java\bin\main\jp\co\sample_eb_java\domain\service
> javap -v ShopInformationService.class
Classfile /C:/pleiades-2020-03/workspace/sample-eb-java/bin/main/jp/co/sample_eb_java/domain/service/ShopInformationService.class
  Last modified 2020/08/12; size 1957 bytes
  MD5 checksum b6712daccce6cad8628e31007340fcca
  Compiled from "ShopInformationService.java"
public class jp.co.sample_eb_java.domain.service.ShopInformationService
  minor version: 0
  major version: 55
・ ・ ・ (Im Folgenden weggelassen)

Wenn dort "Hauptversion: 55" steht, ist es in Ordnung! </ b>

(7) Überprüfen Sie den Vorgang, und korrigieren Sie den Zielteil, wenn das Ergebnis vom erwarteten Ergebnis abweicht. (Diesmal war das auch in Ordnung.)

(8) Erstellen Sie eine JAR-Datei zum Erstellen der Elastic Beantalk-Umgebung. Wechseln Sie in das Stammverzeichnis Ihres Projekts und führen Sie den Befehl build aus.

Wenn das Layout wie folgt ist, ist es wie folgt. image.png

Ausführungsbefehl


> cd C:\pleiades-2020-03\workspace\sample-eb-java
> gradlew build

OK, wenn das Ergebnis "BUILD SUCCESSFUL" ist! </ b>

(10) Stellen Sie sicher, dass die JAR-Datei unter build / libs erstellt wurde. (Verwenden Sie diese Option beim Erstellen der Umgebung.) image.png

2. Erstellen Sie eine Corretto 11-Umgebung mit Elastic Beanstalk

Erstellen Sie als Nächstes mit Elastic Beanstalk eine Umgebung für die Corretto 11-Plattform.

(1) Melden Sie sich bei der AWS Management Console an, öffnen Sie Elastic Beanstalk, klicken Sie im Navigationsbereich auf "Anwendungen" und drücken Sie das Optionsfeld des Projekts, für das Sie eine Umgebung für die Corretto 11-Plattform erstellen möchten (②) "Aktionen" (③) > "Umgebung erstellen" (④). image.png

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

(3) Stellen Sie Folgendes ein und klicken Sie auf "Weitere Optionen festlegen". (9)

No Name die Einstellungen
Umgebungsname Geben Sie einen beliebigen Namen ein (anders als der vorhandene).
Plattform Java
Plattformzweig Corretto 11 running on 64bit Amazon Linux 2
Plattformversion 3.1.0: Empfohlen
Anwendungscode Wählen Sie "Code hochladen"
Versionsetikett Geben Sie einen beliebigen Namen ein (anders als der vorhandene).
Quellcode Quelle Wählen Sie "Lokale Datei" und 1-(9)、(10)Laden Sie die in erstellte JAR-Datei hoch
Dateiauswahl 1-(9)、(10)Laden Sie die in erstellte JAR-Datei hoch

image.png

(4) In "Weitere Optionen einstellen",

-① Software -② Netzwerk

Installieren.

① Klicken Sie nach dem Übergang zum Bildschirm "Weitere Optionen festlegen" auf die Schaltfläche "Bearbeiten" von "Software", stellen Sie im Bildschirm "Software ändern" die folgenden Einstellungen ein und klicken Sie auf "Speichern" (③). ..

No Name die Einstellungen
Protokoll-Streaming Aktivieren Sie "Gültig"
Umwelteigenschaften Stellen Sie denselben Inhalt wie die vorhandene Java 8-Plattform ein (verwenden Sie denselben RDS)

image.png

(2) Klicken Sie anschließend auf die Schaltfläche "Bearbeiten" von "Netzwerk", stellen Sie sie auf dem Bildschirm "Netzwerk ändern" wie folgt ein und klicken Sie auf "Speichern" (③).

No Name die Einstellungen
Öffentliche IP-Adresse Setzen Sie einen Scheck
Verfügbarkeitszone Setzen Sie einen Scheck

image.png

(3) Wenn Sie zum Bildschirm "Weitere Optionen festlegen" zurückkehren, klicken Sie unten rechts in der Szene auf "Umgebung erstellen", um eine Umgebung zu erstellen. image.png

(4) Die Umgebung wird nach einer Weile erstellt. Wenn die Gesundheit "OK" ist, ist es OK! image.png

3. Konfigurieren Sie CodePipeline neu

In Zukunft werden wir die Code-Pipeline-Einstellungen überprüfen, damit sie in der in "2. Erstellen einer Corretto 11-Umgebung mit Elastic Beanstalk" erstellten Umgebung korrekt bereitgestellt werden.

[1] CodeBuild BuildSpec

(1) Öffnen Sie in der Verwaltungskonsole CodeBuild, wählen Sie das Build-Projekt aus, das Sie bei CI / CD auf der Java 8-Plattform verwenden, und klicken Sie auf "Bearbeiten" (②)> "BuildSpec" (③). image.png

(2) Ändern Sie wie unten gezeigt das Java des Build-Befehls von corretto8 in corretto11 (1) und klicken Sie auf "Buildspec aktualisieren" (2). image.png

BuildSpec (vor Änderung)


version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto8
  build:
    commands:
       - ./gradlew test

BuildSpec (nach Änderung)


version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  build:
    commands:
       - ./gradlew test

[2] CodePipeline-Bereitstellungsziel

(1) Suchen Sie in der Verwaltungskonsole nach CodePipeline, öffnen Sie sie und klicken Sie auf die Zielpipeline. image.png

(2) Klicken Sie nach dem Übergang zum Bildschirm der Zielpipeline auf "Bearbeiten". image.png

(3) Klicken Sie unter "Bearbeiten: Bereitstellen" (1) auf "Phase bearbeiten" und dann auf die Schaltfläche "Bearbeiten" (2). image.png

image.png

(4) Ändern Sie nach dem Übergang zum Bildschirm "Aktion bearbeiten" den "Umgebungsnamen" in den unter "2. Erstellen einer Corretto 11-Umgebung mit elastischer Bohnenstange" (①) erstellten Umgebungsnamen und klicken Sie auf "Fertig stellen" (②). ). image.png

(5) Klicken Sie auf die Schaltfläche "Speichern", um Ihre Änderungen zu speichern. image.png

(6) Da der Inhalt von build.gradle in "1. JDK auf Amazon Corretto 8 → Amazon Corretto 11 aktualisieren" geändert werden sollte, legen wir die Pipeline fest, pushen sie und führen sie aus. Wenn die Bereitstellung wie unten gezeigt erfolgreich ist (1), klicken Sie auf "AWS Elastic Beanstalk" (2). image.png

(7) Der Bildschirm wechselt zum Bildschirm "Umgebung" von Elastic Beanstalk. Klicken Sie daher auf die Zielumgebung. image.png

(8) Bestätigen Sie, dass "Health" "OK" ist, und bestätigen Sie, dass die Anwendung in der Domäne ordnungsgemäß funktioniert (②). image.png

4. Tauschen Sie die Umgebungs-URL aus

Tauschen Sie die Umgebungs-URL aus, dh ersetzen Sie die URL der vorhandenen Java 8-Plattform durch die diesmal erstellte Corretto 11-Plattform. Dadurch muss die Anwendungs-URL nicht mehr geändert werden.

(1) Wechseln Sie auf der Konsole zum Bildschirm Elastic Beantalk, aktivieren Sie das Optionsfeld der Java 8-Umgebung im Menü "Umgebung" (1) und klicken Sie auf "Aktion" (2)> "Umgebungs-URL" austauschen. (③). image.png

(2) Wählen Sie unter "Umgebungsname" unter "Zu tauschende Umgebung auswählen" die in "2. Erstellen einer Corretto 11-Umgebung mit elastischer Bohnenstange" (①) erstellte Umgebung aus und klicken Sie auf "Tauschen" (②). image.png

(3) Wenn Sie fertig sind, rufen Sie die Corretto 11-Plattform auf und stellen Sie sicher, dass sich die URL im roten Feld in die URL auf der Java 8-Plattform geändert hat. image.png

(4) Lassen Sie uns für alle Fälle den Vorgang mit der ersetzten Domäne überprüfen.

5. Isolierung von RDS-Instanzen

Isolieren Sie dann die RDS-Instanz von der Java 8-Plattform, damit sie beim Verlassen der Umgebung nicht entfernt wird.

(1) Suchen Sie in der Verwaltungskonsole nach RDS, wechseln Sie, klicken Sie im Navigationsbereich auf "Datenbank" und aktivieren Sie das Optionsfeld der Ziel-DB-Instanz (in der Java 8-Plattform enthalten) (①)> Klicken Sie auf "Aktion" (②)> "Schnappschuss machen" (③). image.png

(2) Geben Sie einen beliebigen Schnappschussnamen ein (①) und klicken Sie auf "Schnappschuss machen" (②). image.png

(3) Vergewissern Sie sich, dass der Schnappschuss auf dem Bildschirm "Schnappschuss" erstellt wurde. image.png

(4) Klicken Sie im Navigationsbereich auf "Datenbank" (1), aktivieren Sie das Optionsfeld der Ziel-DB-Instanz (1) und klicken Sie auf "Ändern" (3). image.png

(5) Aktivieren Sie "Löschschutz aktivieren" (①) und "Weiter" (②). image.png

(6) Überprüfen Sie den Inhalt und klicken Sie auf "DB-Instanz ändern". image.png

6. Entfernen Sie die Java 8-Umgebung

(1) Löschen Sie die Java 8-Umgebung, die Sie nicht mehr benötigen. Aktivieren Sie nach dem Klicken auf "Umgebung" im Navigationsbereich von Elastic Beanstalk das Optionsfeld der Java 8-Umgebung (①) und klicken Sie auf "Aktion" (②)> "Umgebung beenden" (③). image.png

(2) Überprüfen Sie nach dem Beenden der Java 8-Umgebung, ob die Datenbankinstanz nicht gelöscht wurde, und überprüfen Sie den Vorgang erneut in der Corretto 11-Domäne.

7. Aufräumen

[1] Entfernen der Corretto 11-Plattformumgebung

(1) Löschen Sie die Umgebung auf die gleiche Weise wie unter "6. Löschen der Java 8-Umgebung".

[2] RDS-Instanz löschen

Da die Datenbankinstanz in "5. Isolierung der RDS-Instanz" von der Elastic Beanstalk-Umgebung isoliert ist, wird sie nicht wie sie ist gelöscht. Befolgen Sie die nachstehenden Anweisungen.

(1) Wechseln Sie in der Verwaltungskonsole zum Übergang zu RDS, klicken Sie im Navigationsbereich auf "Datenbank", aktivieren Sie das Optionsfeld der Ziel-DB-Instanz (①) und klicken Sie auf "Ändern" (②). image.png

(2) Deaktivieren Sie "Löschschutz aktivieren" (①) und "Weiter" (②). image.png

(3) Aktivieren Sie "Zusammenfassung der Änderungen" (1), wählen Sie "Sofort anwenden" (2) und klicken Sie auf "DB-Instanz ändern" (3). image.png

(4) Wenn Sie zum Bildschirm "Datenbank" zurückkehren, aktivieren Sie das Optionsfeld der Ziel-RDS-Instanz und klicken Sie auf "Aktion" (②)> "Löschen", um sie zu löschen (③). image.png

Referenz

Verfahren

1. JDK Amazon Corretto 8 → Upgrade auf Amazon Corretto 11

  • Oracle JDK-Migrationshandbuch (Version 11) | Oracle-Hilfezentrum
  • [ Aktualisieren Sie die Spring Boot 2.0.x-Webanwendung auf 2.1.x (Teil 15) (Ändern Sie JDK von 8u202 auf 11.0.2 + 9) | Kangaru-sans Tagebuch](https: //ksby.hatenablog) .com / entry / 2019/03/16/144029)
  • [Fehler wird für nicht verwendeten Datenbanktreiber | IBM Support angezeigt](https://www.ibm.com/support/pages/%E6%9C%AA%E4%BD%BF%E7%94% A8% E3% 81% AE% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 83% 99% E3% 83% BC% E3% 82% B9% EF% BD% A5% E3% 83% 89% E3% 83% A9% E3% 82% A4% E3% 83% 90% E3% 83% BC% E3% 81% AB% E9% 96% A2% E3% 81% 99% E3% 82% 8B% E3% 82% A8% E3% 83% A9% E3% 83% BC% E3% 81% 8C% E8% A1% A8% E7% A4% BA% E3% 81% 95% E3% 82% 8C% E3% 82% 8B)
  • [Informationen zum automatischen Erstellen eines Eclipse | -Stapelüberlaufs](https://ja.stackoverflow.com/questions/6386/eclipse%E3%81%AE%E8%87%AA%E5%8B%95%E7% 9A% 84% E3% 81% AB% E3% 83% 93% E3% 83% AB% E3% 83% 89% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6)
  • [Überprüfen Sie, mit welcher Version die Java-Klassendatei mit | Rutakes Technical Note kompiliert wurde](http://blog.rutake.com/techmemo/2016/01/06/java-class%E3%83%95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E3% 81% 8C% E3% 81% A9% E3% 81% AE% E3% 83% 90% E3% 83% BC% E3% 82% B8% E3% 83% A7% E3% 83% B3% E3% 81% A7% E3% 82% B3% E3% 83% B3% E3% 83% 91% E3% 82% A4% E3% 83% AB% E3% 81% 95% E3% 82% 8C% E3% 81% 9F /)
  • Java-Version | Hishidama-Änderungsverlauf
  • Erstellen Sie eine Entwicklungsumgebung für Eclipse und Intellij IDEA mit Gradle | Cat-liebendem Entwicklerdatensatz für mobile Anwendungen

4. Blau / Grün-Bereitstellung - Trennung von RDS-Instanzen und Umtausch der Umgebung URL-

Recommended Posts