AWS Transform 및 Terraform을 사용하여 메인프레임 애플리케이션 현대화 및 배포 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Transform 및 Terraform을 사용하여 메인프레임 애플리케이션 현대화 및 배포

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

요약

AWS Transform는 .NET, 메인프레임 및 VMware 워크로드의 대규모 현대화를 가속화할 수 있습니다. 평가, 코드 분석, 리팩터링, 분해, 종속성 매핑, 검증 및 변환 계획과 같은 복잡한 작업을 자동화하는 특수 AI 에이전트를 배포합니다. 이 패턴은를 AWS Transform 사용하여 메인프레임 애플리케이션을 현대화한 다음 Hashicorp Terraform을 사용하여 AWS 인프라에 배포하는 방법을 보여줍니다. 이 step-by-step 지침은 샘플 오픈 소스 메인프레임 애플리케이션인 CardDemo를 COBOL에서 최신 Java 애플리케이션으로 변환하는 데 도움이 됩니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • AWS 리소스를 생성하고 애플리케이션을 배포할 수 있는 관리 권한

  • Terraform 버전 1.5.7 이상, 구성

  • AWS Terraform용 공급자, 구성

  • AWS IAM Identity Center, 활성화

  • AWS Transform, 활성화

  • 변환 작업을 실행할 수 있는 기여자 역할이 있는 AWS Transform 워크스페이스에 온보딩된 사용자

제한 사항

  • AWS Transform 는 일부에서만 사용할 수 있습니다 AWS 리전. 지원되는 리전의 전체 목록은 지원되는 리전을 참조하세요 AWS Transform.

  • 에는 메인프레임 변환 기능에 대한 서비스 할당량이 있습니다 AWS Transform. 자세한 내용은 AWS Transform에 대한 할당량을 참조하세요.

  • 공유 워크스페이스에서 협업하려면 모든 사용자가 AWS Transform 웹 애플리케이션의 인스턴스와 AWS IAM Identity Center 연결된의 동일한 인스턴스에 등록된 사용자여야 합니다.

  • Amazon Simple Storage Service(Amazon S3) 버킷 및는 동일한 AWS 계정 및 리전에 있어야 AWS Transform 합니다.

아키텍처

다음 다이어그램은 레거시 애플리케이션의 end-to-end 현대화와에 대한 배포를 보여줍니다 AWS 클라우드. 애플리케이션 및 데이터베이스 자격 증명은에 저장 AWS Secrets Manager되며 Amazon CloudWatch는 모니터링 및 로깅 기능을 제공합니다.

AWS Terraform을 통한 메인프레임 애플리케이션 및 배포 현대화를 혁신합니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. AWS IAM Identity Center를 통해 사용자는 AWS Transform 에서 인증하고 액세스합니다 AWS 계정.

  2. 사용자는 COBOL 메인프레임 코드를 Amazon S3 버킷에 업로드하고 변환을 시작합니다 AWS Transform.

  3. AWS Transform 는 COBOL 코드를 클라우드 네이티브 Java 코드로 현대화하고 현대화된 코드를 Amazon S3 버킷에 저장합니다.

  4. Terraform은 Application Load Balancer, Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 및 Amazon Relational Database Service(Amazon RDS) 데이터베이스를 포함하여 현대화된 애플리케이션을 배포하는 AWS 인프라를 생성합니다. Terraform은 현대화된 코드를 Amazon EC2 인스턴스에 배포합니다.

  5. VSAM 파일은 Amazon EC2에 업로드되고 Amazon EC2에서 Amazon RDS 데이터베이스로 마이그레이션됩니다.

도구

AWS 서비스

  • Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다. 이 패턴에서는 SQL Server 장애 조치 클러스터 인스턴스가 Amazon EC2 인스턴스에 설치됩니다.

  • AWS IAM Identity Center를 사용하면 AWS 계정 및 클라우드 애플리케이션에 대한 Single Sign-On(SSO) 액세스를 중앙에서 관리할 수 있습니다.

  • Amazon Relational Database Service(RDS)를 사용하면에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있습니다 AWS 클라우드.

  • AWS Secrets Manager를 이용하면 코드의 시크릿을 포함해 하드 코딩된 보안 인증을 Secrets Manager에서 프로그래밍 방식으로 시크릿을 검색하도록 하는 API 호출로 바꿀 수 있습니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • AWS Transform는 에이전트 AI를 사용하여 .NET, 메인프레임, VMware 워크로드와 같은 레거시 워크로드의 현대화를 가속화하는 데 도움이 됩니다.

