

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling"></a>

*Kevin Yung e Afroz Khan, Amazon Web Services*

## Resumo
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-summary"></a>

Esse padrão fornece orientação para migrar um aplicativo Java do IBM WebSphere Application Server para o Apache Tomcat em uma EC2 instância do Amazon Elastic Compute Cloud (Amazon) com o Amazon Auto EC2 Scaling ativado. 

Ao usar esse padrão, você pode conseguir:
+ Uma redução nos custos de licenciamento da IBM
+ Alta disponibilidade usando implantação Multi-AZ
+ Melhor resiliência de aplicativos com o Amazon EC2 Auto Scaling

## Pré-requisitos e limitações
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-prerequisites-and-limitations"></a>

**Pré-requisitos **
+ Aplicações Java (versão 7.*x* ou 8.*x*) devem ser desenvolvidas em pilhas LAMP.
+ O estado de destino é hospedar aplicativos Java em hosts Linux. Esse padrão foi implementado com sucesso em um ambiente Red Hat Enterprise Linux (RHEL) 7. Outras distribuições Linux podem seguir esse padrão, mas a configuração da distribuição Apache Tomcat deve ser referenciada.
+ Você deve entender as dependências do aplicativo Java.
+ Você deve ter acesso ao código-fonte do aplicativo Java para fazer alterações. 

