

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Modernice e implemente aplicaciones de mainframe con Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

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

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

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)puede acelerar la modernización a gran escala de .NET, el mainframe y las cargas VMware de trabajo. Implementa agentes de IA especializados que automatizan las tareas complejas como las evaluaciones, el análisis de código, la refactorización, la descomposición, la asignación de dependencias, la validación y la planificación de la transformación. [Este patrón demuestra cómo AWS Transform modernizar una aplicación de mainframe y luego implementarla en la AWS infraestructura mediante Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) Estas step-by-step instrucciones le ayudan a pasar de COBOL a una aplicación Java moderna [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), que es un ejemplo de aplicación de mainframe de código abierto.

## Requisitos previos y limitaciones
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Permisos administrativos para crear AWS recursos e implementar aplicaciones
+ La versión 1.5.7 o posterior de Terraform [configurada](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Proveedor de Terraform, configurado](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center[, activado](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)
+ Un usuario [incorporado a un](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) espacio de AWS Transform trabajo con un rol de colaborador que puede ejecutar tareas de transformación

**Limitaciones**
+ AWS Transform solo está disponible en algunos. Regiones de AWS Para obtener la lista completa de regiones admitidas, consulte [Supported Regions for AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Hay una cuota de servicio para las capacidades de transformación del mainframe en AWS Transform. Para obtener más información, consulte [Cuotas para AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Para colaborar en un espacio de trabajo compartido, todos los usuarios deben ser usuarios registrados de la misma instancia AWS IAM Identity Center que esté asociada a tu instancia de la aplicación AWS Transform web.
+ El bucket de Amazon Simple Storage Service (Amazon S3) debe estar en la Cuenta de AWS misma región AWS Transform y.

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

El siguiente diagrama muestra la end-to-end modernización de la aplicación antigua y su implementación en Nube de AWS. Las credenciales de la aplicación y la base de datos se almacenan en AWS Secrets Manager, y Amazon CloudWatch proporciona capacidades de monitoreo y registro.

![AWS Transform moderniza una aplicación de mainframe y la implementación mediante Terraform.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. A través de él AWS IAM Identity Center, el usuario se autentica y accede al AWS Transform . Cuenta de AWS

1. El usuario carga el código de mainframe COBOL en el bucket de Amazon S3 e inicia la transformación en AWS Transform.

1. AWS Transform moderniza el código COBOL para convertirlo en código Java nativo de la nube y almacena el código modernizado en el bucket de Amazon S3.

1. Terraform crea la AWS infraestructura para implementar la aplicación modernizada, que incluye un Application Load Balancer, una instancia de Amazon Elastic Compute Cloud (Amazon EC2) y una base de datos del Amazon Relational Database Service (Amazon RDS). Terraform implementa el código modernizado en la instancia de Amazon EC2.

1. Los archivos VSAM se cargan en Amazon EC2 y se migran de Amazon EC2 a la base de datos de Amazon RDS.

## Tools (Herramientas)
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**Servicios de AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) brinda capacidad de computación escalable en la Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez. En este patrón, las instancias de clúster de conmutación por error de SQL Server se instalan en las instancias de Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a sus aplicaciones y a las de la nube. Cuentas de AWS 
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) lo ayuda a configurar, utilizar y escalar una base de datos relacional en la Nube de AWS.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)utiliza la IA agentic para ayudarlo a acelerar la modernización de las cargas de trabajo antiguas, como .NET, los mainframes y las cargas de trabajo. VMware 

**Otras herramientas**
+ [Apache Maven](https://maven.apache.org/) es una herramienta de automatización de compilaciones y administración de proyectos de software de código abierto para proyectos de Java.
+ [Apache Tomcat](https://tomcat.apache.org/) es un contenedor de servlets de código abierto y un servidor web para el código Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) es una herramienta de infraestructura como código (IaC) que facilita usar el código para aprovisionar y administrar los recursos y la infraestructura en la nube.
+ [Spring Boot](https://spring.io/projects/spring-boot) es un marco de código abierto que se creó sobre Spring Boot Framework en Java.

**Repositorio de código**

[El código de este patrón está disponible en el repositorio E2E de Mainframe Transformation GitHub .](https://github.com/aws-samples/sample-mainframe-transformation-e2e) Este patrón utiliza la aplicación de AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe de código abierto como aplicación de ejemplo.

## Prácticas recomendadas
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Asigne la propiedad total del código y los recursos destinados a la migración.
+ Desarrolle y pruebe una prueba de concepto antes de escalar a una migración completa.
+ Garantice la implicación de todas las partes interesadas.
+ Establezca canales de comunicación claros.
+ Defina y documente los requisitos para un producto mínimo viable (MVP).
+ Establezca criterios de éxito claros.

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

### Preparación y carga del código de la aplicación del mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un bucket. | Cree un bucket de Amazon S3 en la misma Cuenta de AWS región en la que AWS Transform está activado. Este depósito se utiliza para almacenar el código de la aplicación del mainframe, los datos y los scripts adicionales necesarios para crear y ejecutar la aplicación. AWS Transform utiliza este depósito para almacenar el código refactorizado y otros archivos asociados a la transformación. Para obtener instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la documentación de Amazon S3. | AWS general, administrador de AWS | 
| Configure los permisos de CORS para el bucket. | Al configurar su depósito para el AWS Transform acceso, debe configurar el uso compartido de recursos de origen cruzado (CORS) para el depósito. Si no se ha configurado correctamente, es posible que no pueda utilizar las funciones de visualización en línea o de comparación de archivos de AWS Transform. Para obtener instrucciones sobre cómo configurar CORS para un bucket, consulte [Uso compartido de recursos entre orígenes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) en el bucket de Amazon S3. Para conocer la política, consulta los [permisos CORS del bucket de S3](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) en la documentación. AWS Transform  | AWS general, administrador de AWS | 
| Prepare el código de la aplicación del mainframe de ejemplo. | 1. Introduzca el siguiente comando para clonar el [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)repositorio en su estación de trabajo local:<pre>git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git</pre><br />2. Comprima la carpeta `aws-mainframe-modernization-carddemo` en un archivo ZIP.<br />3. Cargue el archivo ZIP en el bucket de Amazon S3 que creó. Para más instrucciones, consulte [Cargar objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la documentación de Amazon S3. | AWS general, desarrollador de aplicaciones | 

### Transformación de la aplicación del mainframe
<a name="transform-the-mainframe-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure el AWS Transform trabajo. | 1. Acceda a la aplicación AWS Transform web iniciando sesión con sus credenciales.<br />2. Cree un nuevo espacio de trabajo siguiendo las instrucciones que se indican en la AWS Transform documentación sobre cómo [configurar su espacio](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-admin-workspace-setup.html) de trabajo.<br />3. En la página de inicio de tu espacio de trabajo, selecciona ** AWS Transform Solicitar la creación de un trabajo**.<br />4. A continuación, seleccione **Modernización del mainframe** como tipo de trabajo.<br />5. En la ventana de chat, introduzca **Transformar código en Java**.<br />6. Revise el tipo de trabajo, el nombre y el objetivo sugeridos. Para confirmarlo, introduzca **Sí**.<br />7. Seleccione **Crear tarea**.   | Desarrollador de aplicaciones, propietario de la aplicación | 
| Configure un conector. | 1. Configure un conector con el bucket de Amazon S3 que creó. Para obtener instrucciones, consulta [Cómo configurar un conector](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) en la AWS Transform documentación. Cuando se le solicite, escriba la ruta del archivo zip `aws-mainframe-modernization-carddemo` en el bucket de Amazon S3.<br />2. Espere a que el análisis finalice. | Desarrollador de aplicaciones, propietario de la aplicación | 
| Transforme el código. | 1. Revise los resultados del análisis del código según las instrucciones de la AWS Transform documentación sobre cómo [analizar el código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis).<br />2. Refactoriza el código del mainframe según las instrucciones de [Refactorización del código](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code) de la documentación. AWS Transform Para la aplicación de CardDemo mainframe de ejemplo, puede aceptar la configuración predeterminada.<br />3. Espere a que finalice la refactorización.<br />4. Seleccione **Ver resultados** para ver la ruta del código refactorizado en el bucket de Amazon S3. Tome nota de esta ruta de archivo. La necesitará más adelante. | Desarrollador de aplicaciones, propietario de la aplicación | 

### Implementación de la infraestructura mediante Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Actualice las plantillas. | 1. Introduzca el siguiente comando para clonar el repositorio [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e) en la estación de trabajo local:<pre>git clone https://github.com/aws-samples/sample-mainframe-transformation-e2e.git</pre><br />2. Introduzca el comando siguiente para obtener la dirección IP pública actual:<pre>curl checkip.amazonaws.com</pre><br />3. Escriba el siguiente comando para navegar al directorio infra:<pre>cd mainframe-transformation-e2e/infra</pre><br />4. Abra el archivo `variables.tf`.<br />5. Reemplace `YOUR_IP_ADDRESS_HERE` por su dirección IP.<br />6. Si tiene una zona alojada pública, siga estos pasos:Sustituya `hosted_zone_name` por el nombre de la zona alojada.Establece `hosted_zone_enabled` en `true`.<br />Si no tiene una zona alojada pública, siga estos pasos:Introduzca los siguientes comandos para generar un certificado autofirmado:<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>Introduzca el siguiente comando para importar el certificado a AWS Certificate Manager (ACM):<pre>aws acm import-certificate \<br />  --certificate fileb://my-certificate.pem \<br />  --private-key fileb://my-private-key.pem</pre><br />El resultado de este comando incluye el nombre de recurso de Amazon (ARN) del certificado importado.Reemplace `self_signed_cert_arn` por el ARN del certificado.Establece `hosted_zone_enabled` en `false`.<br />7. Cambie `aws_region` por la región de destino. El valor predeterminado es `us-east-1`.<br />8. Guarde y cierre el archivo `variables.tf`.En el caso de los entornos de producción o similares a los de producción, configure componentes de seguridad adicionales. Por ejemplo, habilite las [protecciones de AWS WAF para el equilibrador de carga de aplicación](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS general, administrador de AWS | 
| Implemente la infraestructura. | 1. Introduzca el comando siguiente para inicializar Terraform:<pre>terraform init</pre><br />2. Introduzca el comando siguiente para generar un plan de ejecución:<pre>terraform plan</pre><br />3. Revise el plan y valide los recursos y los componentes de infraestructura que se van a crear.<br />4. Introduzca el siguiente comando para implementar la infraestructura:<pre>terraform apply</pre><br />5. Cuando se le solicite, introduzca **sí** para confirmar la implementación.<br />6. Espere hasta que se complete la implementación. | Terraform | 

### Instalación y configuración de Apache Tomcat en la instancia de Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale el software necesario. | 1. Conéctese a la instancia de Amazon EC2 mediante [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-with-systems-manager-session-manager.html).<br />2. Ingrese el comando siguiente para cambiar al usuario raíz:<pre>sudo su -</pre><br />3. Escriba el siguiente comando para navegar al directorio `scripts`:<pre>cd /opt/scripts</pre><br />4. Revise el script **install\_software.sh**. Este script instala Java 17, Apache Maven y Apache Tomcat 10.0.23.<br />5. Actualice los scripts según sea necesario para su caso de uso.<br />6. Introduzca el siguiente comando para convertir el script en ejecutable:<pre>chmod +x install_software.sh</pre><br />7. Introduzca el siguiente comando para ejecutar el script:<pre>./install_software.sh</pre> | Desarrollador de aplicación, ingeniero de migraciones | 
| Verifique la instalación del software. | 1. Introduzca el siguiente comando para iniciar el servidor de Tomcat:<pre>/opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh</pre><br />2. Introduzca el siguiente comando para verificar la respuesta del servidor web:<pre>curl http://localhost:8080</pre><br />La salida debe confirmar que Tomcat atiende una página HTML. | Desarrollador de aplicación, ingeniero de migraciones | 

### Compilación y empaquetado del código de la aplicación modernizada
<a name="compile-and-package-the-modernized-application-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargue y extraiga el código generado. | 1. Introduzca el siguiente comando para convertir el script **download\_and\_extract.sh** en ejecutable. Este script descarga el código refactorizado y la biblioteca de tiempo de ejecución de Gapwalk almacenados en el bucket de Amazon S3:<pre>chmod +x /opt/scripts/download_and_extract.sh</pre><br />2. Ingrese el comando siguiente para ejecutar el script . Sustituya `<file_path>` por la ruta del archivo generated.zip en el bucket de Amazon S3:<pre>./download_and_extract.sh <file_path></pre>La ruta del archivo suele ser `s3://<bucket-name>/transform_output/<aws_transform_job_id>/codetransformation/generated.zip`.<br />3. Introduzca el siguiente comando para ir a la carpeta `shared`:<pre>cd /opt/runtime/velocity/shared</pre><br />4. Introduzca el siguiente comando para copiar el script **deploy-velocity-runtime.sh**:<pre>cp /opt/scripts/deploy-velocity-runtime.sh .</pre><br />5. Introduzca el siguiente comando para convertir el script copiado en ejecutable:<pre>chmod +x deploy-velocity-runtime.sh</pre><br />6. Ingrese el comando siguiente para ejecutar el script . Este script copia todas las dependencias del archivo de aplicaciones web (WAR) necesarias presentes en los archivos del modelo de objetos del proyecto (POM) en la carpeta del repositorio:<pre>./deploy-velocity-runtime.sh</pre><br />7. Verifique que la ejecución se haya realizado correctamente: compruebe que no haya errores y que las dependencias de WAR necesarias se hayan instalado en el repositorio local de Maven. | Desarrollador de aplicación, ingeniero de migraciones | 
| Compile la aplicación modernizada. | 1. Introduzca el siguiente comando para navegar al directorio del proyecto `app-pom`:<pre>cd /opt/codebase/app-pom/</pre><br />2. Introduzca el siguiente comando para instalar Maven:<pre>mvn clean install</pre><br />3. Espere a que se completen la instalación y la compilación.Al ejecutar este comando para la CardDemo aplicación, es posible que aparezcan mensajes de advertencia para el `app-web` proyecto. Puede obviar estas advertencias transquilamente.<br />4. Tras completar correctamente la compilación, confirme la presencia de `app-service/target/app-service-1.0.0.war` y `app-web/target/app-web-1.0.0.war`.No reinicie el servidor de Tomcat en este momento. Se producirían errores debido a la ausencia de las bases de datos necesarias. Para poder reiniciar el servidor, primero debe configurar la base de datos. | Desarrollador de aplicación, ingeniero de migraciones | 

### Migración de la base de datos
<a name="migrate-the-database"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree la base de datos y los esquemas JICS. | 1. Introduzca el siguiente comando para cambiar el nombre de la carpeta `csd commands` por `csd_commands`. Esto eliminará los espacios del nombre de la carpeta:<pre>mv /opt/codebase/extra/csd\ commands/ /opt/codebase/extra/csd_commands</pre><br />2. Introduzca el siguiente comando para ir al directorio `scripts`:<pre>cd /opt/scripts</pre><br />3. Introduzca el siguiente comando para convertir el script de migración de la base de datos en ejecutable:<pre>chmod +x database_migration_setup.sh</pre><br />4. Introduzca los siguientes comandos para configurar las siguientes variables 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 />Donde:`<database_endpoint>` es el punto de conexión de la base de datos de Amazon RDS que implementó a través de Terraform.`<secret_name>`es el nombre del AWS Secrets Manager secreto que desplegaste a través de Terraform.<br />5. Introduzca el siguiente comando para ejecutar el script de migración de la base de datos:<pre>./database_migration_setup.sh $RDS_ENDPOINT $SECRET_NAME $JICS_SQL_SCRIPT_DIR $INIT_JICS_SQL_SCRIPT_DIR</pre><br />6. Introduzca el siguiente comando para conectarse a la base de datos desde la instancia de Amazon EC2:<pre>psql -h <Your Amazon RDS Endpoint> -U foo -p 5432 postgres</pre><br />7. Cuando se le solicite, introduzca las credenciales de la base de datos. | Desarrollador de aplicación, ingeniero de migraciones | 
| Valide la creación de la base de datos. | 1. Introduzca el siguiente comando para ver todas las bases de datos:<pre>\l</pre><br />2. Introduzca el siguiente comando para cambiar a la base de datos `jics`:<pre>\c jics</pre><br />3. Introduzca el siguiente comando para revisar una lista de las tablas creadas:<pre>\dt</pre> | Desarrollador de aplicación, ingeniero de migraciones | 
| Migre los datos a la base de datos de JICS. | 1. Introduzca el siguiente comando para convertir el script **execute\_listcat\_sql.sh** en ejecutable:<pre>chmod +x execute_listcat_sql.sh</pre><br />2. Introduzca el siguiente comando para configurar la variable `PATH_TO_LISTCAT_SQL_FILES`, que es el directorio que contiene los archivos SQL de LISTCAT:<pre>PATH_TO_LISTCAT_SQL_FILES=/opt/codebase/extra/listcat/sql/cluster/aws-mainframe-modernization-carddemo-main/app/catlg</pre><br />3. Asegúrese de que las variables `RDS_ENDPOINT`, `SECRET_NAME` y `PATH_TO_LISTCAT_SQL_FILES` estén configuradas correctamente de acuerdo con las instrucciones anteriores.<br />4. Introduzca el siguiente comando para ejecutar el script **execute\_listcat\_sql.sh**:<pre>./execute_listcat_sql.sh $RDS_ENDPOINT $SECRET_NAME $PATH_TO_LISTCAT_SQL_FILES</pre><br />Este script actualiza las propiedades del archivo VSAM en la base de datos de JICS y ejecuta las consultas necesarias para modificar la base de datos. | Desarrollador de aplicación, ingeniero de migraciones | 

### Instalación de la aplicación modernizada
<a name="install-the-modernized-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la aplicación modernizada en la instancia de Amazon EC2. | 1. Introduzca el siguiente comando para convertir el script **application\_installer.sh** en ejecutable:<pre>chmod +x /opt/scripts/application_installer.sh</pre><br />2. Introduzca los siguientes comandos para configurar las siguientes variables 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 />Donde:`<database_endpoint>` es el punto de conexión de la base de datos de Amazon RDS que implementó a través de Terraform.`<secret_name>`es el nombre del AWS Secrets Manager secreto que desplegaste a través de Terraform.`<bucket_name>` es el nombre del bucket de Amazon S3 que contiene la aplicación modernizada.`<job_id>`es el identificador del AWS Transform trabajo.<br />3. Introduzca el siguiente comando para ejecutar el 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. En la `/opt/tomcat/apache-tomcat-10.0.23/workingdir/config` carpeta, en el **application-utility-pgmarchivo.yml**, cambie el parámetro de codificación por el siguiente:<pre>encoding : CP1047</pre>Al refactorizar las aplicaciones AWS Transform automáticamente mediante [AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), se configura la aplicación y su entorno de ejecución mediante archivos YAML. Por ejemplo, puede configurar el registro en el archivo **application-main.yml** correspondiente a la aplicación. Para obtener más información sobre las propiedades disponibles, consulte [Habilitar propiedades para AWS Blu Age Runtime.](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-key-value.html) | Desarrollador de aplicaciones, arquitecto de la nube | 
| Reinicie el servidor de Tomcat. | 1. Introduzca el siguiente comando para ir al directorio de trabajo:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/workingdir</pre><br />2. Introduzca los siguientes comandos para detener e iniciar el servidor de 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. Introduzca el siguiente comando para supervisar los registros de arranque del servicio de Tomcat:<pre>tail -f /opt/tomcat/apache-tomcat-10.0.23/logs/catalina.out</pre> | Desarrollador de aplicaciones, arquitecto de la nube | 
| Migre el conjunto de datos de VSAM. | 1. Abra la [consola de Amazon EC2](https://console.aws.amazon.com/ec2/).<br />2. En el panel de navegación, elija **Load balancers (Balanceadores de carga)**.<br />3. Seleccione el equilibrador de carga que se creó a través de Terraform.<br />4. Busque el nombre del sistema de nombres de dominio (DNS) del equilibrador de carga de aplicación, como `application-load-balancer-<id>.<region>.elb.amazonaws.com`.<br />5. En el navegador, navegue hasta `http://<dns_name>/gapwalk-application/scripts/data-load`, donde `<dns_name>` es el nombre de DNS del equilibrador de carga de aplicación. Esto inicia el script de carga de datos.<br />6. Espere a que el script finalice. Cuando termine, el navegador mostrará **LISTO**.<br />7. En la instancia de Amazon EC2, abra un nuevo terminal.<br />8. Introduzca el siguiente comando para conectarse a la base de datos de Amazon RDS y sustituya `<database_endpoint>` por su valor:<pre>psql -h <database_endpoint> -U foo -p 5432 postgres</pre><br />9. Cuando se le solicite, escriba las credenciales para conectarse a la base de datos.<br />10. Introduzca el siguiente comando para ver todas las bases de datos:<pre>\l</pre><br />11. Introduzca el siguiente comando para cambiar a la base de datos `bluesam`:<pre>\c bluesam</pre><br />12. Introduzca el siguiente comando para revisar una lista de las tablas creadas:<pre>\dt</pre><br />13. Introduzca el siguiente comando para validar la carga de datos:<pre>SELECT * FROM public.aws_m2_carddemo_usrsec_vsam_ksds;</pre><br />La salida debe mostrar 10 registros devueltos. | Desarrollador de aplicación, ingeniero de migraciones | 
| Actualice los parámetros en los scripts de Groovy. | 1. Introduzca el siguiente comando para ir al directorio del script:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/webapps/workingdir/scripts</pre><br />2. En todos los archivos de Groovy que contengan referencias a archivos planos, actualice las siguientes configuraciones de archivos:**Ruta del archivo local**: la ruta al archivo plano del directorio local de la instancia de Amazon EC2.**Tipo de sistema de archivos**: el sistema de archivos que contiene los archivos planos.**Tamaño de registro**: el tamaño del archivo plano.<br />Como referencia, consulte el script de ejemplo [DUSRSECJ.jcl.groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy) en el repositorio de código.<br />3. Guardar y cerrar los archivos. | Desarrollador de aplicaciones | 

### Pruebe la aplicación
<a name="test-the-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pruebe la aplicación modernizada. | 1. Acceda a la aplicación en línea a través del equilibrador de carga de aplicación (`http://<your-load-balancer-dns>`) o a través de la zona alojada (`https://myhostedzone.dev/`).<br />2. Para el ID de transacción, introduzca `CC00`.<br />3. Para el nombre de usuario, introduzca `USER0001`.<br />4. Para la contraseña, introduzca `PASSWORD`.<br />Tras iniciar sesión correctamente, aparece el menú principal. | Desarrollador, ingeniero de pruebas | 
| Compruebe los scripts del lote. | 1. Acceda a los scripts a través del equilibrador de carga de aplicación (`http://<your-load-balancer-dns>/gapwalk-application/scripts`) o a través de la zona alojada (`https://myhostedzone.dev/gapwalk-application/scripts`).<br />2. Elija un script para ejecutarlo, como el script [DUSRSECJ.jcl.groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy).<br />3. Compruebe que el script se ejecute correctamente. A continuación, se presenta una salida de muestra tras ejecutar el script correctamente.<pre>{ "exitCode": 0, "stepName": "STEP03", "program": "IDCAMS", "status": "Succeeded" }</pre> | Desarrollador, ingeniero de pruebas | 

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


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Prepárese para eliminar la infraestructura. | 1. Introduzca el siguiente comando para eliminar la protección de eliminación de la instancia de 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. Introduzca el siguiente comando para eliminar la protección de eliminación del equilibrador de carga de aplicación:<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. Introduzca los siguientes comandos para eliminar el contenido de los buckets de 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 general | 
| Configurar la infraestructura. | Estos pasos eliminarán sus recursos de forma permanente. Asegúrese de haber realizado una copia de seguridad de todos los datos importantes antes de continuar.1. Introduzca el siguiente comando para ir a la carpeta `infra`:<pre>cd /mainframe-transformation-e2e/infra</pre><br />2. Introduzca el siguiente comando para eliminar la infraestructura:<pre>terraform destroy --auto-approve    </pre> | AWS general | 

## Resolución de problemas
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Autenticación de Terraform | 1. Asegúrese de que las AWS credenciales estén configuradas correctamente.<br />2. Compruebe que ha seleccionado el AWS perfil correcto.<br />3. Confirme que tenga los permisos necesarios. | 
| Errores relacionados con Tomcat | 1. Consulte **catalina.out** en `/opt/tomcat/apache-tomcat-10.0.23/logs` para ver si hay alguna excepción.<br />2. Introduzca el siguiente comando para cambiar la propiedad de la carpeta de Tomcat al usuario de Tomcat:<pre>chown -R tomcat:tomcat /opt/tomcat/*</pre> | 
| El nombre de la URL no se carga | Asegúrese de que el grupo de seguridad del equilibrador de carga de aplicación tenga su dirección IP en la regla de entrada como origen. | 
| Problema de autenticación en el registro de Tomcat | Confirme que la contraseña secreta de la base de datos AWS Secrets Manager y la contraseña del **archivo server.xml** coinciden. | 

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

**AWS Guía prescriptiva**
+ [Modernice la aplicación de CardDemo mainframe con AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS documentación de servicio**
+ [AWS Consola de administración de Blue Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Requisitos de configuración de la infraestructura para AWS Blu Age Runtime (no gestionada)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Incorporación de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernización de las aplicaciones de mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Configure la configuración de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS publicaciones de blog**
+ [Acelere su proceso de modernización del mainframe con agentes de IA con AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)