기타 도구

  • Apache Maven은 Java 프로젝트를 위한 오픈 소스 소프트웨어 프로젝트 관리 및 빌드 자동화 도구입니다.

  • Apache Tomcat은 Java 코드용 오픈 소스 Servlet 컨테이너 및 웹 서버입니다.

  • HashiCorp Terraform은 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 코드형 인프라(IaC) 도구입니다.

  • Spring Boot는 Java의 Spring Framework를 기반으로 구축된 오픈 소스 프레임워크입니다.

코드 리포지토리

이 패턴의 코드는 GitHub Mainframe Transformation E2E 리포지토리에서 사용할 수 있습니다. 이 패턴은 오픈 소스 AWS CardDemo 메인프레임 애플리케이션을 샘플 애플리케이션으로 사용합니다.

모범 사례

  • 마이그레이션 대상 코드 및 리소스의 전체 소유권을 할당합니다.

  • 전체 마이그레이션으로 확장하기 전에 개념 증명을 개발하고 테스트합니다.

  • 모든 이해관계자의 약속을 보호합니다.

  • 명확한 통신 채널을 설정합니다.

  • 최소 실행 가능 제품(MVP) 요구 사항을 정의하고 문서화합니다.

  • 명확한 성공 기준을 설정합니다.

에픽

작업설명필요한 기술

버킷을 만듭니다.

가 AWS Transform 활성화된 동일한 AWS 계정 및 리전에서 Amazon S3 버킷을 생성합니다. 이 버킷을 사용하여 애플리케이션을 빌드하고 실행하는 데 필요한 메인프레임 애플리케이션 코드, 데이터 및 추가 스크립트를 저장합니다.는이 버킷을 AWS Transform 사용하여 리팩터링된 코드 및 변환과 연결된 기타 파일을 저장합니다. 지침은 Amazon S3 설명서의 버킷 생성을 참조하세요.

일반 AWS, AWS 관리자

버킷에 대한 CORS 권한을 설정합니다.

AWS Transform 액세스를 위해 버킷을 설정할 때 버킷에 대한 교차 오리진 리소스 공유(CORS)를 구성해야 합니다. 올바르게 설정되지 않은 경우의 인라인 보기 또는 파일 비교 기능을 사용하지 못할 수 있습니다 AWS Transform. 버킷에 대한 CORS를 구성하는 방법에 대한 지침은 Amazon S3 버킷에서 교차 오리진 리소스 공유 사용을 참조하세요. 정책은 AWS Transform 설명서의 S3 버킷 CORS 권한을 참조하세요.

일반 AWS, AWS 관리자

샘플 메인프레임 애플리케이션 코드를 준비합니다.

  1. 다음 명령을 입력하여 CardDemo 리포지토리를 로컬 워크스테이션에 복제합니다.

    git clone https://github.com/aws-samples/aws-mainframe-modernization-carddemo.git
  2. aws-mainframe-modernization-carddemo 폴더를 ZIP 파일로 압축합니다.

  3. 생성한 Amazon S3 버킷에 ZIP 파일을 업로드합니다. 이에 관한 지침은 Amazon S3 설명서의 객체 업로드를 참조하세요.

일반 AWS, 앱 개발자
작업설명필요한 기술

AWS Transform 작업을 설정합니다.

  1. 자격 증명으로 로그인하여 AWS Transform 웹 애플리케이션에 액세스합니다.

  2. AWS Transform 설명서의 작업 영역 설정의 지침에 따라 새 작업 영역을 생성합니다.

  3. 워크스페이스 랜딩 페이지에서 작업을 생성 AWS Transform 하도록 요청을 선택합니다.

  4. 그런 다음 작업 유형으로 메인프레임 현대화를 선택합니다.

  5. 채팅 창에서 코드를 Java로 변환을 입력합니다.

  6. 제안된 작업 유형, 이름 및 목표를 검토합니다. 확인하려면 예를 입력합니다.

  7. 작업 생성을 선택합니다. 

앱 개발자, 앱 소유자

