Migrieren Sie EC2 mit Auto Scaling vom IBM WebSphere Anwendungsserver zu Apache Tomcat auf Amazon - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren Sie EC2 mit Auto Scaling vom IBM WebSphere Anwendungsserver zu Apache Tomcat auf Amazon

Erstellt von Kevin Yung (AWS) und Afroz Khan () AWS

R-Typ: Replatform

Quelle: Anwendungen

Ziel: Apache Tomcat auf einer EC2 Amazon-Instance mit aktiviertem Auto Scaling

Erstellt von: AWS

Umgebung: PoC oder Pilot

Technologien: Web- und mobile Apps; Migration

Arbeitslast: Open Source; IBM

AWSdienstleistungen: Amazon EC2

Übersicht

Dieses Muster bietet Anleitungen für die Migration einer Java-Anwendung von IBM WebSphere Application Server zu Apache Tomcat auf einer Amazon Elastic Compute Cloud (AmazonEC2) -Instance mit aktiviertem Amazon EC2 Auto Scaling. 

Mit diesem Muster können Sie Folgendes erreichen:

  • Eine Senkung der IBM Lizenzkosten

  • Hohe Verfügbarkeit durch Multi-AZ-Bereitstellung

  • Verbesserte Anwendungsausfallsicherheit mit Amazon EC2 Auto Scaling

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Java-Anwendungen (Version 7). x oder 8. x) sollte LAMP stapelweise entwickelt werden.

  • Der Zielstatus besteht darin, Java-Anwendungen auf Linux-Hosts zu hosten. Dieses Muster wurde erfolgreich in einer Red Hat Enterprise Linux (RHEL) 7-Umgebung implementiert. Andere Linux-Distributionen können diesem Muster folgen, es sollte jedoch auf die Konfiguration der Apache Tomcat-Distribution verwiesen werden.

  • Sie sollten die Abhängigkeiten der Java-Anwendung verstehen.

  • Sie müssen Zugriff auf den Quellcode der Java-Anwendung haben, um Änderungen vornehmen zu können.

Einschränkungen und Änderungen an der Plattformumstellung

  • Sie sollten die Enterprise Archive (EAR) -Komponenten verstehen und sicherstellen, dass alle Bibliotheken in den WAR Webkomponentendateien enthalten sind. Sie müssen das Apache Maven WAR Plugin konfigurieren und WAR Dateiartefakte erzeugen.

  • Bei der Verwendung von Apache Tomcat 8 besteht ein bekannter Konflikt zwischen servlet-api.jar und den in das Anwendungspaket integrierten JAR-Dateien. Um dieses Problem zu beheben, löschen Sie servlet-api.jar aus dem Anwendungspaket.

  • Sie müssen WEB - INF /resources konfigurieren, das sich im Klassenpfad der Apache Tomcat-Konfiguration befindet. Standardmäßig werden die JAR Bibliotheken nicht in das Verzeichnis geladen. Alternativ können Sie alle Ressourcen unter src/main/resources bereitstellen.

  • Suchen Sie in der Java-Anwendung nach fest codierten Kontextwurzeln und aktualisieren Sie das neue Kontextstammverzeichnis von Apache Tomcat.

  • Um JVM Laufzeitoptionen festzulegen, können Sie die Konfigurationsdatei setenv.sh im Apache Tomcat-Bin-Ordner erstellen; zum Beispiel JAVA _OPTS, JAVA _ usw. HOME  

  • Die Authentifizierung wird auf Containerebene konfiguriert und in Apache Tomcat-Konfigurationen als Realm eingerichtet. Die Authentifizierung wird für einen der folgenden drei Bereiche eingerichtet: 

    • JDBCDatabase Realm sucht nach Benutzern in einer relationalen Datenbank, auf die der JDBC Treiber zugreift.

    • DataSource Database Realm sucht nach Benutzern in einer Datenbank, auf die zugegriffen wird vonJNDI.

    • JNDIDirectory Realm sucht nach Benutzern im Lightweight Directory Access Protocol (LDAP) -Verzeichnis, auf das der JNDI Anbieter zugreift. Für die Suchvorgänge ist Folgendes erforderlich: 

      • LDAPVerbindungsdetails: Benutzer-Suchbasis, Suchfilter, Rollenbasis, Rollenfilter 

      • Der wichtige JNDI Directory-Realm: Stellt eine Verbindung zu LDAP allen Gruppen her, in denen ein Benutzer Mitglied ist, authentifiziert diese und ruft sie ab

  • Autorisierung: Im Fall eines Containers mit einer rollenbasierten Autorisierung, die die Autorisierungseinschränkungen in web.xml überprüft, müssen Webressourcen definiert und mit den in den Einschränkungen definierten Rollen verglichen werden. Wenn LDAP es keine Gruppenrollen-Zuordnung gibt, müssen Sie das Attribut < security-role-ref > in web.xml festlegen, um eine Gruppenrollen-Zuordnung zu erreichen. Ein Beispiel für ein Konfigurationsdokument finden Sie in der Oracle-Dokumentation. 

  • Datenbankverbindung: Erstellen Sie eine Ressourcendefinition in Apache Tomcat mit einem Amazon Relational Database Service (AmazonRDS) -Endpunkt URL und Verbindungsdetails. Aktualisieren Sie den Anwendungscode mithilfe DataSource JNDI von Lookup, sodass er auf a verweist. Eine bestehende DB-Verbindung, die in definiert ist, WebSphere würde nicht funktionieren, da sie WebSphere die JNDI Namen verwendet. Sie können <resource-ref>in web.xml einen Eintrag mit dem JNDI Namen und der DataSource Typdefinition hinzufügen. Ein Beispiel für ein Konfigurationsdokument finden Sie in der Apache Tomcat-Dokumentation.

  • Protokollierung: Standardmäßig protokolliert Apache Tomcat in der Konsole oder in einer Protokolldatei. Sie können die Ablaufverfolgung auf Realmebene aktivieren, indem Sie logging.properties aktualisieren (siehe Logging in Tomcat). Wenn Sie Apache Log4j verwenden, um Logs an eine Datei anzuhängen, müssen Sie tomcat-juli herunterladen und dem Klassenpfad hinzufügen.

  • Sitzungsverwaltung: Wenn Sie IBM Web SEAL für den Anwendungslastenausgleich und die Sitzungsverwaltung beibehalten, sind keine Änderungen erforderlich. Wenn Sie einen Application Load Balancer oder Network Load Balancer als Ersatz für die IBM SEAL Web-Komponente verwenden, müssen Sie die Sitzungsverwaltung mithilfe einer ElastiCache Amazon-Instance mit einem Memcache-Cluster einrichten und Apache Tomcat für die Verwendung von Open-Source-Sitzungsmanagement einrichten. AWS 

  • Wenn Sie den IBM Web SEAL Forward Proxy verwenden, müssen Sie einen neuen Network Load Balancer einrichten. AWS Verwenden Sie die vom Network Load Balancer für SEAL Web-Junction-Konfigurationen IPs bereitgestellten.

  • SSLKonfiguration: Es wird empfohlen, Secure Sockets Layer (SSL) für die end-to-end Kommunikation zu verwenden. Um eine SSL Serverkonfiguration in Apache Tomcat einzurichten, folgen Sie den Anweisungen in der Apache Tomcat-Dokumentation

