

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memodernisasi dan menyebarkan aplikasi mainframe menggunakan dan Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Ramani Sivasubrama, dan Santosh Kumar Singh, Amazon Web Services*

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

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)dapat mempercepat modernisasi skala besar .NET, mainframe, dan beban kerja. VMware Ini menyebarkan agen AI khusus yang mengotomatiskan tugas-tugas kompleks seperti penilaian, analisis kode, refactoring, dekomposisi, pemetaan ketergantungan, validasi, dan perencanaan transformasi. [Pola ini menunjukkan cara menggunakan AWS Transform untuk memodernisasi aplikasi mainframe dan kemudian menerapkannya ke AWS infrastruktur dengan menggunakan Hashicorp Terraform.](https://developer.hashicorp.com/terraform/intro) step-by-stepInstruksi ini membantu Anda mengubah [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), yang merupakan contoh aplikasi mainframe open source, dari COBOL ke aplikasi Java modern.

## Prasyarat dan batasan
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Izin administratif untuk membuat AWS sumber daya dan menyebarkan aplikasi
+ [Terraform versi 1.5.7 atau lebih tinggi, dikonfigurasi](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Penyedia untuk Terraform, dikonfigurasi](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center, [diaktifkan](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [diaktifkan](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Pengguna, yang [terhubung ke AWS Transform ruang](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) kerja dengan peran kontributor yang dapat menjalankan pekerjaan transformasi

**Batasan**
+ AWS Transform hanya tersedia di beberapa Wilayah AWS. Untuk daftar lengkap Wilayah yang didukung, lihat Wilayah yang [Didukung untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Ada kuota layanan untuk kapabilitas transformasi mainframe di. AWS Transform Untuk informasi lebih lanjut, lihat [Kuota untuk AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Untuk berkolaborasi di ruang kerja bersama, semua pengguna harus menjadi pengguna terdaftar dari contoh yang sama AWS IAM Identity Center yang terkait dengan instance AWS Transform aplikasi web Anda.
+ Bucket Amazon Simple Storage Service (Amazon S3) AWS Transform dan harus berada di tempat yang sama dan Wilayah. Akun AWS 

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

Diagram berikut menunjukkan end-to-end modernisasi aplikasi warisan dan penyebaran ke. AWS Cloud Kredensi aplikasi dan database disimpan AWS Secrets Manager, dan Amazon CloudWatch menyediakan kemampuan pemantauan dan pencatatan.

![AWS Transform memodernisasi aplikasi mainframe dan penerapan melalui Terraform.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Diagram menunjukkan alur kerja berikut:

1. Melalui AWS IAM Identity Center, pengguna mengautentikasi dan mengakses AWS Transform di. Akun AWS

1. Pengguna mengunggah kode mainframe COBOL ke bucket Amazon S3 dan memulai transformasi di. AWS Transform

1. AWS Transform memodernisasi kode COBOL menjadi kode Java cloud-native dan menyimpan kode modern di bucket Amazon S3.

1. Terraform membuat AWS infrastruktur untuk menerapkan aplikasi modern, termasuk Application Load Balancer, instans Amazon Elastic Compute Cloud (Amazon EC2), dan database Amazon Relational Database Service (Amazon RDS). Terraform menerapkan kode modern ke instans Amazon EC2.

1. File VSAM diunggah ke Amazon EC2 dan dimigrasikan dari Amazon EC2 ke database Amazon RDS.

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

**Layanan AWS**
+ [Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah. Dalam pola ini, instance cluster failover SQL Server diinstal pada instans Amazon EC2.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke aplikasi Anda Akun AWS dan cloud.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di. AWS Cloud
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)menggunakan AI agen untuk membantu Anda mempercepat modernisasi beban kerja lama, seperti .NET, mainframe, dan beban kerja. VMware 

**Alat-alat lainnya**
+ [Apache Maven](https://maven.apache.org/) adalah manajemen proyek perangkat lunak open source dan membangun alat otomatisasi untuk proyek Java.
+ [Apache Tomcat](https://tomcat.apache.org/) adalah wadah Servlet open source dan server web untuk kode Java.
+ [HashiCorp Terraform](https://www.terraform.io/docs) adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud.
+ [Spring Boot](https://spring.io/projects/spring-boot) adalah kerangka kerja open source yang dibangun di atas Spring Framework di Jawa.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e). Pola ini menggunakan aplikasi AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)mainframe open source sebagai contoh aplikasi.

## Praktik terbaik
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Tetapkan kepemilikan penuh kode dan sumber daya yang ditargetkan untuk migrasi.
+ Kembangkan dan uji bukti konsep sebelum melakukan penskalaan ke migrasi penuh.
+ Menjamin komitmen dari semua pemangku kepentingan.
+ Membangun saluran komunikasi yang jelas.
+ Menentukan dan mendokumentasikan persyaratan produk minimum yang layak (MVP).
+ Tetapkan kriteria keberhasilan yang jelas.

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

### Siapkan dan unggah kode aplikasi mainframe
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket. | Buat bucket Amazon S3 di tempat yang sama Akun AWS dan Wilayah yang AWS Transform diaktifkan. Anda menggunakan bucket ini untuk menyimpan kode aplikasi mainframe, data, dan skrip tambahan yang diperlukan untuk membangun dan menjalankan aplikasi. AWS Transform menggunakan bucket ini untuk menyimpan kode refactored dan file lain yang terkait dengan transformasi. Untuk petunjuknya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3. | AWS umum, administrator AWS | 
| Setel izin CORS untuk bucket. | Saat menyiapkan bucket untuk AWS Transform akses, Anda perlu mengonfigurasi berbagi sumber daya lintas asal (CORS) untuk bucket. Jika ini tidak diatur dengan benar, Anda mungkin tidak dapat menggunakan fungsi tampilan sebaris atau perbandingan file. AWS Transform Untuk petunjuk tentang cara mengonfigurasi CORS untuk bucket, lihat [Menggunakan berbagi sumber daya lintas asal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) di bucket Amazon S3. Untuk kebijakan ini, lihat [izin CORS bucket S3 di dokumentasi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3). AWS Transform  | AWS umum, administrator AWS | 
| Siapkan contoh kode aplikasi mainframe. | 1. Masukkan perintah berikut untuk mengkloning [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)repositori ke workstation lokal Anda:<pre>git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git</pre><br />2. Kompres `aws-mainframe-modernization-carddemo` folder menjadi file ZIP.<br />3. Unggah file ZIP ke bucket Amazon S3 yang Anda buat. Untuk petunjuk, lihat [Mengunggah objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) dalam dokumentasi Amazon S3. | AWS Umum, Pengembang aplikasi | 

### Ubah aplikasi mainframe
<a name="transform-the-mainframe-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan AWS Transform pekerjaan. | 1. Akses aplikasi AWS Transform web dengan masuk dengan kredensil Anda.<br />2. Buat ruang kerja baru dengan mengikuti petunjuk di [Menyiapkan ruang kerja Anda](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-admin-workspace-setup.html) di dokumentasi. AWS Transform <br />3. Di halaman landing ruang kerja Anda, pilih **Minta AWS Transform untuk membuat pekerjaan**.<br />4. Selanjutnya, pilih **Modernisasi Mainframe** sebagai jenis pekerjaan.<br />5. Di jendela obrolan, masukkan **Transform code ke Java**.<br />6. Tinjau jenis pekerjaan, nama, dan tujuan yang disarankan. Untuk mengonfirmasi, masukkan **Ya**.<br />7. Pilih **Buat tugas**.   | Pengembang aplikasi, Pemilik aplikasi | 
| Siapkan konektor. | 1. Siapkan konektor dengan bucket Amazon S3 yang Anda buat. Untuk petunjuk, lihat [Mengatur konektor](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector) dalam AWS Transform dokumentasi. Saat diminta, masukkan jalur untuk file `aws-mainframe-modernization-carddemo` zip di bucket Amazon S3.<br />2. Tunggu analisis selesai. | Pengembang aplikasi, Pemilik aplikasi | 
| Ubah kode. | 1. Tinjau hasil analisis kode sesuai dengan instruksi dalam [Analisis kode](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis) dalam AWS Transform dokumentasi.<br />2. Refactor kode mainframe sesuai dengan instruksi dalam kode [Refactor dalam dokumentasi](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code). AWS Transform Untuk contoh aplikasi CardDemo mainframe, Anda dapat menerima pengaturan default.<br />3. Tunggu hingga refactoring selesai.<br />4. Pilih **Lihat hasil** untuk melihat jalur kode refactored di bucket Amazon S3. Catat jalur file ini. Anda akan membutuhkannya nanti. | Pengembang aplikasi, Pemilik aplikasi | 

### Menyebarkan infrastruktur melalui Terraform
<a name="deploy-the-infrastructure-through-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui template. | 1. Masukkan perintah berikut untuk mengkloning repositori [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e) ke workstation lokal Anda:<pre>git clone https://github.com/aws-samples/sample-mainframe-transformation-e2e.git</pre><br />2. Masukkan perintah berikut untuk mengambil alamat IP publik Anda saat ini:<pre>curl checkip.amazonaws.com</pre><br />3. Masukkan perintah berikut untuk menavigasi ke direktori infra:<pre>cd mainframe-transformation-e2e/infra</pre><br />4. Buka file `variables.tf`.<br />5. Ganti `YOUR_IP_ADDRESS_HERE` dengan alamat IP Anda.<br />6. Jika Anda memiliki zona yang dihosting publik, lakukan hal berikut:Ganti `hosted_zone_name` dengan nama zona host Anda.Atur `hosted_zone_enabled` ke `true`.<br />Jika Anda tidak memiliki zona yang dihosting publik, lakukan hal berikut:Masukkan perintah berikut untuk menghasilkan sertifikat yang ditandatangani sendiri:<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>Masukkan perintah berikut untuk mengimpor sertifikat ke 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 />Outpout dari perintah ini termasuk Amazon Resource Name (ARN) dari sertifikat yang diimpor.Ganti `self_signed_cert_arn` dengan ARN sertifikat Anda.Atur `hosted_zone_enabled` ke `false`.<br />7. Ubah `aws_region` ke Wilayah target. Nilai default-nya `us-east-1`.<br />8. Simpan dan tutup file `variables.tf`.Untuk lingkungan produksi atau seperti produksi, konfigurasikan komponen keamanan tambahan. Misalnya, aktifkan [AWS WAF perlindungan untuk Application Load Balancer Anda](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | AWS umum, administrator AWS | 
| Menyebarkan infrastruktur. | 1. Masukkan perintah berikut untuk menginisialisasi Terraform:<pre>terraform init</pre><br />2. Masukkan perintah berikut untuk menghasilkan rencana eksekusi:<pre>terraform plan</pre><br />3. Tinjau rencana, dan validasi sumber daya dan komponen infrastruktur yang akan dibuat.<br />4. Masukkan perintah berikut untuk menyebarkan infrastruktur:<pre>terraform apply</pre><br />5. Saat diminta, masukkan **ya** untuk mengonfirmasi penerapan.<br />6. Tunggu hingga penerapan selesai. | Terraform | 

### Instal dan konfigurasikan Apache Tomcat di instans Amazon EC2
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal perangkat lunak yang diperlukan. | 1. Connect ke instans Amazon EC2 Anda dengan menggunakan. [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-with-systems-manager-session-manager.html)<br />2. Masukkan perintah berikut untuk beralih ke pengguna root:<pre>sudo su -</pre><br />3. Masukkan perintah berikut untuk menavigasi ke `scripts` direktori:<pre>cd /opt/scripts</pre><br />4. Tinjau skrip **install\_software.sh**. Script ini menginstal Java 17, Apache Maven, dan Apache Tomcat 10.0.23.<br />5. Perbarui skrip sesuai kebutuhan untuk kasus penggunaan Anda.<br />6. Masukkan perintah berikut untuk membuat skrip dapat dieksekusi:<pre>chmod +x install_software.sh</pre><br />7. Masukkan perintah berikut untuk menjalankan skrip:<pre>./install_software.sh</pre> | Pengembang aplikasi, insinyur Migrasi | 
| Verifikasi instalasi perangkat lunak. | 1. Masukkan perintah berikut untuk memulai server Tomcat:<pre>/opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh</pre><br />2. Masukkan perintah berikut untuk memverifikasi respons server web:<pre>curl http://localhost:8080</pre><br />Output harus mengkonfirmasi bahwa Tomcat melayani halaman HTML. | Pengembang aplikasi, insinyur Migrasi | 

### Kompilasi dan paket kode aplikasi modern
<a name="compile-and-package-the-modernized-application-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unduh dan ekstrak kode yang dihasilkan. | 1. Masukkan perintah berikut untuk membuat skrip **download\_and\_extract.sh** dapat dieksekusi. Skrip ini mengunduh kode refactored dan pustaka runtime Gapwalk yang disimpan di bucket Amazon S3:<pre>chmod +x /opt/scripts/download_and_extract.sh</pre><br />2. Masukkan perintah berikut untuk menjalankan skrip. Ganti `<file_path>` dengan path ke file generated.zip di bucket Amazon S3 Anda:<pre>./download_and_extract.sh <file_path></pre>Jalur file biasanya`s3://<bucket-name>/transform_output/<aws_transform_job_id>/codetransformation/generated.zip`.<br />3. Masukkan perintah berikut untuk menavigasi ke `shared` folder:<pre>cd /opt/runtime/velocity/shared</pre><br />4. Masukkan perintah berikut untuk menyalin **deploy-velocity-runtimeskrip.sh**:<pre>cp /opt/scripts/deploy-velocity-runtime.sh .</pre><br />5. Masukkan perintah berikut untuk membuat skrip yang disalin dapat dieksekusi:<pre>chmod +x deploy-velocity-runtime.sh</pre><br />6. Masukkan perintah berikut untuk menjalankan skrip. Script ini menyalin semua dependensi Web Application Archive (WAR) yang diperlukan yang ada dalam file Project Object Model (POM) ke dalam folder repositori:<pre>./deploy-velocity-runtime.sh</pre><br />7. Verifikasi eksekusi yang berhasil dengan memeriksa bahwa tidak ada kesalahan dan bahwa dependensi WAR yang diperlukan diinstal di repositori Maven lokal Anda. | Pengembang aplikasi, insinyur Migrasi | 
| Bangun aplikasi yang dimodernisasi. | 1. Masukkan perintah berikut untuk menavigasi ke direktori `app-pom` proyek:<pre>cd /opt/codebase/app-pom/</pre><br />2. Masukkan perintah berikut untuk menginstal Maven:<pre>mvn clean install</pre><br />3. Tunggu instalasi dan build selesai.Saat menjalankan perintah ini untuk CardDemo aplikasi, Anda mungkin menemukan pesan peringatan untuk `app-web` proyek. Anda dapat dengan aman mengabaikan peringatan ini.<br />4. Setelah selesai membangun berhasil, konfirmasikan keberadaan `app-service/target/app-service-1.0.0.war` dan`app-web/target/app-web-1.0.0.war`.Jangan restart server Tomcat pada tahap ini. Ini akan mengakibatkan kesalahan karena tidak adanya database yang diperlukan. Anda harus mengatur database sebelum Anda dapat me-restart server. | Pengembang aplikasi, insinyur Migrasi | 

### Migrasi database
<a name="migrate-the-database"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat database dan skema JICS. | 1. Masukkan perintah berikut untuk mengganti nama `csd commands` folder menjadi`csd_commands`. Ini menghapus spasi dari nama folder:<pre>mv /opt/codebase/extra/csd\ commands/ /opt/codebase/extra/csd_commands</pre><br />2. Masukkan perintah berikut untuk menavigasi ke `scripts` direktori:<pre>cd /opt/scripts</pre><br />3. Masukkan perintah berikut untuk membuat skrip migrasi database dapat dieksekusi:<pre>chmod +x database_migration_setup.sh</pre><br />4. Masukkan perintah berikut untuk mengkonfigurasi variabel berikut sebagai parameter:<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 />Di mana:`<database_endpoint>`adalah titik akhir dari database Amazon RDS yang Anda terapkan melalui Terraform.`<secret_name>`adalah nama AWS Secrets Manager rahasia yang Anda sebarkan melalui Terraform.<br />5. Masukkan perintah berikut untuk menjalankan skrip migrasi database:<pre>./database_migration_setup.sh $RDS_ENDPOINT $SECRET_NAME $JICS_SQL_SCRIPT_DIR $INIT_JICS_SQL_SCRIPT_DIR</pre><br />6. Masukkan perintah berikut untuk menyambung ke database dari instans Amazon EC2 Anda:<pre>psql -h <Your Amazon RDS Endpoint> -U foo -p 5432 postgres</pre><br />7. Saat diminta, masukkan kredensil database Anda. | Pengembang aplikasi, insinyur Migrasi | 
| Validasi pembuatan database. | 1. Masukkan perintah berikut untuk melihat semua database:<pre>\l</pre><br />2. Masukkan perintah berikut untuk beralih ke `jics` database:<pre>\c jics</pre><br />3. Masukkan perintah berikut untuk meninjau daftar tabel yang dibuat:<pre>\dt</pre> | Pengembang aplikasi, insinyur Migrasi | 
| Migrasikan data ke database JICS. | 1. Masukkan perintah berikut untuk membuat skrip **execute\_listcat\_sql.sh** dapat dieksekusi:<pre>chmod +x execute_listcat_sql.sh</pre><br />2. Masukkan perintah berikut untuk mengkonfigurasi `PATH_TO_LISTCAT_SQL_FILES` variabel, yang merupakan direktori yang berisi file SQL LISTCAT Anda:<pre>PATH_TO_LISTCAT_SQL_FILES=/opt/codebase/extra/listcat/sql/cluster/aws-mainframe-modernization-carddemo-main/app/catlg</pre><br />3. Pastikan bahwa`RDS_ENDPOINT`,`SECRET_NAME`, dan `PATH_TO_LISTCAT_SQL_FILES` variabel diatur dengan benar sesuai dengan instruksi sebelumnya.<br />4. Masukkan perintah berikut untuk menjalankan skrip **execute\_listcat\_sql.sh**:<pre>./execute_listcat_sql.sh $RDS_ENDPOINT $SECRET_NAME $PATH_TO_LISTCAT_SQL_FILES</pre><br />Skrip ini memperbarui properti file VSAM dalam database JICS dan menjalankan kueri yang diperlukan untuk memodifikasi database. | Pengembang aplikasi, insinyur Migrasi | 

### Instal aplikasi modern
<a name="install-the-modernized-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal aplikasi modern pada instans Amazon EC2. | 1. Masukkan perintah berikut untuk membuat skrip **application\_installer.sh** dapat dieksekusi:<pre>chmod +x /opt/scripts/application_installer.sh</pre><br />2. Masukkan perintah berikut untuk mengkonfigurasi variabel berikut sebagai parameter:<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 />Di mana:`<database_endpoint>`adalah titik akhir dari database Amazon RDS yang Anda terapkan melalui Terraform.`<secret_name>`adalah nama AWS Secrets Manager rahasia yang Anda sebarkan melalui Terraform.`<bucket_name>`adalah nama bucket Amazon S3 yang berisi aplikasi modern.`<job_id>`adalah ID AWS Transform pekerjaan.<br />3. Masukkan perintah berikut untuk menjalankan skrip **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. Di `/opt/tomcat/apache-tomcat-10.0.23/workingdir/config` folder, di **application-utility-pgmfile.yl**, ubah parameter pengkodean menjadi yang berikut:<pre>encoding : CP1047</pre>Saat Anda memfaktorkan ulang aplikasi secara AWS Transform otomatis dengan menggunakan [AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), Anda mengonfigurasi aplikasi dan lingkungan runtime-nya melalui file YAMM. Misalnya, Anda dapat mengonfigurasi logging di file **application-main.yml.** untuk aplikasi. Untuk informasi selengkapnya tentang properti yang tersedia, lihat [Mengaktifkan properti untuk AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-key-value.html). | Pengembang aplikasi, arsitek Cloud | 
| Mulai ulang server Tomcat. | 1. Masukkan perintah berikut untuk menavigasi ke direktori kerja:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/workingdir</pre><br />2. Masukkan perintah berikut untuk berhenti dan memulai server 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. Masukkan perintah berikut untuk memantau log startup layanan Tomcat:<pre>tail -f /opt/tomcat/apache-tomcat-10.0.23/logs/catalina.out</pre> | Pengembang aplikasi, arsitek Cloud | 
| Migrasikan kumpulan data VSAM. | 1. Buka [konsol Amazon EC2](https://console.aws.amazon.com/ec2/).<br />2. Di panel navigasi, pilih **Load balancer**.<br />3. Pilih penyeimbang beban yang dibuat melalui Terraform.<br />4. Temukan nama Domain Name System (DNS) dari Application Load Balancer Anda, seperti. `application-load-balancer-<id>.<region>.elb.amazonaws.com`<br />5. Di browser Anda, navigasikan ke`http://<dns_name>/gapwalk-application/scripts/data-load`, di `<dns_name>` mana nama DSN dari Application Load Balancer. Ini memulai skrip pemuatan data.<br />6. Tunggu skrip selesai. Setelah selesai, browser akan menampilkan **SELESAI**.<br />7. Pada instans Amazon EC2, buka terminal baru.<br />8. Masukkan perintah berikut untuk terhubung ke database Amazon RDS, ganti `<database_endpoint>` dengan nilai Anda:<pre>psql -h <database_endpoint> -U foo -p 5432 postgres</pre><br />9. Saat diminta, masukkan kredensil Anda untuk terhubung ke database.<br />10. Masukkan perintah berikut untuk melihat semua database:<pre>\l</pre><br />11. Masukkan perintah berikut untuk beralih ke `bluesam` database:<pre>\c bluesam</pre><br />12. Masukkan perintah berikut untuk meninjau daftar tabel yang dibuat:<pre>\dt</pre><br />13. Masukkan perintah berikut untuk memvalidasi beban data:<pre>SELECT * FROM public.aws_m2_carddemo_usrsec_vsam_ksds;</pre><br />Output harus menunjukkan 10 catatan yang dikembalikan. | Pengembang aplikasi, insinyur Migrasi | 
| Perbarui parameter dalam skrip Groovy. | 1. Masukkan perintah berikut untuk menavigasi ke direktori skrip:<pre>cd /opt/tomcat/apache-tomcat-10.0.23/webapps/workingdir/scripts</pre><br />2. Di semua file Groovy yang berisi referensi ke file datar, perbarui konfigurasi file berikut:**Jalur file lokal** - Jalur ke file datar di direktori lokal instans Amazon EC2 Anda**Jenis sistem file** — Sistem file yang berisi file datar**Ukuran rekaman** - Ukuran file datar<br />Untuk referensi, lihat contoh skrip [Dusrsecj.jcl.Groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy) di repositori kode.<br />3. Simpan dan tutup file. | Pengembang aplikasi | 

### Uji aplikasi
<a name="test-the-application"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Uji aplikasi yang dimodernisasi. | 1. Akses aplikasi online melalui Application Load Balancer (`http://<your-load-balancer-dns>`) atau melalui zona host (`https://myhostedzone.dev/`).<br />2. Untuk ID transaksi, masukkan`CC00`.<br />3. Untuk nama pengguna, masukkan`USER0001`.<br />4. Untuk kata sandi, masukkan`PASSWORD`.<br />Setelah berhasil login, menu utama ditampilkan. | Pengembang aplikasi, Insinyur uji | 
| Verifikasi skrip batch. | 1. Akses antarmuka skrip melalui Application Load Balancer `http://<your-load-balancer-dns>/gapwalk-application/scripts` () atau melalui zona `https://myhostedzone.dev/gapwalk-application/scripts` yang dihosting ().<br />2. Pilih skrip untuk dijalankan, seperti skrip [Dusrsecj.jcl.Groovy](https://github.com/aws-samples/sample-mainframe-transformation-e2e/blob/main/scripts/DUSRSECJ.jcl.groovy).<br />3. Verifikasi bahwa skrip berjalan dengan sukses. Berikut ini adalah contoh output setelah eksekusi berhasil.<pre>{ "exitCode": 0, "stepName": "STEP03", "program": "IDCAMS", "status": "Succeeded" }</pre> | Pengembang aplikasi, Insinyur uji | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersiaplah untuk menghapus infrastruktur. | 1. Masukkan perintah berikut untuk menghapus perlindungan penghapusan dari instans 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. Masukkan perintah berikut untuk menghapus proteksi penghapusan dari 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. Masukkan perintah berikut untuk menghapus konten bucket 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 Umum | 
| Hapus infrastruktur. | Langkah-langkah ini akan menghapus sumber daya Anda secara permanen. Pastikan Anda telah mencadangkan data penting apa pun sebelum melanjutkan.1. Masukkan perintah berikut untuk menavigasi ke `infra` folder:<pre>cd /mainframe-transformation-e2e/infra</pre><br />2. Masukkan perintah berikut untuk menghapus infrastruktur:<pre>terraform destroy --auto-approve    </pre> | AWS Umum | 

## Pemecahan masalah
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Otentikasi Terraform | 1. Pastikan AWS kredensialnya dikonfigurasi dengan benar.<br />2. Verifikasi bahwa Anda telah memilih AWS profil yang benar.<br />3. Konfirmasikan bahwa Anda memiliki izin yang diperlukan. | 
| Kesalahan terkait Tomcat | 1. Periksa **catalina.out** `/opt/tomcat/apache-tomcat-10.0.23/logs` untuk pengecualian apa pun.<br />2. Masukkan perintah berikut untuk mengubah kepemilikan folder Tomcat ke pengguna Tomcat:<pre>chown -R tomcat:tomcat /opt/tomcat/*</pre> | 
| Nama URL tidak dimuat | Pastikan bahwa grup keamanan Application Load Balancer memiliki alamat IP Anda dalam aturan masuk sebagai sumber. | 
| Masalah otentikasi di log Tomcat | Konfirmasikan bahwa kata sandi rahasia database masuk AWS Secrets Manager dan kata sandi di **server.xml** cocok. | 

## Sumber daya terkait
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Panduan Preskriptif**
+ [Modernisasi aplikasi CardDemo mainframe dengan menggunakan AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS dokumentasi layanan**
+ [AWS Konsol Administrasi Blu Age Blusam](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Persyaratan penyiapan infrastruktur untuk AWS Blu Age Runtime (tidak dikelola)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Orientasi AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernisasi aplikasi mainframe](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Siapkan konfigurasi untuk AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS posting blog**
+ [Percepat Perjalanan Modernisasi Mainframe Anda menggunakan Agen AI AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)