커넥터를 설정합니다.

  1. 생성한 Amazon S3 버킷으로 커넥터를 설정합니다. 지침은 AWS Transform 설명서의 커넥터 설정을 참조하세요. 메시지가 표시되면 Amazon S3 버킷에 aws-mainframe-modernization-carddemo zip 파일의 경로를 입력합니다.

  2. 분석이 완료될 때까지 기다립니다.

앱 개발자, 앱 소유자

코드를 변환합니다.

  1. AWS Transform 설명서의 코드 분석 지침에 따라 코드 분석 결과를 검토합니다.

  2. AWS Transform 설명서의 리팩터링 코드의 지침에 따라 메인프레임 코드를 리팩터링합니다. 샘플 CardDemo 메인프레임 애플리케이션의 경우 기본 설정을 수락할 수 있습니다.

  3. 리팩터링이 완료될 때까지 기다립니다.

  4. 결과 보기를 선택하여 Amazon S3 버킷에서 리팩터링된 코드의 경로를 확인합니다. 이 파일 경로를 기록해 둡니다. 잠시 후 필요한 정보입니다.

앱 개발자, 앱 소유자
작업설명필요한 기술

템플릿을 업데이트합니다.

  1. 다음 명령을 입력하여 Mainframe Transformation E2E 리포지토리를 로컬 워크스테이션에 복제합니다.

    git clone https://github.com/aws-samples/sample-mainframe-transformation-e2e.git
  2. 다음 명령을 입력하여 현재 퍼블릭 IP 주소를 검색합니다.

    curl checkip.amazonaws.com
  3. 다음 명령을 입력하여 인프라 디렉터리로 이동합니다.

    cd mainframe-transformation-e2e/infra
  4. variables.tf 파일을 엽니다.

  5. YOUR_IP_ADDRESS_HERE를 IP 주소로 바꿉니다.

  6. 퍼블릭 호스팅 영역이 있는 경우 다음을 수행합니다.

    1. hosted_zone_name를 호스팅 영역 이름으로 바꿉니다.

    2. hosted_zone_enabledtrue으로 설정합니다.

    퍼블릭 호스팅 영역이 없는 경우 다음을 수행합니다.

    1. 다음 명령을 입력하여 자체 서명된 인증서를 생성합니다.

      openssl genrsa 2048 > my-private-key.pem openssl req -new -x509 -nodes -sha256 -days 365 -key my-private-key.pem -outform PEM -out my-certificate.pem
    2. 다음 명령을 입력하여 인증서를 AWS Certificate Manager (ACM)로 가져옵니다.

      aws acm import-certificate \ --certificate fileb://my-certificate.pem \ --private-key fileb://my-private-key.pem

      이 명령의 출력에는 가져온 인증서의 Amazon 리소스 이름(ARN)이 포함됩니다.

    3. 를 인증서의 ARNself_signed_cert_arn으로 바꿉니다.

    4. hosted_zone_enabledfalse으로 설정합니다.

  7. 대상 리전aws_region으로 변경합니다. 기본값은 us-east-1입니다.

  8. variables.tf 파일을 저장하고 닫습니다.

참고

프로덕션 또는 프로덕션과 유사한 환경의 경우 추가 보안 구성 요소를 구성합니다. 예를 들어 AWS WAF Application Load Balancer에 대한 보호를 활성화합니다.

일반 AWS, AWS 관리자

인프라를 배포합니다.

  1. 다음 명령을 입력하여 Terraform을 초기화합니다.

    terraform init
  2. 다음 명령을 입력하여 실행 계획을 생성합니다.

    terraform plan
  3. 계획을 검토하고 생성될 리소스 및 인프라 구성 요소를 검증합니다.

  4. 다음 명령을 입력하여 인프라를 배포합니다.

    terraform apply
  5. 메시지가 표시되면 예를 입력하여 배포를 확인합니다.

  6. 배포가 완료될 때까지 기다립니다.

Terraform
작업설명필요한 기술

