

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

# AWS Transform 및 Terraform을 사용하여 메인프레임 애플리케이션 현대화 및 배포
<a name="modernize-mainframe-app-transform-terraform"></a>

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

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

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

## 사전 조건 및 제한 사항
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**사전 조건 **
+ 활성 AWS 계정
+  AWS 리소스를 생성하고 애플리케이션을 배포할 수 있는 관리 권한
+ Terraform 버전 1.5.7 이상, [구성](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)됨
+ AWS Terraform용 공급자, [구성](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)됨
+ AWS IAM Identity Center[enabled](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform[enabled](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ 변환 작업을 실행할 수 있는 기여자 역할이 있는 AWS Transform 워크스페이스[에 온보딩된](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) 사용자

**제한 사항 **
+ AWS Transform 는 일부에서만 사용할 수 있습니다 AWS 리전. 지원되는 리전의 전체 목록은 [AWS Transform에 지원되는 리전](https://docs.aws.amazon.com/transform/latest/userguide/regions.html)을 참조하세요.
+  AWS Transform에는 메인프레임 변환 기능에 대한 Service Quotas가 있습니다. 자세한 내용은 [AWS Transform에 대한 할당량](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html)을 참조하세요.
+ 공유 워크스페이스에서 협업하려면 모든 사용자가 AWS Transform 웹 애플리케이션의 인스턴스와 AWS IAM Identity Center 연결된의 동일한 인스턴스에 등록된 사용자여야 합니다.
+ Amazon Simple Storage Service(Amazon S3) 버킷 및는 동일한 AWS 계정 및 리전에 있어야 AWS Transform 합니다.

## 아키텍처
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

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

![\[AWS Terraform을 통한 메인프레임 애플리케이션 및 배포 현대화를 혁신합니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


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

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

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

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

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

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

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

**AWS 서비스**
+ [Amazon Elastic Compute Cloud(Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다. 이 패턴에서는 SQL Server 장애 조치 클러스터 인스턴스가 Amazon EC2 인스턴스에 설치됩니다.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 사용하면 AWS 계정 및 클라우드 애플리케이션에 대한 Single Sign-On(SSO) 액세스를 중앙에서 관리할 수 있습니다.
+ [Amazon Relational Database Service(Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)는 AWS 클라우드에서 관계형 데이터베이스를 설정, 운영 및 조정하는 데 도움이 됩니다.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)를 이용하면 코드의 시크릿을 포함해 하드 코딩된 보안 인증을 Secrets Manager에서 프로그래밍 방식으로 시크릿을 검색하도록 하는 API 호출로 바꿀 수 있습니다.
+ [Amazon Simple Storage Service(S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)는 에이전트 AI를 사용하여 .NET, 메인프레임, VMware 워크로드와 같은 레거시 워크로드의 현대화를 가속화하는 데 도움이 됩니다.

**기타 도구**
+ [Apache Maven](https://maven.apache.org/)은 Java 프로젝트를 위한 오픈 소스 소프트웨어 프로젝트 관리 및 빌드 자동화 도구입니다.
+ [Apache Tomcat](https://tomcat.apache.org/)은 Java 코드용 오픈 소스 Servlet 컨테이너 및 웹 서버입니다.
+ [HashiCorp Terraform](https://www.terraform.io/docs)은 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 코드형 인프라(IaC) 도구입니다.
+ [Spring Boot](https://spring.io/projects/spring-boot)는 Java의 Spring Framework를 기반으로 구축된 오픈 소스 프레임워크입니다.

**코드 리포지토리**

이 패턴의 코드는 GitHub [Mainframe Transformation E2E](https://github.com/aws-samples/sample-mainframe-transformation-e2e) 리포지토리에서 사용할 수 있습니다. 이 패턴은 오픈 소스 AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo) 메인프레임 애플리케이션을 샘플 애플리케이션으로 사용합니다.

## 모범 사례
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ 마이그레이션 대상 코드 및 리소스의 전체 소유권을 할당합니다.
+ 전체 마이그레이션으로 확장하기 전에 개념 증명을 개발하고 테스트합니다.
+ 모든 이해관계자의 약속을 보호합니다.
+ 명확한 통신 채널을 설정합니다.
+ 최소 실행 제품(MVP) 요구 사항을 정의하고 문서화합니다.
+ 명확한 성공 기준을 설정합니다.

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

### 메인프레임 애플리케이션 코드 준비 및 업로드
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 버킷을 만듭니다. | 가 AWS Transform 활성화된 동일한 AWS 계정 및 리전에서 Amazon S3 버킷을 생성합니다. 이 버킷을 사용하여 애플리케이션을 빌드하고 실행하는 데 필요한 메인프레임 애플리케이션 코드, 데이터 및 추가 스크립트를 저장합니다.는이 버킷을 AWS Transform 사용하여 리팩터링된 코드 및 변환과 연결된 기타 파일을 저장합니다. 지침은 Amazon S3 설명서의 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)을 참조하세요. | 일반 AWS, AWS 관리자 | 
| 버킷에 대한 CORS 권한을 설정합니다. |  AWS Transform 액세스를 위해 버킷을 설정할 때 버킷에 대한 교차 오리진 리소스 공유(CORS)를 구성해야 합니다. 올바르게 설정되지 않은 경우의 인라인 보기 또는 파일 비교 기능을 사용하지 못할 수 있습니다 AWS Transform. 버킷에 대한 CORS를 구성하는 방법에 대한 지침은 Amazon S3 버킷에서 [교차 오리진 리소스 공유 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html)을 참조하세요. 정책은 AWS Transform 설명서의 [S3 버킷 CORS 권한을](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3) 참조하세요. | 일반 AWS, AWS 관리자 | 
| 샘플 메인프레임 애플리케이션 코드를 준비합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 일반 AWS, 앱 개발자 | 

### 메인프레임 애플리케이션 변환
<a name="transform-the-mainframe-application"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
|  AWS Transform 작업을 설정합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 앱 소유자 | 
| 커넥터를 설정합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 앱 소유자 | 
| 코드를 변환합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 앱 소유자 | 

### Terraform을 통해 인프라 배포
<a name="deploy-the-infrastructure-through-terraform"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 템플릿을 업데이트합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)프로덕션 또는 프로덕션과 유사한 환경의 경우 추가 보안 구성 요소를 구성합니다. 예를 들어 [AWS WAF Application Load Balancer에 대한 보호를](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/) 활성화합니다. | 일반 AWS, AWS 관리자 | 
| 인프라를 배포합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Amazon EC2 인스턴스에 Apache Tomcat 설치 및 구성
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 필수 소프트웨어 설치: | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 
| 소프트웨어 설치를 확인합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 

### 현대화된 애플리케이션 코드 컴파일 및 패키징
<a name="compile-and-package-the-modernized-application-code"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 생성된 코드를 다운로드하고 추출합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 
| 현대화된 애플리케이션을 구축합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 

### 데이터베이스 마이그레이션
<a name="migrate-the-database"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 데이터베이스 및 JICS 스키마를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 
| 데이터베이스 생성을 검증합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 
| 데이터를 JICS 데이터베이스로 마이그레이션합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 

### 현대화된 애플리케이션 설치
<a name="install-the-modernized-application"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Amazon EC2 인스턴스에 애플리케이션 설치 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 클라우드 아키텍트 | 
| 서버를 시작합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 클라우드 아키텍트 | 
| VSAM 데이터 세트를 마이그레이션합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 마이그레이션 엔지니어 | 
| Groovy 스크립트의 파라미터를 업데이트합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자 | 

### 애플리케이션 테스트
<a name="test-the-application"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 현대화된 애플리케이션을 테스트합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 테스트 엔지니어 | 
| 배치 스크립트를 확인합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 앱 개발자, 테스트 엔지니어 | 

### 정리
<a name="clean-up"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 인프라를 삭제할 준비를 합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 일반 AWS | 
| 인프라를 삭제합니다. | 이 단계는 리소스를 영구적으로 삭제합니다. 계속하기 전에 중요한 데이터를 백업했는지 확인합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 일반 AWS | 

## 문제 해결
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| 문제 | Solution | 
| --- | --- | 
| Terraform 인증 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Tomcat 관련 오류 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| URL 이름이 로드되지 않음 | Application Load Balancer 보안 그룹에 인바운드 규칙의 IP 주소가 소스로 포함되어 있는지 확인합니다. | 
| Tomcat 로그의 인증 문제 | 의 데이터베이스 암호 AWS Secrets Manager 와 **server.xml**의 암호가 일치하는지 확인합니다. | 

## 관련 리소스
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS 권장 가이드**
+ [AWS 변환을 사용하여 CardDemo 메인프레임 애플리케이션 현대화](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS 서비스 설명서**
+ [AWS Blu Age Blusam 관리 콘솔](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [AWS Blu Age 런타임에 대한 인프라 설정 요구 사항(비관리형)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [온보딩 AWS Blu Age 런타임](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [메인프레임 애플리케이션의 현대화](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [AWS Blu Age 런타임에 대한 구성 설정](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS 블로그 게시물**
+ [에서 AI 에이전트를 사용하여 메인프레임 현대화 여정 가속화 AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)