Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con Auto Scaling
Creato da Kevin Yung (AWS) e Afroz Khan (AWS)
Riepilogo
Questo modello fornisce indicazioni per la migrazione di un'applicazione Java da IBM WebSphere Application Server ad Apache Tomcat su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) con Amazon Auto EC2 Scaling abilitato.
Utilizzando questo modello, è possibile ottenere:
Una riduzione dei costi di licenza IBM
Alta disponibilità grazie all'implementazione Multi-AZ
Resilienza delle applicazioni migliorata con Amazon EC2 Auto Scaling
Prerequisiti e limitazioni
Prerequisiti
Applicazioni Java (versione 7). x o 8. x) dovrebbe essere sviluppato in stack LAMP.
Lo stato di destinazione è ospitare applicazioni Java su host Linux. Questo modello è stato implementato con successo in un ambiente Red Hat Enterprise Linux (RHEL) 7. Altre distribuzioni Linux possono seguire questo schema, ma è necessario fare riferimento alla configurazione della distribuzione Apache Tomcat.
È necessario comprendere le dipendenze dell'applicazione Java.
È necessario avere accesso al codice sorgente dell'applicazione Java per apportare modifiche.
Limitazioni e modifiche alla ripiattaforma
È necessario conoscere i componenti dell'archivio aziendale (EAR) e verificare che tutte le librerie siano incluse nei file WAR dei componenti Web. È necessario configurare il plugin Apache Maven WAR e produrre artefatti di file WAR
. Quando si utilizza Apache Tomcat 8, esiste un conflitto noto tra servlet-api.jar e i file jar incorporati nel pacchetto dell'applicazione. Per risolvere questo problema, eliminate servlet-api.jar dal pacchetto dell'applicazione.
È necessario configurare WEB-INF/Resources che si trovano nel classpath della configurazione di Apache Tomcat.
Per impostazione predefinita, le librerie JAR non vengono caricate nella directory. In alternativa, puoi distribuire tutte le risorse insrc/main/resources. Verifica la presenza di eventuali root contestuali codificate all'interno dell'applicazione Java e aggiorna la nuova radice contestuale
di Apache Tomcat. Per impostare le opzioni di runtime JVM, è possibile creare il file di configurazione setenv.sh nella cartella bin di Apache Tomcat; ad esempio, JAVA_OPTS, JAVA_HOME, ecc.
L'autenticazione è configurata a livello di contenitore ed è configurata come realm nelle configurazioni di Apache Tomcat. L'autenticazione viene stabilita per uno dei tre ambiti seguenti:
JDBC Database Realm cerca gli utenti in un database
relazionale a cui accede il driver JDBC. DataSource Database Realm
cerca gli utenti in un database a cui accede JNDI. JNDI Directory Realm
cerca gli utenti nella directory LDAP (Lightweight Directory Access Protocol) a cui accede il provider JNDI. Le ricerche richiedono: Dettagli della connessione LDAP: base di ricerca utente, filtro di ricerca, base di ruoli, filtro di ruolo
La chiave JNDI Directory Realm: si connette a LDAP, autentica gli utenti e recupera tutti i gruppi di cui un utente è membro
Autorizzazione: nel caso di un contenitore con un'autorizzazione basata sui ruoli che controlla i vincoli di autorizzazione in web.xml, le risorse web devono essere definite e confrontate con i ruoli definiti nei vincoli. Se LDAP non dispone della mappatura dei ruoli di gruppo, è necessario impostare l'attributo < > in web.xml per ottenere la mappatura dei ruoli di gruppo. security-role-ref Per vedere un esempio di documento di configurazione, consulta la documentazione Oracle.
Connessione al database: crea una definizione di risorsa in Apache Tomcat con un URL dell'endpoint Amazon Relational Database Service (Amazon RDS) e dettagli di connessione. Aggiorna il codice dell'applicazione in modo che faccia riferimento a utilizzando la ricerca JNDI DataSource . Una connessione DB esistente definita in non WebSphere funzionerebbe, poiché utilizza i nomi WebSphere JNDI di. È possibile aggiungere una <resource-ref>voce in web.xml con il nome JNDI e la definizione del DataSource tipo. Per visualizzare un documento di configurazione di esempio, consultate la documentazione di Apache Tomcat
. Registrazione: per impostazione predefinita, Apache Tomcat accede alla console o a un file di registro. È possibile abilitare la traccia a livello di realm aggiornando logging.properties (vedi Registrazione in Tomcat).
Se utilizzi Apache Log4j per aggiungere log a un file, devi scaricare tomcat-juli e aggiungerlo al classpath. Gestione delle sessioni: se utilizzi IBM WebSeal per il bilanciamento del carico delle applicazioni e la gestione delle sessioni, non è richiesta alcuna modifica. Se utilizzi un Application Load Balancer o Network Load Balancer su AWS per sostituire il componente IBM WebSeal, devi configurare la gestione delle sessioni utilizzando un'istanza ElastiCache Amazon con un cluster Memcached e configurare Apache Tomcat per utilizzare la gestione delle sessioni open source.
Se utilizzi il forward proxy IBM WebSEAL, devi configurare un nuovo Network Load Balancer su AWS. Utilizza le configurazioni di giunzione IPs fornite dal Network Load Balancer per le configurazioni di giunzione WebSEAL.
Configurazione SSL: si consiglia di utilizzare Secure Sockets Layer (SSL) per le comunicazioni. end-to-end Per configurare una configurazione del server SSL in Apache Tomcat, segui le istruzioni nella documentazione di Apache Tomcat.
Architettura
Stack di tecnologia di origine
Server di applicazioni IBM WebSphere
Stack tecnologico Target
L'architettura utilizza Elastic Load Balancing (versione 2). Se utilizzi IBM WebSeal per la gestione e il bilanciamento del carico di Identify, puoi selezionare un Network Load Balancer su AWS da integrare con il reverse proxy IBM WebSeal.
Le applicazioni Java vengono distribuite su un server applicativo Apache Tomcat, che viene eseguito su un' EC2 istanza in un gruppo Amazon Auto Scaling EC2 . Puoi impostare una politica di scalabilità basata su CloudWatch parametri di Amazon come l'utilizzo della CPU.
Se stai ritirando l'uso di IBM WebSeal per il bilanciamento del carico, puoi utilizzare Amazon for Memcached ElastiCache per la gestione delle sessioni.
Per il database di back-end, puoi implementare High Availability (Multi-AZ) per Amazon RDS e selezionare un tipo di motore di database.
Architettura Target