필요한 소프트웨어를 설치합니다.

  1. 를 사용하여 Amazon EC2 인스턴스에 연결합니다AWS Systems Manager Session Manager.

  2. 루트 사용자로 전환하려면 다음 명령을 입력합니다.

    sudo su -
  3. 다음 명령을 입력하여 scripts 디렉터리로 이동합니다.

    cd /opt/scripts
  4. install_software.sh 스크립트를 검토합니다. 이 스크립트는 Java 17, Apache Maven 및 Apache Tomcat 10.0.23을 설치합니다.

  5. 사용 사례에 따라 스크립트를 업데이트합니다.

  6. 다음 명령을 입력하여 스크립트를 실행 가능하게 만듭니다.

    chmod +x install_software.sh
  7. 다음 명령을 입력하여 스크립트를 실행합니다.

    ./install_software.sh
앱 개발자, 마이그레이션 엔지니어

소프트웨어 설치를 확인합니다.

  1. 다음 명령을 입력하여 Tomcat 서버를 시작합니다.

    /opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh
  2. 다음 명령을 입력하여 웹 서버 응답을 확인합니다.

    curl http://localhost:8080

    출력은 Tomcat이 HTML 페이지를 제공하고 있는지 확인해야 합니다.

앱 개발자, 마이그레이션 엔지니어
작업설명필요한 기술

생성된 코드를 다운로드하고 추출합니다.

  1. 다음 명령을 입력하여 download_and_extract.sh 스크립트를 실행 가능하게 만듭니다. 이 스크립트는 Amazon S3 버킷에 저장된 리팩터링된 코드 및 Gapwalk 런타임 라이브러리를 다운로드합니다.

    chmod +x /opt/scripts/download_and_extract.sh
  2. 다음 명령을 입력하여  스크립트를 실행합니다. 를 Amazon S3 버킷에 있는 generated.zip 파일의 경로<file_path>로 바꿉니다.

    ./download_and_extract.sh <file_path>
    참고

    파일 경로는 일반적으로 입니다s3://<bucket-name>/transform_output/<aws_transform_job_id>/codetransformation/generated.zip.

  3. 다음 명령을 입력하여 shared 폴더로 이동합니다.

    cd /opt/runtime/velocity/shared
  4. 다음 명령을 입력하여 deploy-velocity-runtime.sh 스크립트를 복사합니다.

    cp /opt/scripts/deploy-velocity-runtime.sh .
  5. 다음 명령을 입력하여 복사된 스크립트를 실행 가능하게 만듭니다.

    chmod +x deploy-velocity-runtime.sh
  6. 다음 명령을 입력하여  스크립트를 실행합니다. 이 스크립트는 POM(Project Object Model) 파일에 있는 모든 필수 웹 애플리케이션 아카이브(WAR) 종속성을 리포지토리 폴더에 복사합니다.

    ./deploy-velocity-runtime.sh
  7. 오류가 없고 필요한 WAR 종속성이 로컬 Maven 리포지토리에 설치되어 있는지 확인하여 성공적인 실행을 확인합니다.

앱 개발자, 마이그레이션 엔지니어

현대화된 애플리케이션을 구축합니다.

  1. 다음 명령을 입력하여 app-pom 프로젝트 디렉터리로 이동합니다.

    cd /opt/codebase/app-pom/
  2. 다음 명령을 입력하여 Maven을 설치합니다.

    mvn clean install
  3. 설치 및 빌드가 완료될 때까지 기다립니다.

    참고

    CardDemo 애플리케이션에 대해이 명령을 실행할 때 app-web 프로젝트에 대한 경고 메시지가 표시될 수 있습니다. 이러한 경고는 무시해도 됩니다.

  4. 빌드가 성공적으로 완료되면 app-service/target/app-service-1.0.0.war 및의 존재를 확인합니다app-web/target/app-web-1.0.0.war.

    중요

    이 단계에서 Tomcat 서버를 다시 시작하지 마십시오. 필수 데이터베이스가 없어 오류가 발생합니다. 서버를 다시 시작하려면 먼저 데이터베이스를 설정해야 합니다.

앱 개발자, 마이그레이션 엔지니어
작업설명필요한 기술

