

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á.

# Modernize e implante aplicativos de mainframe usando o Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Sivasubramanian Ramani e Santosh Kumar Singh, Amazon Web Services*

## Resumo
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)pode acelerar a modernização em grande escala do.NET, mainframe e cargas de trabalho. VMware Ele implanta agentes de IA especializados que automatizam tarefas complexas, como avaliações, análise de código, refatoração, decomposição, mapeamento de dependências, validação e planejamento de transformação. [Esse padrão demonstra como usá-lo para AWS Transform modernizar um aplicativo de mainframe e depois implantá-lo na AWS infraestrutura usando o Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) Essas step-by-step instruções ajudam você a transformar [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que é um exemplo de aplicativo de mainframe de código aberto, de COBOL em um aplicativo Java moderno.

## Pré-requisitos e limitações
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Permissões administrativas para criar AWS recursos e implantar aplicativos
+ Terraform versão 1.5.7 ou posterior, [configurado](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Provedor para Terraform, configurado](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ Centro de Identidade do AWS IAM, [habilitado](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [habilitado](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Um usuário, [integrado a um AWS Transform espaço de](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) trabalho com uma função de colaborador que pode executar trabalhos de transformação

**Limitações**
+ AWS Transform está disponível apenas em alguns Regiões da AWS. Para obter uma lista completa das regiões aceitar, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Há uma cota de serviço para recursos de transformação de mainframe no AWS Transform. Para mais informações, consulte [Cotas para o AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar em um espaço de trabalho compartilhado, todos os usuários devem ser usuários registrados da Centro de Identidade do AWS IAM mesma instância associada à sua instância do aplicativo AWS Transform web.
+ O bucket AWS Transform do Amazon Simple Storage Service (Amazon S3) deve estar na mesma região Conta da AWS .

## Arquitetura
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

O diagrama a seguir mostra a end-to-end modernização do aplicativo legado e a implantação no Nuvem AWS. As credenciais do aplicativo e do banco de dados são AWS Secrets Manager armazenadas e a Amazon CloudWatch fornece recursos de monitoramento e registro.

![O AWS Transform moderniza uma aplicação de mainframe e uma implantação por meio do Terraform.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Por meio de Centro de Identidade do AWS IAM, o usuário se autentica e acessa AWS Transform no. Conta da AWS

1. O usuário carrega o código do mainframe COBOL no bucket do Amazon S3 e inicia a transformação no AWS Transform.

1. AWS Transform moderniza o código COBOL em código Java nativo da nuvem e armazena o código modernizado no bucket do Amazon S3.

1. O Terraform cria a AWS infraestrutura para implantar o aplicativo modernizado, incluindo um Application Load Balancer, uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e o banco de dados Amazon Relational Database Service (Amazon RDS). O Terraform implanta o código modernizado na instância do Amazon EC2.

1. Os arquivos VSAM são enviados para o Amazon EC2 e migrados do Amazon EC2 para o banco de dados do Amazon RDS.

## Ferramentas
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Serviços da AWS**
+ O [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) oferece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente. Neste padrão, as instâncias do cluster de failover do SQL Server são instaladas nas instâncias do Amazon EC2.
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) aos seus Contas da AWS aplicativos e à nuvem.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)usa IA agente para ajudá-lo a acelerar a modernização de cargas de trabalho legadas, como.NET, mainframe e cargas de trabalho. VMware 

**Outras ferramentas**
+ O [Apache Maven](https://maven.apache.org/) é uma ferramenta de gerenciamento de projetos e automação de criação de software de código aberto para projetos Java.
+ O [Apache Tomcat](https://tomcat.apache.org/) é um contêiner Servlet de código aberto e servidor web para código Java.
+ O [HashiCorp Terraform](https://www.terraform.io/docs) é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código.
+ O [Spring Boot](https://spring.io/projects/spring-boot) é um framework de código aberto baseado no Spring Framework em Java.

**Repositório de código**

O código desse padrão está disponível no repositório GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Esse padrão usa o aplicativo de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código aberto como um aplicativo de amostra.

## Práticas recomendadas
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Atribuir a propriedade total do código e dos recursos destinados para migração.
+ Desenvolver e testar uma prova de conceito antes de escalar para uma migração completa.
+ Garantir o comprometimento de todas as partes interessadas.
+ Estabelecer canais de comunicação claros.
+ Definir e documentar os requisitos de produto mínimo viável (MVP).
+ Estabelecer critérios claros de sucesso.

## Épicos
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Preparar e fazer o upload do código da aplicação de mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket. | Crie um bucket do Amazon S3 na mesma Conta da AWS região em que AWS Transform está habilitado. Você usa esse bucket para armazenar o código, os dados e os scripts adicionais do aplicativo de mainframe necessários para criar e executar o aplicativo. AWS Transform usa esse bucket para armazenar o código refatorado e outros arquivos associados à transformação. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3. | AWS geral, administrador da AWS | 
| Defina as permissões de CORS para o bucket. | Ao configurar seu bucket para AWS Transform acesso, você precisa configurar o compartilhamento de recursos de origem cruzada (CORS) para o bucket. Se isso não estiver configurado corretamente, talvez você não consiga usar as funcionalidades de visualização em linha ou comparação de arquivos do AWS Transform. Para obter instruções sobre como configurar o CORS para um bucket, consulte [Usar o compartilhamento de recursos de origem cruzada](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) no bucket do Amazon S3. Para a política, consulte as [permissões CORS do bucket S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) na AWS Transform documentação. | AWS geral, administrador da AWS | 
| Prepare o exemplo de código da aplicação de mainframe. | 1. Digite o comando a seguir para clonar o [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)repositório na sua estação de trabalho local:<pre>git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git</pre><br />2. Compacte a pasta `aws-mainframe-modernization-carddemo` em um arquivo ZIP.<br />3. Faça upload do arquivo ZIP no bucket do Amazon S3 que você criou. Para obter instruções, consulte [Fazer uploads de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) na documentação do Amazon S3. | AWS geral, desenvolvedor de aplicativos | 

### Transformar a aplicação de mainframe
<a name="transform-the-mainframe-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS Transform trabalho. | 1. Acesse o aplicativo AWS Transform da web fazendo login com suas credenciais.<br />2. Crie um novo espaço de trabalho seguindo as instruções em [Configurando seu espaço de trabalho](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-admin-workspace-setup.html) na AWS Transform documentação.<br />3. Na página inicial do seu espaço de trabalho, escolha **Perguntar AWS Transform para criar um trabalho**.<br />4. Em seguida, escolha **Mainframe Modernization** como o tipo de trabalho.<br />5. Na janela de chat, insira **Transform code to Java**.<br />6. Analise o tipo de trabalho, o nome e o objetivo sugeridos. Para confirmar, insira **Sim**.<br />7. Escolha **Criar trabalho**.   | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Configure um conector. | 1. Configure um conector com o bucket do Amazon S3 que você criou. Para obter instruções, consulte [Configurar um conector](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) na AWS Transform documentação. Quando for solicitado, insira o caminho para o arquivo zip `aws-mainframe-modernization-carddemo` no bucket do Amazon S3.<br />2. Aguarde a conclusão da análise. | Desenvolvedor do aplicativo, proprietário do aplicativo | 
| Transforme o código. | 1. Revise os resultados da análise do código de acordo com as instruções em [Analisar código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) na AWS Transform documentação.<br />2. Refatore o código do mainframe de acordo com as instruções em [Refactor code na documentação](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code). AWS Transform Para o aplicativo de CardDemo mainframe de amostra, você pode aceitar as configurações padrão.<br />3. Aguarde a conclusão da refatoração.<br />4. Escolha **Exibir resultados** para ver o caminho do código refatorado no bucket do Amazon S3. Anote esse caminho de arquivo. Você precisará disso mais tarde. | Desenvolvedor do aplicativo, proprietário do aplicativo | 

### Implantar a infraestrutura por meio do Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize os modelos. | 1. Insira o seguinte comando para clonar o repositório [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e) em sua estação de trabalho local:<pre>git clone https://github.com/aws-samples/sample-mainframe-transformation-e2e.git</pre><br />2. Insira o seguinte comando para recuperar seu endereço IP público atual:<pre>curl checkip.amazonaws.com</pre><br />3. Insira o seguinte comando para acessar o diretório infra:<pre>cd mainframe-transformation-e2e/infra</pre><br />4. Abra o arquivo `variables.tf`.<br />5. Substitua `YOUR_IP_ADDRESS_HERE` pelo seu endereço IP.<br />6. Se você tiver uma zona hospedada pública, faça o seguinte:Substitua `hosted_zone_name` pelo nome da sua zona hospedada.Defina `hosted_zone_enabled` como `true`.<br />Se você não tiver uma zona hospedada pública, faça o seguinte:Insira os seguintes comandos para gerar um certificado autoassinado:<pre>openssl genrsa 2048 > my-private-key.pem<br />openssl req -new -x509 -nodes -sha256 -days 365 -key my-private-key.pem -outform PEM -out my-certificate.pem</pre>Digite o seguinte comando para importar o certificado para o Gerenciador de certificados da AWS (ACM):<pre>aws acm import-certificate \<br />  --certificate fileb://my-certificate.pem \<br />  --private-key fileb://my-private-key.pem</pre><br />A saída desse comando inclui o nome do recurso da Amazon (ARN) do certificado importado.Substitua `self_signed_cert_arn` pelo ARN do seu certificado.Defina `hosted_zone_enabled` como `false`.<br />7. Mude `aws_region` para a região de destino. O padrão é `us-east-1`.<br />8. Salve e feche o arquivo `variables.tf`.Para ambientes de produção ou semelhantes aos de produção, configure componentes de segurança adicionais. Por exemplo, habilite [AWS WAF protections for your Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS geral, administrador da AWS | 
| Implantar a infraestrutura. | 1. Insira o seguinte comando para inicializar o Terraform:<pre>terraform init</pre><br />2. Insira o seguinte comando para gerar um plano de execução:<pre>terraform plan</pre><br />3. Revise o plano e valide os recursos e os componentes da infraestrutura que serão criados.<br />4. Insira o seguinte comando para implantar a infraestrutura:<pre>terraform apply</pre><br />5. Quando solicitado, insira **sim** para confirmar a implantação.<br />6. Espere até que a implantação seja concluída. | Terraform | 

### Instalar e configurar o Apache Tomcat na instância do Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o software necessário. | 1. Conecte-se à sua instância do Amazon EC2 usando [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-with-systems-manager-session-manager.html).<br />2. Insira o seguinte comando para alternar para o usuário-raiz:<pre>sudo su -</pre><br />3. Digite o comando a seguir para navegar para o diretório `scripts`:<pre>cd /opt/scripts</pre><br />4. Revise o script **install\_software.sh**. Esse script instala o Java 17, o Apache Maven e o Apache Tomcat 10.0.23.<br />5. Atualize os scripts conforme necessário para seu caso de uso.<br />6. Insira o seguinte comando para tornar o script executável:<pre>chmod +x install_software.sh</pre><br />7. Insira o seguinte comando para executar o script:<pre>./install_software.sh</pre> | Desenvolvedor de aplicativos, engenheiro de migração | 
| Verifique a instalação de softwares. | 1. Insira o seguinte comando para iniciar o servidor Tomcat:<pre>/opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh</pre><br />2. Insira o seguinte comando para verificar a resposta do servidor da web:<pre>curl http://localhost:8080</pre><br />A saída deve confirmar que o Tomcat está veiculando uma página HTML. | Desenvolvedor de aplicativos, engenheiro de migração | 

### Compilar e empacotar o código da aplicação modernizada
<a name="compile-and-package-the-modernized-application-code"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça o download e extraia o código gerado. | 1. Insira o comando a seguir para tornar o script **download\_and\_extract.sh** executável. Esse script baixa o código refatorado e a biblioteca de runtime do Gapwalk armazenados no bucket do Amazon S3:<pre>chmod +x /opt/scripts/download_and_extract.sh</pre><br />2. Insira o comando a seguir para executar o script . Substitua `<file_path>` pelo caminho para o arquivo generated.zip no bucket do Amazon S3:<pre>./download_and_extract.sh <file_path></pre>Normalmente, o caminho do arquivo é `s3://<bucket-name>/transform_output/<aws_transform_job_id>/codetransformation/generated.zip`.<br />3. Insira o seguinte comando para navegar até a pasta `shared`:<pre>cd /opt/runtime/velocity/shared</pre><br />4. Digite o comando a seguir para copiar o **deploy-velocity-runtimescript.sh**:<pre>cp /opt/scripts/deploy-velocity-runtime.sh .</pre><br />5. Insira o seguinte comando para tornar o script copiado executável:<pre>chmod +x deploy-velocity-runtime.sh</pre><br />6. Insira o comando a seguir para executar o script . Esse script copia todas as dependências necessárias do Web Application Archive (WAR) presentes nos arquivos do Project Object Model (POM) na pasta do repositório:<pre>./deploy-velocity-runtime.sh</pre><br />7. Verifique se a execução foi bem-sucedida verificando se não há erros e se as dependências WAR necessárias estão instaladas no seu repositório Maven local. | Desenvolvedor de aplicativos, engenheiro de migração | 
| Crie uma aplicação modernizada. | 1. Insira o seguinte comando para acessar o diretório do projeto `app-pom`:<pre>cd /opt/codebase/app-pom/</pre><br />2. Insira o seguinte comando para instalar o Maven:<pre>mvn clean install</pre><br />3. Aguarde até que a instalação e a compilação sejam concluídas.Ao executar esse comando para o CardDemo aplicativo, você pode encontrar mensagens de aviso para o `app-web` projeto. Você pode ignorar tranquilamente esses avisos.<br />4. Após a conclusão bem-sucedida da compilação, confirme a presença de `app-service/target/app-service-1.0.0.war` e `app-web/target/app-web-1.0.0.war`.Não reinicie o servidor Tomcat nesse estágio. Isso resultaria em erros devido à ausência dos bancos de dados necessários. Você deve configurar o banco de dados antes de reiniciar o servidor. | Desenvolvedor de aplicativos, engenheiro de migração | 

### Migrar o bancos de dados
<a name="migrate-the-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o banco de dados e os esquemas JICS. | 1. Insira o comando a seguir para renomear a pasta `csd commands` como `csd_commands`. Isso remove os espaços do nome da pasta:<pre>mv /opt/codebase/extra/csd\ commands/ /opt/codebase/extra/csd_commands</pre><br />2. Insira o seguinte comando para navegar até o diretório `scripts`:<pre>cd /opt/scripts</pre><br />3. Insira o seguinte comando para tornar o script de migração do banco de dados executável:<pre>chmod +x database_migration_setup.sh</pre><br />4. Insira os seguintes comandos para configurar as seguintes variáveis como parâmetros:<pre>RDS_ENDPOINT=<database_endpoint><br />SECRET_NAME=<secret_name><br />JICS_SQL_SCRIPT_DIR=/opt/runtime/velocity/jics/sql/jics.sql<br />INIT_JICS_SQL_SCRIPT_DIR=/opt/codebase/extra/csd_commands/sql/aws-mainframe-modernization-carddemo-main/app/csd/initJics.sql</pre><br />Em que:`<database_endpoint>` é o endpoint do banco de dados Amazon RDS que você implantou por meio do Terraform.`<secret_name>`é o nome do AWS Secrets Manager segredo que você implantou por meio do Terraform.<br />5. Insira o seguinte comando para executar o script de migração do banco de dados:<pre>./database_migration_setup.sh $RDS_ENDPOINT $SECRET_NAME $JICS_SQL_SCRIPT_DIR $INIT_JICS_SQL_SCRIPT_DIR</pre><br />6. Insira o seguinte comando para se conectar ao banco de dados pela instância do Amazon EC2:<pre>psql -h <Your Amazon RDS Endpoint> -U foo -p 5432 postgres</pre><br />7. Quando solicitado, insira as credenciais do seu banco de dados. | Desenvolvedor de aplicativos, engenheiro de migração | 
| Valide a criação de banco de dados. | 1. Insira o seguinte comando para exibir todos os bancos de dados:<pre>\l</pre><br />2. Insira o seguinte comando para alternar para o banco de dados `jics`:<pre>\c jics</pre><br />3. Insira o seguinte comando para analisar uma lista das tabelas criadas:<pre>\dt</pre> | Desenvolvedor de aplicativos, engenheiro de migração | 
| Migre dados para o banco de dados JICS. | 1. Insira o seguinte comando para tornar o script **execute\_listcat\_sql.sh** executável:<pre>chmod +x execute_listcat_sql.sh</pre><br />2. Insira o seguinte comando para configurar a variável `PATH_TO_LISTCAT_SQL_FILES`, que é o diretório que contém seus arquivos LISTCAT SQL:<pre>PATH_TO_LISTCAT_SQL_FILES=/opt/codebase/extra/listcat/sql/cluster/aws-mainframe-modernization-carddemo-main/app/catlg</pre><br />3. Certifique-se de que as variáveis `RDS_ENDPOINT`, `SECRET_NAME` e `PATH_TO_LISTCAT_SQL_FILES` estejam definidas corretamente de acordo com as instruções anteriores.<br />4. Insira o seguinte comando para executar o script **execute\_listcat\_sql.sh**:<pre>./execute_listcat_sql.sh $RDS_ENDPOINT $SECRET_NAME $PATH_TO_LISTCAT_SQL_FILES</pre><br />Esse script atualiza as propriedades do arquivo VSAM no banco de dados JICS e executa as consultas necessárias para modificar o banco de dados. | Desenvolvedor de aplicativos, engenheiro de migração | 

### Instalar a aplicação modernizada
<a name="install-the-modernized-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale a aplicação modernizada na instância do Amazon EC2. | 1. Insira o seguinte comando para tornar o script **application\_installer.sh** executável:<pre>chmod +x /opt/scripts/application_installer.sh</pre><br />2. Insira os seguintes comandos para configurar as seguintes variáveis como parâmetros:<pre>RDS_ENDPOINT=<database_endpoint><br />SECRET_NAME=<secret_name><br />AIX_JSON_FILE_PATH=/opt/codebase/extra/csd_commands/json/aws-mainframe-modernization-carddemo-main/jicsFileAix.json<br />LISTCAT_JSON_FILES_DIR=/opt/codebase/extra/listcat/json/cluster/default/aws-mainframe-modernization-carddemo-main/app/catlg<br />S3_PATH_FOR_EBCDIC_DATA_FILES=s3://<bucket_name>/transform-output/<job_id>/inputs/aws-mainframe-modernization-carddemo-main/app/data/EBCDIC</pre><br />Em que:`<database_endpoint>` é o endpoint do banco de dados Amazon RDS que você implantou por meio do Terraform.`<secret_name>`é o nome do AWS Secrets Manager segredo que você implantou por meio do Terraform.`<bucket_name>` é o nome do bucket do Amazon S3 que contém a aplicação modernizada.`<job_id>`é a ID do AWS Transform trabalho.<br />3. Insira o seguinte comando para executar o script **application\_installer.sh**:<pre>./application_installer.sh $RDS_ENDPOINT $SECRET_NAME $AIX_JSON_FILE_PATH $LISTCAT_JSON_FILES_DIR $S3_PATH_FOR_EBCDIC_DATA_FILES</pre><br />4. Na `/opt/tomcat/apache-tomcat-10.0.23/workingdir/config` pasta, no **application-utility-pgmarquivo.yml**, altere o parâmetro de codificação para o seguinte:<pre>encoding : CP1047</pre>Ao refatorar aplicativos AWS Transform automaticamente usando o [AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), você configura o aplicativo e seu ambiente de execução por meio de arquivos YAML. Por exemplo, você pode configurar o registro em log no arquivo **application-main.yml** da aplicação. Para obter mais informações sobre as propriedades disponíveis, consulte [Habilitar propriedades para o AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-key-value.html). | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Reinicie o servidor Tomcat. | 1. Insira o seguinte comando para navegar até o diretório de trabalho:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/workingdir</pre><br />2. Insira os seguintes comandos para interromper e iniciar o servidor Tomcat:<pre>/opt/tomcat/apache-tomcat-10.0.23/bin/shutdown.sh<br />/opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh</pre><br />3. Insira o seguinte comando para monitorar os logs de startup do servidor Tomcat:<pre>tail -f /opt/tomcat/apache-tomcat-10.0.23/logs/catalina.out</pre> | Desenvolvedor de aplicativos, arquiteto de nuvem | 
| Migre o conjunto de dados do VSAM. | 1. Abra o [console do Amazon EC2](https://console.aws.amazon.com/ec2/).<br />2. No painel de navegação, escolha **Load balancers**.<br />3. Escolha o balanceador de carga que foi criado por meio do Terraform.<br />4. Localize o nome do Sistema de Nomes de Domínio (DNS) do Application Load Balancer, como `application-load-balancer-<id>.<region>.elb.amazonaws.com`.<br />5. No seu navegador, navegue até `http://<dns_name>/gapwalk-application/scripts/data-load`, onde `<dns_name>` é o nome do DSN do Application Load Balancer. Isso inicia o script de carregamento de dados.<br />6. Aguarde a conclusão do script. Quando terminar, o navegador exibirá **DONE**.<br />7. Na instância do Amazon EC2, abra um novo terminal.<br />8. Insira o seguinte comando para se conectar ao banco de dados do Amazon RDS, substituindo `<database_endpoint>` pelo seu valor:<pre>psql -h <database_endpoint> -U foo -p 5432 postgres</pre><br />9. Quando for solicitado, insira as credenciais para se conectar ao banco de dados.<br />10. Insira o seguinte comando para exibir todos os bancos de dados:<pre>\l</pre><br />11. Insira o seguinte comando para alternar para o banco de dados `bluesam`:<pre>\c bluesam</pre><br />12. Insira o seguinte comando para analisar uma lista das tabelas criadas:<pre>\dt</pre><br />13. Insira o seguinte comando para validar o carregamento dos dados:<pre>SELECT * FROM public.aws_m2_carddemo_usrsec_vsam_ksds;</pre><br />A saída deve mostrar dez registros retornados. | Desenvolvedor de aplicativos, engenheiro de migração | 
| Atualize os parâmetros nos scripts do Groovy. | 1. Insira o seguinte comando para navegar até o diretório de scripts:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/webapps/workingdir/scripts</pre><br />2. Em todos os arquivos do Groovy que contêm referência a arquivos simples, atualize as seguintes configurações de arquivo:**Caminho do arquivo local**: o caminho para o arquivo simples no diretório local da sua instância do Amazon EC2**Tipo de sistema de arquivos**: o sistema de arquivos que contém os arquivos simples**Tamanho do registro**: o tamanho do arquivo simples<br />Para referência, consulte o exemplo do script [DUSRSECJ.jcl.groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy) no repositório de código.<br />3. Salve e feche os arquivos. | Desenvolvedor de aplicativos | 

### Teste a aplicação
<a name="test-the-application"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste a aplicação modernizada. | 1. Acesse a aplicação on-line por meio do Application Load Balancer (`http://<your-load-balancer-dns>`) ou da zona hospedada (`https://myhostedzone.dev/`).<br />2. Para o ID da transação, insira `CC00`.<br />3. Para o nome do usuário, insira `USER0001`.<br />4. Para a senha, insira `PASSWORD`.<br />Após o login bem-sucedido, o menu principal é exibido. | Desenvolvedor de aplicativos, engenheiro de testes | 
| Verifique os scripts em lote. | 1. Acesse a interface de scripts por meio do Application Load Balancer (`http://<your-load-balancer-dns>/gapwalk-application/scripts`) ou da zona hospedada (`https://myhostedzone.dev/gapwalk-application/scripts`).<br />2. Escolha um script para ser executado, como o script [DUSRSECJ.jcl.groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy).<br />3. Verifique se o script foi executado com êxito Este é um exemplo de saída após uma execução bem-sucedida.<pre>{ "exitCode": 0, "stepName": "STEP03", "program": "IDCAMS", "status": "Succeeded" }</pre> | Desenvolvedor de aplicativos, engenheiro de testes | 

### Limpeza
<a name="clean-up"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar para excluir a infraestrutura. | 1. Insira o seguinte comando para remover a proteção contra exclusão da instância do Amazon RDS:<pre>aws rds modify-db-instance \<br />  --db-instance-identifier <your-db-instance-name> \<br />  --no-deletion-protection \<br />  --apply-immediately</pre><br />2. Insira o seguinte comando para remover a proteção contra exclusão do Application Load Balancer:<pre>aws elbv2 modify-load-balancer-attributes \<br />  --load-balancer-arn <your-load-balancer-arn> \<br />  --attributes Key=deletion_protection.enabled,Value=false</pre><br />3. Insira os seguintes comandos para excluir o conteúdo dos buckets do Amazon S3:<pre>ACCOUNT_NUMBER=$(aws sts get-caller-identity --query Account --output text)<br />aws s3 rm s3://mf-carddemo-$ACCOUNT_NUMBER --recursive<br />aws s3 rm s3://mf-carddemo-logs-$ACCOUNT_NUMBER --recursive</pre> | AWS geral | 
| Exclua a infraestrutura. | Essas etapas excluirão permanentemente seus recursos. Certifique-se de ter feito backup de todos os dados importantes antes de continuar.1. Insira o seguinte comando para navegar até a pasta `infra`:<pre>cd /mainframe-transformation-e2e/infra</pre><br />2. Insira o seguinte comando para excluir a infraestrutura:<pre>terraform destroy --auto-approve    </pre> | AWS geral | 

## Solução de problemas
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Autenticação do Terraform | 1. Certifique-se de que as AWS credenciais estejam configuradas corretamente.<br />2. Verifique se você selecionou o AWS perfil correto.<br />3. Confirem se você tem as permissões necessárias. | 
| Erros relacionados ao Tomcat | 1. Verifique se há exceções em **catalina.out** em `/opt/tomcat/apache-tomcat-10.0.23/logs`.<br />2. Insira o seguinte comando para alterar a propriedade da pasta Tomcat para o usuário Tomcat:<pre>chown -R tomcat:tomcat /opt/tomcat/*</pre> | 
| O nome do URL não está carregando | Certifique-se de que o grupo de segurança do Application Load Balancer tenha seu endereço IP na regra de entrada como fonte. | 
| Problema de autenticação no log do Tomcat | Confirme se a senha secreta do banco de dados AWS Secrets Manager e a senha em **server.xml** coincidem. | 

## Recursos relacionados
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Orientação prescritiva**
+ [Modernize o aplicativo de CardDemo mainframe usando o AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentação de serviço**
+ [AWS Console de administração Blusam Blue Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisitos de configuração de infraestrutura para o AWS Blu Age Runtime (não gerenciado)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Integração do AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernização de aplicativos de mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configurar o AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS postagens no blog**
+ [Acelere sua jornada de modernização do mainframe usando agentes de IA com AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)