Strumenti
Apache Tomcat (versione 7). x o 8. x)
RHEL 7 o Centos 7
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un cloud privato virtuale (Virtual Private Cloud (VPC)) | ||
Creare sottoreti. | ||
Se necessario, create tabelle di routing. | ||
Crea elenchi di controllo degli accessi alla rete (ACLs). | ||
Configura AWS Direct Connect o una connessione VPN aziendale. |
Attività | Descrizione | Competenze richieste |
---|---|---|
Rifattorizza la configurazione Maven di build dell'applicazione per generare gli artefatti WAR. | ||
Rifattorizza le fonti di dati sulle dipendenze delle applicazioni in Apache Tomcat. | ||
Rifattorizza i codici sorgente dell'applicazione per utilizzare i nomi JNDI in Apache Tomcat. | ||
Distribuisci gli artefatti WAR in Apache Tomcat. | ||
Completa le convalide e i test delle applicazioni. |
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura il firewall aziendale per consentire la connessione ai servizi di dipendenza. | ||
Configura il firewall aziendale per consentire all'utente finale l'accesso a Elastic Load Balancing on AWS. |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea e distribuisci l'applicazione su un' EC2 istanza. | ||
Crea un cluster Amazon ElastiCache for Memcached per la gestione delle sessioni. | ||
Crea un'istanza Amazon RDS Multi-AZ per il database di backend. | ||
Crea certificati SSL e importali in AWS Certificate Manager (ACM). | ||
Installa i certificati SSL sui sistemi di bilanciamento del carico. | ||
Installa i certificati SSL per i server Apache Tomcat. | ||
Convalide e test completi delle applicazioni. |
Attività | Descrizione | Competenze richieste |
---|---|---|
Chiudere l'infrastruttura esistente. | ||
Ripristina il database dalla produzione ad Amazon RDS. | ||
Riduci l'applicazione apportando modifiche al DNS. |
Risorse correlate
Riferimenti
Tutorial e video