데이터베이스 및 JICS 스키마를 생성합니다.

  1. 다음 명령을 입력하여 csd commands 폴더의 이름을 로 바꿉니다csd_commands. 이렇게 하면 폴더 이름에서 공백이 제거됩니다.

    mv /opt/codebase/extra/csd\ commands/ /opt/codebase/extra/csd_commands
  2. 다음 명령을 입력하여 scripts 디렉터리로 이동합니다.

    cd /opt/scripts
  3. 다음 명령을 입력하여 데이터베이스 마이그레이션 스크립트를 실행 가능하게 만듭니다.

    chmod +x database_migration_setup.sh
  4. 다음 명령을 입력하여 다음 변수를 파라미터로 구성합니다.

    RDS_ENDPOINT=<database_endpoint> SECRET_NAME=<secret_name> JICS_SQL_SCRIPT_DIR=/opt/runtime/velocity/jics/sql/jics.sql INIT_JICS_SQL_SCRIPT_DIR=/opt/codebase/extra/csd_commands/sql/aws-mainframe-modernization-carddemo-main/app/csd/initJics.sql

    위치:

    • <database_endpoint>는 Terraform을 통해 배포한 Amazon RDS 데이터베이스의 엔드포인트입니다.

    • <secret_name>는 Terraform을 통해 배포한 AWS Secrets Manager 보안 암호의 이름입니다.

  5. 다음 명령을 입력하여 데이터베이스 마이그레이션 스크립트를 실행합니다.

    ./database_migration_setup.sh $RDS_ENDPOINT $SECRET_NAME $JICS_SQL_SCRIPT_DIR $INIT_JICS_SQL_SCRIPT_DIR
  6. 다음 명령을 입력하여 Amazon EC2 인스턴스에서 데이터베이스에 연결합니다.

    psql -h <Your Amazon RDS Endpoint> -U foo -p 5432 postgres
  7. 메시지가 표시되면 데이터베이스 자격 증명을 입력합니다.

앱 개발자, 마이그레이션 엔지니어

데이터베이스 생성을 검증합니다.

  1. 모든 데이터베이스를 보려면 다음 명령을 입력합니다.

    \l
  2. 다음 명령을 입력하여 jics 데이터베이스로 전환합니다.

    \c jics
  3. 다음 명령을 입력하여 생성된 테이블 목록을 검토합니다.

    \dt
앱 개발자, 마이그레이션 엔지니어

데이터를 JICS 데이터베이스로 마이그레이션합니다.

  1. 다음 명령을 입력하여 execute_listcat_sql.sh 스크립트를 실행 가능하게 만듭니다.

    chmod +x execute_listcat_sql.sh
  2. 다음 명령을 입력하여 LISTCAT SQL 파일이 포함된 디렉터리인 PATH_TO_LISTCAT_SQL_FILES 변수를 구성합니다.

    PATH_TO_LISTCAT_SQL_FILES=/opt/codebase/extra/listcat/sql/cluster/aws-mainframe-modernization-carddemo-main/app/catlg
  3. RDS_ENDPOINT, SECRET_NAMEPATH_TO_LISTCAT_SQL_FILES 변수가 이전 지침에 따라 올바르게 설정되었는지 확인합니다.

  4. 다음 명령을 입력하여 execute_listcat_sql.sh 스크립트를 실행합니다.

    ./execute_listcat_sql.sh $RDS_ENDPOINT $SECRET_NAME $PATH_TO_LISTCAT_SQL_FILES

    이 스크립트는 JICS 데이터베이스의 VSAM 파일 속성을 업데이트하고 필요한 쿼리를 실행하여 데이터베이스를 수정합니다.

앱 개발자, 마이그레이션 엔지니어
작업설명필요한 기술