Architektur

Quelltechnologie-Stack

  • IBM WebSphere Anwendungsserver

Zieltechnologie-Stack

Zielarchitektur

AWS Cloud architecture with VPC, two availability zones, load balancer, and database setup.

Tools

Epen

AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie eine virtuelle private Cloud (VPC).
Erstellen Sie Subnetze.
Erstellen Sie bei Bedarf Routing-Tabellen.
Erstellen Sie Listen zur Netzwerkzugriffskontrolle (ACLs).
Richten Sie AWS Direct Connect oder eine VPN Unternehmensverbindung ein.
AufgabeBeschreibungErforderliche Fähigkeiten
Refaktorieren Sie die Maven-Konfiguration des Anwendungsbuilds, um die WAR Artefakte zu generieren.
Refaktorieren Sie die Datenquellen für Anwendungsabhängigkeiten in Apache Tomcat.
Refaktorieren Sie die Anwendungsquellcodes so, dass sie JNDI Namen in Apache Tomcat verwenden.
Stellen Sie die WAR Artefakte in Apache Tomcat bereit.
Vollständige Anwendungsvalidierungen und Tests.
AufgabeBeschreibungErforderliche Fähigkeiten
Konfigurieren Sie die Unternehmensfirewall so, dass die Verbindung zu den Abhängigkeitsdiensten möglich ist.
Konfigurieren Sie die Unternehmensfirewall so, dass Endbenutzer auf Elastic Load Balancing zugreifen können. AWS
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie die Anwendung und stellen Sie sie auf einer EC2 Instanz bereit.
Erstellen Sie einen Amazon ElastiCache for Memcached-Cluster für die Sitzungsverwaltung.
Erstellen Sie eine Amazon RDS Multi-AZ-Instance für die Backend-Datenbank.
Erstellen Sie SSL Zertifikate und importieren Sie sie in den AWS Certificate Manager (ACM).
Installieren Sie SSL Zertifikate auf Load Balancern.
Installieren Sie SSL Zertifikate für Apache Tomcat-Server.
Führen Sie die Validierungen und Tests der Anwendungen durch.
AufgabeBeschreibungErforderliche Fähigkeiten
Fahren Sie die bestehende Infrastruktur herunter.
Stellen Sie die Datenbank aus der Produktion auf Amazon wieder herRDS.
Überschneiden Sie die Anwendung, indem Sie DNS Änderungen vornehmen.

Referenzen

Tutorials und Videos