**Limitações e mudanças na redefinição da plataforma**
+ Você deve compreender os componentes do arquivamento corporativo (EAR) e verificar se todas as bibliotecas estão empacotadas nos arquivos WAR do componente web. Você precisa configurar o [plug-in WAR do Apache Maven](https://maven.apache.org/plugins/maven-war-plugin/) e produzir artefatos de arquivo WAR.
+ Ao usar o Apache Tomcat 8, há um conflito conhecido entre o servlet-api.jar e os arquivos JAR integrados do pacote do aplicativo. Para resolver esse problema, exclua o servlet-api.jar do pacote do aplicativo.
+ Você deve configurar WEB-INF/Resources localizados no *classpath* da [configuração do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html). Por padrão, as bibliotecas JAR não são carregadas no diretório. Como alternativa, você pode implantar todos os recursos abaixo src/main/resources*.*
+ Verifique se há raízes de contexto de codificação rígida no aplicativo Java e atualize a nova [raiz de contexto do Apache Tomcat.](https://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context)
+ Para definir as opções de runtime da JVM, você pode criar o arquivo de configuração setenv.sh na pasta bin do Apache Tomcat; por exemplo, JAVA\_OPTS, JAVA\_HOME etc**.**  
+ A autenticação é configurada no nível do contêiner e configurada como uma região nas configurações do Apache Tomcat. A autenticação é estabelecida para qualquer um dos três domínios a seguir: 
  + O [JDBC Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm) pesquisa usuários em um banco de dados relacional acessado pelo driver JDBC.
  + DataSource O [Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm) pesquisa usuários em um banco de dados que é acessado pelo JNDI. 
  + O [JNDI Directory Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm) pesquisa usuários no diretório Lightweight Directory Access Protocol (LDAP) que é acessado pelo provedor JNDI. As pesquisas exigem: 
    + Detalhes da conexão LDAP: base de pesquisa de usuário, filtro de pesquisa, base de perfil, filtro de perfil 
    + A principal região do diretório JNDI: conecta-se ao LDAP, autentica usuários e recupera todos os grupos dos quais um usuário é membro
+ Autorização: no caso de um contêiner com uma autorização baseada em funções que verifica as restrições de autorização em web.xml, os recursos da Web devem ser definidos e comparados às funções definidas nas restrições. Se o LDAP não tiver mapeamento de função de grupo, você deverá definir o atributo < security-role-ref > em web.xml para obter o mapeamento de função de grupo. Para ver um exemplo de um documento de configuração, consulte a [documentação da Oracle](https://docs.oracle.com/cd/E19226-01/820-7627/bncav/index.html). 
+ Conexão de banco de dados: crie uma definição de recurso no Apache Tomcat com um URL de endpoint do Amazon Relational Database Service (Amazon RDS) e detalhes de conexão. Atualize o código do aplicativo para fazer referência a DataSource usando a pesquisa JNDI. Uma conexão de banco de dados existente definida em não WebSphere funcionaria, pois usa os nomes WebSphere JNDI. Você pode adicionar uma <resource-ref>entrada em web.xml com o nome JNDI e a definição do DataSource tipo. Para ver um exemplo de documento de configuração, consulte a [documentação do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
+ Registro: por padrão, o Apache Tomcat faz o registro de logs no console ou em um arquivo de log. Você pode ativar o rastreamento em nível de domínio atualizando *logging.properties* (consulte [Registro em log no Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/logging.html)). Se você estiver usando o Apache Log4j para anexar registros em log a um arquivo, você deve baixar o tomcat-juli e adicioná-lo ao *classpath.*
+ Gerenciamento de sessão: se você estiver mantendo o IBM WebSEAL para Application Load Balancer e gerenciamento de sessões, nenhuma alteração será necessária. [Se você estiver usando um Application Load Balancer ou Network Load Balancer na AWS para substituir o componente IBM WebSEAL, deverá configurar o gerenciamento de sessões usando uma instância da ElastiCache Amazon com um cluster Memcached e configurar o Apache Tomcat para usar o gerenciamento de sessões de código aberto.](https://github.com/magro/memcached-session-manager) 
+ Se você estiver usando o proxy de encaminhamento IBM WebSEAL, deverá configurar um novo Network Load Balancer na AWS. Use o IPs fornecido pelo Network Load Balancer para configurações de junção do WebSEAL.
+ Configuração SSL: recomendamos que você use o Secure Sockets Layer (SSL) para comunicações. end-to-end Para definir uma configuração de servidor SSL no Apache Tomcat, siga as instruções na [documentação do Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html). 

## Arquitetura
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-architecture"></a>

**Pilha de tecnologia de origem**
+ Servidor WebSphere de aplicativos IBM

 

**Pilha de tecnologias de destino**
+ A arquitetura usa o [Elastic Load Balancing (versão 2](https://docs.aws.amazon.com/elasticloadbalancing/)). Se você estiver usando o IBM WebSEAL para gerenciamento e balanceador de carga do Identify, poderá selecionar um Network Load Balancer na AWS para integrar com o proxy reverso IBM WebSEAL.
+ Os aplicativos Java são implantados em um servidor de aplicativos Apache Tomcat, que é executado em uma EC2 instância em um grupo do Amazon Auto [Scaling. EC2 ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) Você pode configurar uma [política de escalabilidade](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) com base nas CloudWatch métricas da Amazon, como a utilização da CPU. 
+ Se você estiver retirando o uso do IBM WebSEAL para balanceamento de carga, poderá usar o [Amazon ElastiCache for Memcached para gerenciamento](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) de sessões.
+ Para o banco de dados de backend, você pode implantar a [Alta Disponibilidade (Multi-AZ) para o Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) e selecionar um tipo de mecanismo de banco de dados.

 

**Arquitetura de destino**

![](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/52b91dab-7b3b-4751-abe2-25e7c7cd8d89/images/25125023-9a81-452a-9ada-184e2416cc02.png)


## Ferramentas
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ Apache Tomcat (versão 7.*x* ou 8.*x*)
+ RHEL 7 ou Centos 7
+ [Implantação do Multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache para Memcached (opcional](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html))

## Épicos
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-epics"></a>

### Configuração da VPC
<a name="set-up-the-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar uma nuvem privada virtual (VPC). |  |  | 
| Crie sub-redes. |  |  | 
| Crie tabelas de roteamento, se necessário. |  |  | 
| Crie listas de controle de acesso à rede (ACLs). |  |  | 
| Configure o AWS Direct Connect ou uma conexão VPN corporativa. |  |  | 

### Redefina a plataforma do aplicativo
<a name="replatform-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Refatore a configuração do Maven de compilação do aplicativo para gerar os artefatos WAR. |  |  | 
| Refatore as fontes de dados de dependência do aplicativo no Apache Tomcat. |  |  | 
| Refatore os códigos-fonte do aplicativo para usar nomes JNDI no Apache Tomcat. |  |  | 
| Implante os artefatos WAR no Apache Tomcat. |  |  | 
| Validações e testes completos do aplicativo. |  |  | 

### Configure a rede
<a name="configure-the-network"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o firewall corporativo para permitir a conexão com os serviços de dependência. |  |  | 
| Configure o firewall corporativo para permitir que o usuário final acesse o Elastic Load Balancing na AWS. |  |  | 

### Crie a infraestrutura de aplicativos
<a name="create-the-application-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie e implante o aplicativo em uma EC2 instância. |  |  | 
| Crie um cluster Amazon ElastiCache for Memcached para gerenciamento de sessões. |  |  | 
| Crie uma instância do Multi-AZ do Amazon RDS para o banco de dados de backend. |  |  | 
| Crie certificados SSL e importe-os para o AWS Certificate Manager (ACM). |  |  | 
| Instale certificados SSL em balanceadores de carga. |  |  | 
| Instale certificados SSL para servidores Apache Tomcat. |  |  | 
| Validações e testes completos do aplicativo. |  |  | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Encerre a infraestrutura existente. |  |  | 
| Restaure o banco de dados da produção para o Amazon RDS. |  |  | 
| Substitua o aplicativo fazendo alterações no DNS. |  |  | 

## Recursos relacionados
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-related-resources"></a>

**Referências**
+ [Documentação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html)
+ [Guia de instalação do Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html)
+ [Documentação do Apache Tomcat JNDI](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)
+ [Implantações multi-AZ do Amazon RDS](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache para Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html)

**Tutoriais e vídeos**
+ [Conceitos básicos do Amazon RDS](https://aws.amazon.com/rds/getting-started/)