Amazon EC2 인스턴스에 현대화된 애플리케이션을 설치합니다.

  1. 다음 명령을 입력하여 application_installer.sh 스크립트를 실행 가능하게 만듭니다.

    chmod +x /opt/scripts/application_installer.sh
  2. 다음 명령을 입력하여 다음 변수를 파라미터로 구성합니다.

    RDS_ENDPOINT=<database_endpoint> SECRET_NAME=<secret_name> AIX_JSON_FILE_PATH=/opt/codebase/extra/csd_commands/json/aws-mainframe-modernization-carddemo-main/jicsFileAix.json LISTCAT_JSON_FILES_DIR=/opt/codebase/extra/listcat/json/cluster/default/aws-mainframe-modernization-carddemo-main/app/catlg S3_PATH_FOR_EBCDIC_DATA_FILES=s3://<bucket_name>/transform-output/<job_id>/inputs/aws-mainframe-modernization-carddemo-main/app/data/EBCDIC

    위치:

    • <database_endpoint>는 Terraform을 통해 배포한 Amazon RDS 데이터베이스의 엔드포인트입니다.

    • <secret_name>는 Terraform을 통해 배포한 AWS Secrets Manager 보안 암호의 이름입니다.

    • <bucket_name>는 현대화된 애플리케이션이 포함된 Amazon S3 버킷의 이름입니다.

    • <job_id>는 AWS Transform 작업의 ID입니다.

  3. 다음 명령을 입력하여 application_installer.sh 스크립트를 실행합니다.

    ./application_installer.sh $RDS_ENDPOINT $SECRET_NAME $AIX_JSON_FILE_PATH $LISTCAT_JSON_FILES_DIR $S3_PATH_FOR_EBCDIC_DATA_FILES
  4. /opt/tomcat/apache-tomcat-10.0.23/workingdir/config 폴더의 application-utility-pgm.yml 파일에서 인코딩 파라미터를 다음과 같이 변경합니다.

    encoding : CP1047
    참고

    AWS Blu Age를 사용하여에서 애플리케이션을 AWS Transform 자동으로 리팩터링하는 경우 YAML 파일을 통해 애플리케이션과 해당 런타임 환경을 구성합니다. 예를 들어 애플리케이션의 application-main.yml 파일에서 로깅을 구성할 수 있습니다. 사용 가능한 속성에 대한 자세한 내용은 AWS Blu Age 런타임에 대한 속성 활성화를 참조하세요.

앱 개발자, 클라우드 아키텍트

Tomcat 서버를 다시 시작합니다.

  1. 다음 명령을 입력하여 작업 디렉터리로 이동합니다.

    cd /opt/tomcat/apache-tomcat-10.0.23/workingdir
  2. 다음 명령을 입력하여 Tomcat 서버를 중지하고 시작합니다.

    /opt/tomcat/apache-tomcat-10.0.23/bin/shutdown.sh /opt/tomcat/apache-tomcat-10.0.23/bin/startup.sh
  3. 다음 명령을 입력하여 Tomcat 서비스 시작 로그를 모니터링합니다.

    tail -f /opt/tomcat/apache-tomcat-10.0.23/logs/catalina.out
앱 개발자, 클라우드 아키텍트

VSAM 데이터 세트를 마이그레이션합니다.

  1. Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 로드 밸런서를 선택합니다.

  3. Terraform을 통해 생성된 로드 밸런서를 선택합니다.

  4. 와 같은 Application Load Balancer의 도메인 이름 시스템(DNS) 이름을 찾습니다application-load-balancer-<id>.<region>.elb.amazonaws.com.

  5. 브라우저에서 로 이동합니다. http://<dns_name>/gapwalk-application/scripts/data-load여기서 <dns_name>는 Application Load Balancer의 DSN 이름입니다. 그러면 데이터 로드 스크립트가 시작됩니다.

  6. 스크립트가 완료될 때까지 기다립니다. 완료되면 브라우저에 완료가 표시됩니다.

  7. Amazon EC2 인스턴스에서 새 터미널을 엽니다.

  8. 다음 명령을 입력하여 Amazon RDS 데이터베이스에 연결하고를 값으로 바꿉니다<database_endpoint>.

    psql -h <database_endpoint> -U foo -p 5432 postgres
  9. 메시지가 표시되면 자격 증명을 입력하여 데이터베이스에 연결합니다.

  10. 모든 데이터베이스를 보려면 다음 명령을 입력합니다.

    \l
  11. 다음 명령을 입력하여 bluesam 데이터베이스로 전환합니다.

    \c bluesam
  12. 다음 명령을 입력하여 생성된 테이블 목록을 검토합니다.

    \dt
  13. 다음 명령을 입력하여 데이터 로드를 검증합니다.

    SELECT * FROM public.aws_m2_carddemo_usrsec_vsam_ksds;

    출력에는 반환된 레코드 10개가 표시되어야 합니다.

앱 개발자, 마이그레이션 엔지니어

Groovy 스크립트의 파라미터를 업데이트합니다.

  1. 다음 명령을 입력하여 스크립트 디렉터리로 이동합니다.

    cd /opt/tomcat/apache-tomcat-10.0.23/webapps/workingdir/scripts
  2. 플랫 파일에 대한 참조가 포함된 모든 Groovy 파일에서 다음 파일 구성을 업데이트합니다.

    • 로컬 파일 경로 - Amazon EC2 인스턴스의 로컬 디렉터리에 있는 플랫 파일의 경로입니다.

    • 파일 시스템 유형 - 플랫 파일이 포함된 파일 시스템

    • 레코드 크기 - 플랫 파일의 크기입니다.

    참조는 코드 리포지토리의 샘플 DUSRSECJ.jcl.groovy 스크립트를 참조하세요.

  3. 파일을 저장하고 닫습니다.

앱 개발자
작업설명필요한 기술

현대화된 애플리케이션을 테스트합니다.

  1. Application Load Balancer(http://<your-load-balancer-dns>) 또는 호스팅 영역()을 통해 온라인 애플리케이션에 액세스합니다https://myhostedzone.dev/.

  2. 트랜잭션 ID에를 입력합니다CC00.

  3. 사용자 이름에를 입력합니다USER0001.

  4. 암호에를 입력합니다PASSWORD.

    로그인에 성공하면 기본 메뉴가 표시됩니다.

앱 개발자, 테스트 엔지니어

배치 스크립트를 확인합니다.

  1. Application Load Balancer(http://<your-load-balancer-dns>/gapwalk-application/scripts) 또는 호스팅 영역()을 통해 스크립트 인터페이스에 액세스합니다https://myhostedzone.dev/gapwalk-application/scripts.

  2. DUSRSECJ.jcl.groovy 스크립트와 같이 실행할 스크립트를 선택합니다.

  3. 스크립트가 성공적으로 실행되는지 확인합니다. 다음은 성공적인 실행 후의 샘플 출력입니다.

    { "exitCode": 0, "stepName": "STEP03", "program": "IDCAMS", "status": "Succeeded" }
앱 개발자, 테스트 엔지니어
작업설명필요한 기술

인프라를 삭제할 준비를 합니다.

  1. 다음 명령을 입력하여 Amazon RDS 인스턴스에서 삭제 방지를 제거합니다.

    aws rds modify-db-instance \ --db-instance-identifier <your-db-instance-name> \ --no-deletion-protection \ --apply-immediately
  2. 다음 명령을 입력하여 Application Load Balancer에서 삭제 방지를 제거합니다.

    aws elbv2 modify-load-balancer-attributes \ --load-balancer-arn <your-load-balancer-arn> \ --attributes Key=deletion_protection.enabled,Value=false
  3. 다음 명령을 입력하여 Amazon S3 버킷의 콘텐츠를 삭제합니다.

    ACCOUNT_NUMBER=$(aws sts get-caller-identity --query Account --output text) aws s3 rm s3://mf-carddemo-$ACCOUNT_NUMBER --recursive aws s3 rm s3://mf-carddemo-logs-$ACCOUNT_NUMBER --recursive
일반 AWS

인프라를 삭제합니다.

중요

이 단계는 리소스를 영구적으로 삭제합니다. 계속하기 전에 중요한 데이터를 백업했는지 확인합니다.

  1. 다음 명령을 입력하여 infra 폴더로 이동합니다.

    cd /mainframe-transformation-e2e/infra
  2. 다음 명령을 입력하여 인프라를 삭제합니다.

    terraform destroy --auto-approve    
일반 AWS

문제 해결

문제Solution

Terraform 인증

  1. AWS 자격 증명이 올바르게 구성되었는지 확인합니다.

  2. 올바른 AWS 프로필을 선택했는지 확인합니다.

  3. 필요한 권한이 있는지 확인합니다.

Tomcat 관련 오류

  1. 에서 catalina.out/opt/tomcat/apache-tomcat-10.0.23/logs에서 예외를 확인합니다.

  2. 다음 명령을 입력하여 Tomcat 폴더의 소유권을 Tomcat 사용자로 변경합니다.

    chown -R tomcat:tomcat /opt/tomcat/*

URL 이름이 로드되지 않음

Application Load Balancer 보안 그룹에 인바운드 규칙의 IP 주소가 소스로 있는지 확인합니다.

Tomcat 로그의 인증 문제

의 데이터베이스 암호 AWS Secrets Manager 와 server.xml의 암호가 일치하는지 확인합니다.

관련 리소스

AWS 권장 가이드

AWS 서비스 설명서

AWS 블로그 게시물