

AWS Mainframe Modernization Service(관리형 런타임 환경 환경 환경)는 더 이상 신규 고객에게 공개되지 않습니다. AWS Mainframe Modernization Service(관리형 런타임 환경 환경)와 유사한 기능은 AWS Mainframe Modernization Service(자체 관리형 환경)를 참조하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS Mainframe Modernization 가용성 변경을](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html) 참조하세요.

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

# 메인프레임 런타임에 대한 AWS 변환 설정
<a name="ba-runtime-setup"></a>

이 섹션에서는 AWS 인프라에서 메인프레임 런타임에 대한 AWS 변환을 설정하는 단계를 설명합니다. 애플리케이션용 메인프레임 런타임에 대한 AWS 변환을 설정하기 전에 런타임 환경을 구성하고 관리하기 위한 사전 조건, 리전 및 버킷과 CloudWatch 경보 설정을 이해합니다.

**Topics**
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md)
+ [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)
+ [메인프레임 런타임 AWS 변환을 위한 인프라 설정 요구 사항](ba-infrastructure-setup.md)
+ [AWS 메인프레임 런타임 아티팩트에 대한 변환](ba-runtime-artifacts.md)
+ [Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 배포](ba-deploy-ec2.md)
+ [Amazon ECS 및 Amazon EKS의 컨테이너에 메인프레임 런타임에 대한 AWS 변환 배포](ba-deploy-container.md)
+ [PlanetsDemo 애플리케이션을 테스트하세요](ba-runtime-test-planetsdemo.md)

# AWS 메인프레임 런타임 사전 조건에 대한 변환
<a name="ba-runtime-setup-prereq"></a>

AWS 메인프레임 런타임에 대한 변환은 여러 [AWS 메인프레임 릴리스 정보 변환](ba-release-notes.md) 릴리스 버전에서 사용할 수 있습니다. 진행 중인 현대화 프로젝트가 있는 경우 구현 및 테스트 목적으로 증분 버전의 런타임이 필요할 수 있습니다. 요구 사항을 정의하려면 메인프레임 전송 관리자용 AWS 변환에 문의하세요.

메인프레임 런타임에 AWS 변환을 사용하기 전에 다음을 수행합니다.
+  AWS 계정이 있는지 확인합니다.
+ 메인프레임용 AWS 변환으로 리팩터링된 현대화된 애플리케이션이 있는지 확인합니다.
+ 메인프레임 런타임의 AWS 변환에 지원되는 AWS 리전과 컴퓨팅 옵션 중 하나를 선택합니다.
+ 사용하려는 메인프레임 런타임 버전의 AWS 변환을 선택합니다.
+ 메인프레임 런타임용 AWS 변환을 실행하는 데 필요한 추가 구성 요소를 [메인프레임 런타임 AWS 변환을 위한 인프라 설정 요구 사항](ba-infrastructure-setup.md) 검토하고 검증합니다.

**참고**  
메인프레임 런타임용 AWS 변환 기능을 테스트하려면 [PlanetsDemo-v1.zip](https://d3lkpej5ajcpac.cloudfront.net/demo/bluage/PlanetsDemo-v1.zip)에서 다운로드할 수 `Planets Demo`있는 데모 애플리케이션를 사용할 수 있습니다.

# 메인프레임 런타임에 대한 온보딩 AWS 변환
<a name="ba-runtime-setup-onboard"></a>

**참고**  
메인프레임 런타임 액세스를 위한 AWS 변환이 티켓 기반 요청에서 [메인프레임 리팩터링을 위한 AWS 변환](https://bluinsights.aws/)을 통한 직접 다운로드로 전환되었습니다. 메인프레임 리팩터링을 위한 AWS 변환의 [AWS Transform for mainframe Toolbox](https://bluinsights.aws/docs/bluage-toolbox-introduction) 기능을 통해 AWS Transform for mainframe 제품에 액세스하는 새롭고 간소화된 방법을 도입했습니다.

시작하려면 메인프레임 런타임용 AWS 변환에 액세스하기 위한 온보딩을 요청하는 [AWS Support](https://support.console.aws.amazon.com/support/home) 사례를 생성합니다. 요청에 AWS 계정 ID, 사용하려는 AWS 리전, 컴퓨팅 선택, 메인프레임 런타임 버전에 대한 AWS 변환을 포함합니다. 어떤 버전이 필요한지 확실하지 않은 경우 메인프레임 전송 관리자용 AWS 변환에 문의하세요. AWS 메인프레임 현대화 리팩터링 도구에서 생성된 애플리케이션의 코드 소스가 이미 있는 경우 현대화된 코드 베이스 내의 `pom.xml` 파일에 `gapwalk.version` 태그 값을 기록해 둡니다.

**참고**  
메인프레임 런타임에 대한 AWS 변환은 알파 사전 릴리스와 릴리스의 두 가지 주요 품종으로 제공됩니다. 사용할 릴리스를 확인하려면 섹션을 참조[AWS 메인프레임 버전 관리를 위한 변환](ba-versioning.md)하거나 메인프레임 전송 관리자용 AWS 변환에 문의하세요.

## 메인프레임 런타임 AWS 변환을 위한 리전 및 버킷
<a name="ba-runtime-setup-buckets"></a>

메인프레임 런타임 아티팩트에 대한 AWS 변환은 리전별 및 컴퓨팅 선택별로 서로 다른 Amazon S3 버킷에 저장됩니다. 메인프레임 런타임 AWS 리전 용 AWS 변환용의 버킷에 액세스하려면 다음 표에 나열된 이름을 사용합니다.


| AWS 리전 | 버킷 해제 | Alpha 사전 출시 버킷 | 
| --- | --- | --- | 
|  미국 동부(오하이오)  |  aws-bluage-runtime-artifacts-055777665268-us-east-2  | aws-bluage-runtime-artifacts-dev-055777665268-us-east-2 | 
|  미국 동부(버지니아 북부)  |  aws-bluage-runtime-artifacts-139023371234-us-east-1  | aws-bluage-runtime-artifacts-dev-139023371234-us-east-1 | 
|  미국 서부(캘리포니아 북부)  |  aws-bluage-runtime-artifacts-788454048782-us-west-1  | aws-bluage-runtime-artifacts-dev-788454048782-us-west-1 | 
|  미국 서부(오리건)  |  aws-bluage-runtime-artifacts-836771190483-us-west-2  | aws-bluage-runtime-artifacts-dev-836771190483-us-west-2 | 
|  캐나다(중부)  |  aws-bluage-runtime-artifacts-637423580979-ca-central-1  |  aws-bluage-runtime-artifacts-dev-637423580979-ca-central-1  | 
|  유럽(아일랜드)  |  aws-bluage-runtime-artifacts-925278190477-eu-west-1  | aws-bluage-runtime-artifacts-dev-925278190477-eu-west-1 | 
|  유럽(런던)  |  aws-bluage-runtime-artifacts-767397831990-eu-west-1  |  aws-bluage-runtime-artifacts-dev-767397831990-eu-west-1  | 
|  유럽(파리)  |  aws-bluage-runtime-artifacts-673009995881-eu-west-3  | aws-bluage-runtime-artifacts-dev-673009995881-eu-west-3 | 
|  유럽(프랑크푸르트)  |  aws-bluage-runtime-artifacts-485196800481-eu-central-1  | aws-bluage-runtime-artifacts-dev-485196800481-eu-central-1 | 
|  유럽(스톡홀름)  |  aws-bluage-runtime-artifacts-654654484534-eu-north-1  |  aws-bluage-runtime-artifacts-dev-654654484534-eu-north-1  | 
|  유럽(밀라노)  |  aws-bluage-runtime-artifacts-654654328338-eu-south-1  |  aws-bluage-runtime-artifacts-dev-654654328338-eu-south-1  | 
|  유럽(스페인)  |  aws-bluage-runtime-artifacts-905417994954-eu-south-2  |  aws-bluage-runtime-artifacts-dev-905417994954-eu-south-2  | 
|  남아메리카(상파울루)  |  aws-bluage-runtime-artifacts-737536804457-sa-east-1  | aws-bluage-runtime-artifacts-dev-737536804457-sa-east-1 | 
|  아시아 태평양(도쿄)  |  aws-bluage-runtime-artifacts-445578176276-ap-northeast-1  | aws-bluage-runtime-artifacts-dev-445578176276-ap-northeast-1 | 
|  아시아 태평양(서울)  |  aws-bluage-runtime-artifacts-381492221498-ap-northeast-2  |  aws-bluage-runtime-artifacts-dev-381492221498-ap-northeast-2  | 
|  아시아 태평양(오사카)  |  aws-bluage-runtime-artifacts-905418229615-ap-northeast-3  |  aws-bluage-runtime-artifacts-dev-905418229615-ap-northeast-3  | 
|  아시아 태평양(싱가포르)  |  aws-bluage-runtime-artifacts-767397774613-ap-southeast-1  |  aws-bluage-runtime-artifacts-dev-767397774613-ap-southeast-1  | 
|  아시아 태평양(시드니)  |  aws-bluage-runtime-artifacts-726160321909-ap-southeast-2  | aws-bluage-runtime-artifacts-dev-726160321909-ap-southeast-2 | 
|  아시아 태평양(뭄바이)  |  aws-bluage-runtime-artifacts-905418353577-ap-south-1  |  aws-bluage-runtime-artifacts-dev-905418353577-ap-south-1  | 
|  아프리카(케이프타운)  |  aws-bluage-runtime-artifacts-992382777663-af-south-1  |  aws-bluage-runtime-artifacts-dev-992382777663-af-south-1  | 
|  이스라엘(텔아비브)  |  aws-bluage-runtime-artifacts-471112516508-il-central-1  |  aws-bluage-runtime-artifacts-dev-471112516508-il-central-1  | 

## AWS CLI 를 사용하여 버킷의 콘텐츠 나열
<a name="ba-runtime-setup-cmds"></a>

온보딩된 후 터미널에서 다음 AWS CLI 명령을 실행하여 버킷의 콘텐츠를 나열할 수 있습니다.

`aws s3 ls bucket-name `

를 이전 테이블의에 대한 버킷 이름으로 `bucket-name` 바꿉 AWS 리전 니다.

이 명령은 릴리스 버킷의 다음과 같이 메인프레임 런타임용 AWS 변환의 다양한 버전에 해당하는 폴더 목록을 반환합니다.

```
PRE 4.0.0/
PRE 4.10.0/
```

또는 빌드 버킷에 대해 다음 작업을 수행합니다.

```
PRE 4.11.0/
PRE 4.13.0/
```

지원되는 최신 버전을 사용하는 것이 좋습니다. 불가능한 경우 애플리케이션 리팩터링 단계에서 검증된 런타임 버전을 사용하세요. 특정 버전에 사용 가능한 프레임워크를 나열하려면 다음 명령을 실행합니다.

`aws s3 ls s3://bucket-name/version/Framework/`

`bucket-name`를의 버킷 이름으로 바꾸 AWS 리전 고 `version`를 원하는 버전으로 바꿉니다. 다음은 두 가지 예제입니다.

릴리스 버킷의 경우:

`aws s3 ls s3://aws-bluage-runtime-artifacts-139023371234-us-east-1/4.10.0/Framework/`

명령은 다음과 같은 zip 파일 목록을 반환합니다.

```
2025-04-08 16:11:19  152040176 aws-bluage-runtime-4.10.0.zip
2025-04-08 16:11:52  176518889 aws-bluage-webapps-4.10.0.zip
```

Alpha 시험판 버킷의 경우:

`aws s3 ls s3://aws-bluage-runtime-artifacts-dev-139023371234-us-east-1/4.11.0/Framework/`

명령은 다음과 같은 zip 파일 목록을 반환합니다.

```
2025-04-09 20:23:34  152304534 aws-bluage-runtime-4.11.0.zip
2025-04-09 20:24:07  176262381 aws-bluage-webapps-4.11.0.zip
```

## 프레임워크 다운로드
<a name="ba-runtime-setup-download"></a>

예를 들어 프레임워크를 다운로드하여 기존 Amazon EC2 인스턴스에서 메인프레임 런타임용 AWS 변환 버전을 업그레이드할 수 있습니다.

`aws s3 cp s3://bucket-name/version/Framework/ folder-of-your-choice --recursive `

위치:

folder-of-your-choice  
프레임워크를 다운로드하려는 폴더 경로.

예: `aws s3 cp s3://aws-bluage-runtime-artifacts-139023371234-us-east-1/4.0.0/Framework/ . --recursive`

이 명령으로 다음 출력이 생성됩니다.

```
download: s3://aws-bluage-runtime-artifacts-139023371234-us-east-1/4.0.0/Framework/aws-bluage-webapps-4.0.0.zip to ./aws-bluage-webapps-4.0.0.zip
download: s3://aws-bluage-runtime-artifacts-139023371234-us-east-1/4.0.0/Framework/aws-bluage-runtime-4.0.0.zip to ./aws-bluage-runtime-4.0.0.zip
```

다음과 같이 프레임워크 파일을 나열할 수 있습니다.

`ls -l`

이 명령으로 다음 출력이 생성됩니다.

```
total 230928
-rw-rw-r-- 1 cloudshell-user cloudshell-user 152040176 Apr  8 16:11 aws-bluage-runtime-4.0.0.zip
-rw-rw-r-- 1 cloudshell-user cloudshell-user 176518889 Apr  8 16:11 aws-bluage-webapps-4.0.0.zip
```

**참고**  
아티팩트에 대한 액세스는 일시적으로 중단될 수 있으며 보안상의 이유로 버전이 제거될 수 있습니다. 사용하는 아티팩트를 자신의 계정에 저장하는 것이 좋습니다. 로컬 버전은 내부 아키텍처에서 참조용으로 사용해야 합니다.

# 메인프레임 런타임 AWS 변환을 위한 인프라 설정 요구 사항
<a name="ba-infrastructure-setup"></a>

이 주제에서는 메인프레임 런타임에 대해 AWS 변환을 실행하는 데 필요한 최소 인프라 구성에 대해 설명합니다. 다음 절차에서는 선택한 컴퓨팅에서 메인프레임 런타임용 AWS 변환을 설정하여 메인프레임 런타임용 AWS 변환에 현대화된 애플리케이션을 배포하는 방법을 설명합니다. 생성한 리소스는 애플리케이션 도메인 전용 서브넷이 있는 Amazon VPC에 있어야 합니다.

**Topics**
+ [인프라 요구 사항](#infrastructure-requirements)
+ [Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 실행](#ba-running-on-ec2)
+ [Amazon EC2의 Amazon ECS에서 메인프레임 런타임에 대한 AWS 변환 실행](#ba-running-on-ecs-on-ec2)
+ [Amazon EC2의 Amazon EKS에서 메인프레임 런타임에 대한 AWS 변환 실행](#ba-running-on-eks-on-ec2)
+ [에서 관리하는 Amazon ECS에서 메인프레임 런타임에 대한 AWS 변환 실행 AWS Fargate](#ba-running-on-fargate)

## 인프라 요구 사항
<a name="infrastructure-requirements"></a>

**보안 그룹 생성**

Amazon EKS의 Amazon EC2 인스턴스에서 작업하려는 경우 Amazon EKS 클러스터 생성 프로세스에서 사용자를 대신하여 보안 그룹을 생성하므로 이 절차를 건너뜁니다. 새 보안 그룹을 생성하는 대신 다음 절차에서 해당 보안 그룹을 사용합니다.

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 왼쪽 탐색 창의 **보안**에서 **보안 그룹**을 선택합니다.

1. 가운데 창에서 **보안 그룹 생성**을 선택합니다.

1. **보안 그룹 이름** 필드에 **M2BluagePrivateLink-SG**를 입력합니다.

1. **인바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

1. **유형**에서 HTTPS를 선택합니다.

1. **소스**에 VPC CIDR을 입력합니다.

1. **아웃바운드 규칙** 섹션에서 **규칙 추가**를 선택합니다.

1. **유형**에서 HTTPS를 선택합니다.

1. **대상 주소(Destination)**에 **0.0.0.0/0**을 입력합니다.

1. **보안 그룹 생성**을 선택합니다.

**IAM 역할 생성**

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 왼쪽 탐색 창의 **액세스 관리**에서 **역할**을 선택합니다.

1. 가운데 창에서 **역할 생성**을 선택합니다.

1. **사용 사례** 섹션에서 원하는 컴퓨팅에 따라 다음 중 하나를 선택합니다.
   + **EC2**(Amazon EC2 및 Amazon EC2의 Amazon EKS의 경우)
   + **Elastic Container Service** 및 **Elastic Container Service에 대한 EC2 역할**(Amazon EC2의 Amazon ECS의 경우)
   + **Elastic Container Service** 및 **Elastic Container Service 작업**(Fargate에서 관리하는 Amazon ECS의 경우)

1. **다음**을 선택합니다.

1. 역할 이름을 입력한 다음 **Create role**(역할 생성)을 선택합니다.

## Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 실행
<a name="ba-running-on-ec2"></a>

Amazon EC2 인스턴스를 만들려면 다음 단계에 따릅니다.

**Amazon EC2 인스턴스 생성**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. **인스턴스 시작**을 선택합니다.

1. **인스턴스 유형**에서 EC2 사용 가능한 인스턴스 유형을 선택합니다.

1. **키 페어** 섹션에서 기존 키 페어를 선택하거나 새로 하나를 생성합니다.

1. **네트워크 설정** 섹션에서 **기존 보안 그룹 선택**을 선택합니다.

1. **일반 보안 그룹**의 경우 **M2BluagePrivateLink-SG**를 선택합니다.

1. **고급 세부 정보** 섹션을 확장합니다.

1. **IAM 인스턴스 프로파일**에서 앞서 생성한 IAM 역할을 선택합니다.

1. **인스턴스 시작**을 선택합니다.

**Amazon EC2 인스턴스에 애플리케이션 설치**

1. Amazon EC2 인스턴스의 상태가 **실행 중**으로 변경되면 인스턴스에 연결합니다.

1. 인스턴스에 다음 소프트웨어 구성 요소를 설치합니다(에 언급된 버전 참조[AWS 메인프레임 릴리스 정보 변환](ba-release-notes.md)).
   + Java 런타임 환경(JRE).
   + Apache Tomcat.
   + AWS 메인프레임 런타임(Amazon EC2)에 대한 변환입니다. Apache Tomcat 설치 폴더의 루트에 메인프레임 런타임용 AWS 변환을 설치합니다(일부 파일은 추가되고 다른 파일은 덮어쓰기됨).

   메인프레임 런타임 아카이브용 AWS 변환과 함께 제공되는 추가 웹 앱을 설치하려면 Apache Tomcat 서버의 보조 인스턴스를 설정하고 해당 위치에서 웹 앱 아카이브의 압축을 풉니다. 자세한 지침은 [AWS 메인프레임 런타임 아티팩트에 대한 변환](ba-runtime-artifacts.md) 섹션을 참조하세요.

## Amazon EC2의 Amazon ECS에서 메인프레임 런타임에 대한 AWS 변환 실행
<a name="ba-running-on-ecs-on-ec2"></a>

1. **Amazon EC2 인스턴스**를 기본 인프라로 하여 Amazon ECS 클러스터를 만듭니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서의 [Amazon EC2 기반 Windows 시작하기](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-ecs-ec2-v2.html#getting-started-ec2-cluster-v2)를 참조하세요.

1. 이전 단계에서 만든 IAM 역할을 지정합니다.

1. EC2 인스턴스 유형을 선택합니다.

1. **Amazon EC2 인스턴스에 대한 네트워크 설정**에서 이전 단계에서 만든 보안 그룹을 선택합니다.

## Amazon EC2의 Amazon EKS에서 메인프레임 런타임에 대한 AWS 변환 실행
<a name="ba-running-on-eks-on-ec2"></a>

1. Amazon EKS 클러스터를 생성합니다. 자세한 내용은 *Amazon EKS 사용 설명서*의 [Amazon EKS 클러스터 생성](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)을 참조하세요.

1. 앞서 언급한 것처럼 사용자를 대신하여 보안 그룹이 만들어집니다.

1. 노드 그룹을 만듭니다. 이전 단계에서 만든 IAM 역할을 지정합니다.

1. EC2 인스턴스 유형을 선택합니다.

1. Amazon EKS는 생성된 Amazon EC2 인스턴스에 보안 그룹을 자동으로 할당합니다.

## 에서 관리하는 Amazon ECS에서 메인프레임 런타임에 대한 AWS 변환 실행 AWS Fargate
<a name="ba-running-on-fargate"></a>

**AWS Fargate(서버리스)**를 기본 인프라로 하여 Amazon ECS 클러스터를 만듭니다. 자세한 내용은 *Amazon Elastic Container Service 개발자 안내서*의 [Fargate 시작하기](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html)를 참조하세요.

# AWS 메인프레임 런타임 아티팩트에 대한 변환
<a name="ba-runtime-artifacts"></a>

AWS 메인프레임 런타임 아티팩트의 변환은 현대화된 애플리케이션을 배포하고 실행하기 위한 구성 요소입니다. 이 문서에서는 사용 가능한 다양한 유형의 아티팩트, 스토리지 위치 및 액세스하는 방법을 간략하게 설명합니다.

## AWS 메인프레임 런타임 아티팩트에 대한 변환
<a name="ba-runtime-artifacts-contents"></a>

### 아티팩트 콘텐츠
<a name="ba-runtime-artifacts-artifacts"></a>

릴리스 버킷과 사전 릴리스 버킷 모두에서 다음을 확인할 수 있습니다.

**gapwalk-x.y.z.zip**

x.y.z가 버전 번호를 나타내는이 아카이브([AWS 메인프레임 버전 관리를 위한 변환](https://docs.aws.amazon.com/m2/latest/userguide/ba-versioning.html) 참조)에는 다음을 포함하여 메인프레임 애플리케이션에 대한 AWS 변환을 실행하는 데 필요한 메인프레임 런타임 구성 요소의 코어 AWS 변환이 포함되어 있습니다.


| 아티팩트 | 설명 | 형식 | 배포 폴더 | 
| --- | --- | --- | --- | 
| gapwalk-application-x.y.z.war | AWS Transform for mainframe 기본 웹 애플리케이션 Gapwalk | 전쟁 | 웹앱 | 
| \$1.jar | AWS Transform for mainframe 런타임 프레임워크 공유 라이브러리(Gapwalk) | Jars | 공유 | 
| gapwalk-\$1-x.y.z.war | AWS Transform for mainframe 추가 웹 애플리케이션(utility-pgm, 계층적 지원, ... ) | 전쟁 | webapps-extra | 
| bac-x.y.z.war / jac-x.y.z.war | AWS Transform for mainframe 관리 콘솔(독립 실행형 아님) | 전쟁 | webapps-콘솔 | 

**aws-bluage-webapps-x.y.z.zip**

x.y.z가 위와 동일한 버전 관리 체계를 따르는이 아카이브에는 AWS Transform for mainframe 관리 콘솔(독립 실행형)이 포함됩니다.
+ Blusam 데이터베이스 모니터링에 사용되는 **BAC**(Blusam 콘솔) WAR 파일입니다.
+ **JICS 데이터베이스 모니터링에 사용되는 JAC**(JICS 콘솔) WAR 파일입니다.
+ 필요한 지원 라이브러리.

### 패키지 서명 확인
<a name="ba-runtime-signed"></a>

릴리스된 zip 파일은 보안 및 신뢰성을 보장하기 위해 디지털 서명 ZIP 아카이브로 제공됩니다. 디지털 서명은 다운로드한 파일이 실제 파일인지, 변경되지 않았는지, 조직에서 공식적으로 릴리스했는지 확인하는 데 도움이 됩니다. 이렇게 하면 변조를 방지하고 악의적으로 배포될 수 있는 맬웨어 또는 손상된 파일로부터 보호할 수 있습니다.

ZIP 파일을 사용하기 전에 서명을 확인하려면 다음 명령을 사용할 수 있습니다.

`jarsigner -verify -certs -verbose aws-bluage-runtime-x.y.z.zip`

다음은 인증된 파일에 대한 결과 예제입니다.

```
...
jar verified.
```

보안 취약성 해결 방법에 대한 자세한 내용은 [AWS Transform for mainframe 릴리스 개요가 포함된 AWS Mainframe Modernization Refactor](https://docs.aws.amazon.com/m2/latest/userguide/lifecycle-m2.html#lifecycle-ba-overview)를 참조하세요.

**참고**  
CVEs 없이 제품을 출시하기 위해 노력하지만 나중에 새 CVEs 나타날 수 있습니다.

# Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 배포
<a name="ba-deploy-ec2"></a>

Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환을 설정하는 방법, 런타임 버전을 업데이트하는 방법, Amazon CloudWatch 경보를 사용하여 배포를 모니터링하는 방법,이 섹션의 주제에 라이선스 종속성을 추가하는 방법을 알아볼 수 있습니다. 이 지침은 Amazon EC2 인스턴스를 생성할 때와 Amazon EC2에서 Amazon ECS를 사용하거나 Amazon EC2에서 Amazon EKS를 사용할 때 적용됩니다.

알파 버전 5.60.0부터 메인프레임 런타임 배포를 위한 AWS 변환에는 포괄적인 README.md 파일이 있는 배포 폴더가 포함되어 있습니다. 이 가이드에서는 step-by-step Amazon EC2 배포 지침, 구성 옵션 및 문제 해결 팁을 제공합니다.

**Topics**
+ [Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 설정](ba-runtime-deploy-ec2.md)
+ [Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 업그레이드](ba-runtime-maint-ec2.md)
+ [메인프레임 런타임(Amazon EC2) Amazon CloudWatch 경보에 대한 AWS 변환 설정](ba-cw-alarms-ec2.md)
+ [Amazon EC2의 메인프레임 런타임에 대한 AWS 변환에서 라이선스 종속성 설정](ba-runtime-dependencies-ec2.md)

# Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 설정
<a name="ba-runtime-deploy-ec2"></a>

이 주제에서는 Amazon EC2에서 메인프레임 런타임용 AWS 변환을 사용하여 PlanetsDemo 샘플 애플리케이션을 설정하고 배포하는 방법을 설명합니다.

**Topics**
+ [사전 조건](#ba-runtime-deploy-prereq)
+ [설정](#ba-runtime-deploy-setup)
+ [배포된 애플리케이션 테스트](#ba-runtime-deploy-test)

## 사전 조건
<a name="ba-runtime-deploy-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ AWS CLI 구성의 단계에 AWS CLI 따라를 구성합니다. [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 지원되는 인스턴스 유형 중 하나를 사용하여 Amazon EC2 인스턴스를 만듭니다. 자세한 내용은 [Amazon EC2 Linux 인스턴스 시작하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)를 참조하세요.
+ 예를 들어 SSM을 사용하여 Amazon EC2 인스턴스에 성공적으로 연결할 수 있는지 확인하세요.
**참고**  
이 가이드 전체에서 Tomcat 설치 경로는 로 간주됩니다`/m2-anywhere/tomcat-gapwalk/velocity`. 아래 지침을 따를 때이 경로를 사용하거나 다음 지침을 원하는 경로에 맞게 조정합니다.
+ 메인프레임 런타임용 AWS 변환(Amazon EC2)을 다운로드하여 속도 디렉터리`/m2-anywhere/tomcat-gapwalk/velocity`(Tomcat 설치 폴더)로 직접 압축을 풉니다. 스토리지, 액세스 및 콘텐츠에 대한 정보를 포함하여 메인프레임 런타임 아티팩트의 AWS 변환을 검색하는 방법에 대한 지침은 섹션을 참조하세요[AWS 메인프레임 런타임 아티팩트에 대한 변환](ba-runtime-artifacts.md).
+ [PlanetsDemo](https://d3lkpej5ajcpac.cloudfront.net/demo/bluage/PlanetsDemo-v1.zip) 애플리케이션 아카이브를 다운로드하세요.
+ 아카이브의 압축을 풀고 선택한 Amazon S3 버킷에 애플리케이션을 업로드합니다.
+ JICS용 Amazon Aurora PostgreSQL 데이터베이스를 생성합니다. 메인프레임 런타임의 AWS 변환은 첫 번째 시작 시 `PlanetsDemo-v1/jics/sql/initJics.sql` 스크립트를 자동으로 실행합니다. Amazon Aurora PostgreSQL 데이터베이스를 생성하는 방법에 대한 자세한 내용은 [Aurora PostgreSQL DB 클러스터 생성 및 연결](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)을 참조하세요.

## 설정
<a name="ba-runtime-deploy-setup"></a>

PlanetsDemo 샘플 애플리케이션을 설정하려면 다음 단계를 완료하세요.

1. Amazon EC2 인스턴스에 연결하고 Apache Tomcat 설치 `conf` 폴더 아래의 폴더로 이동합니다. 편집할 `catalina.properties` 파일을 열고 `common.loader`로 시작하는 줄을 다음 줄로 바꿉니다.

   ```
   common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/shared","${catalina.home}/shared/*.jar","${catalina.home}/extra","${catalina.home}/extra/*.jar"
   ```

1. `/m2-anywhere/tomcat-gapwalk/velocity/webapps` 폴더로 이동합니다.

1. 다음 명령을 사용하여 Amazon S3 버킷의 `PlanetsDemo-v1/webapps/` 폴더에서 사용할 수 있는 PlanetsDemo 바이너리를 복사합니다.

   ```
   aws s3 cp s3://path-to-demo-app-webapps/ . --recursive
   ```
**참고**  
이전에 PlanetsDemo 아카이브의 압축을 풀었던 버킷의 올바른 Amazon S3 URI로 `path-to-demo-app-webapps`를 교체하세요.

1. `PlanetsDemo-v1/config/` 폴더의 콘텐츠를 `/m2-anywhere/tomcat-gapwalk/velocity/config/`에 복사합니다.

1. `/m2-anywhere/tomcat-gapwalk/velocity/config/application-main.yml` 파일의 다음 코드 조각에서 사전 조건의 일부로 생성한 데이터베이스에 대한 연결 정보를 제공합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)를 참조하세요.

   ```
   datasource:
      jicsDs:
        driver-class-name :  
        url: 
        username: 
        password: 
        type :
   ```

1. Apache Tomcat 서버를 시작하고 로그를 확인합니다.

   ```
   /m2-anywhere/tomcat-gapwalk/velocity/startup.sh
   
   tail -f /m2-anywhere/tomcat-gapwalk/velocity/logs/catalina.log
   ```

   C로 시작한 다음 숫자가 나오는 오류 코드(예: CXXXX)를 발견한 경우 오류 메시지를 기록해 둡니다. 예를 들어 오류 코드 C5102는 잘못된 인프라 구성을 나타내는 일반적인 오류입니다.

## 배포된 애플리케이션 테스트
<a name="ba-runtime-deploy-test"></a>

PlanetsDemo 애플리케이션을 테스트하는 방법의 예는 [PlanetsDemo 애플리케이션을 테스트하세요](ba-runtime-test-planetsdemo.md) 섹션을 참조하세요.

# Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 업그레이드
<a name="ba-runtime-maint-ec2"></a>

이 가이드에서는 Amazon EC2에서 메인프레임 런타임의 AWS 변환을 업그레이드하는 방법을 설명합니다.

**Topics**
+ [사전 조건](#ba-runtime-maint-prereq)
+ [Amazon EC2 인스턴스에서 메인프레임 런타임에 대한 AWS 변환 업그레이드](#ba-runtime-maint-copy-files)
+ [컨테이너에서 메인프레임 런타임에 대한 AWS 변환 업그레이드](#ba-runtime-maint-copy-files)

## 사전 조건
<a name="ba-runtime-maint-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ 버전에 대한 특정 지침이 있는지 확인하려면 [메인프레임용 AWS 변환 지침 업그레이드](ba-migration-notes.md) 섹션을 참조하세요.
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 메인프레임 런타임 설치를 위한 기존 AWS 변환이 있는 Amazon EC2 인스턴스가 있는지 확인합니다. 자세한 내용은 [Amazon EC2 Linux 인스턴스 시작하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)를 참조하세요.
+ 예를 들어 SSM을 사용하여 Amazon EC2 인스턴스에 성공적으로 연결할 수 있는지 확인하세요.
+ 업그레이드하려는 메인프레임 런타임 버전의 AWS 변환을 다운로드합니다. 프레임워크는 `gapwalk-x.y.z.zip` 및 라는 두 개의 아카이브 파일로 구성됩니다`aws-bluage-webapps-x.y.z.zip`. 자세한 내용은 [AWS 메인프레임 런타임 아티팩트에 대한 변환](ba-runtime-artifacts.md) 단원을 참조하십시오.

## Amazon EC2 인스턴스에서 메인프레임 런타임에 대한 AWS 변환 업그레이드
<a name="ba-runtime-maint-copy-files"></a>

메인프레임 런타임의 AWS 변환을 업그레이드하려면 다음 단계를 완료하세요.

1. Amazon EC2 인스턴스에 연결하고 다음 명령을 실행하여 사용자를 **su**로 변경합니다.

   ```
   sudo su
   ```

   이 자습서의 명령을 실행하려면 최고 사용자 권한이 필요합니다.

1. 바이너리를 추출하려면 다음 명령을 사용합니다. 각 폴더에서 명령을 실행합니다.

   ```
   unzip gapwalk-x.y.z.zip
   unzip aws-bluage-webapps-x.y.z.zip
   ```

1. 다음 명령을 사용하여 Tomcat 서비스를 중지합니다.

   ```
   systemctl stop tomcat.service
   systemctl stop tomcat-webapps.service
   ```

1. `<your-tomcat-path>/shared/`의 내용을 `gapwalk-x.y.z/shared/`의 내용으로 바꾸세요.

1. `<your-tomcat-path>/webapps/gapwalk-application.war`를 `gapwalk-x.y.z/webapps/gapwalk-application.war`로 바꿉니다.

1. `<your-tomcat-path>/webapps/`의 war 파일, 즉 `bac.war` 및 `jac.war`를 `aws-bluage-webapps-x.y.z/velocity/webapps/`의 같은 파일로 바꾸세요.

1. 다음 명령을 실행하여 Tomcat 서비스를 시작합니다.

   ```
   systemctl start tomcat.service
   systemctl start tomcat-webapps.service
   ```

1. 로그를 확인합니다.

다음 명령을 실행하여 배포된 애플리케이션의 상태를 확인합니다.

```
curl http://localhost:8080/gapwalk-application/
```

다음 메시지가 나타납니다.

```
Jics application is running
```

```
curl http://localhost:8181/jac/api/services/rest/jicsservice/
```

다음 메시지가 나타납니다.

```
Jics application is running
```

```
curl http://localhost:8181/bac/api/services/rest/bluesamserver/serverIsUp
```

응답은 비워 두어야 합니다.

메인프레임 런타임에 대한 AWS 변환이 성공적으로 업그레이드되었습니다.

## 컨테이너에서 메인프레임 런타임에 대한 AWS 변환 업그레이드
<a name="ba-runtime-maint-copy-files"></a>

메인프레임 런타임의 AWS 변환을 업그레이드하려면 다음 단계를 완료하세요.

1. 메인프레임 런타임 버전에 대해 원하는 AWS 변환을 사용하여 도커 이미지를 다시 빌드합니다. 지침은 [Amazon EC2에서 메인프레임 런타임에 대한 AWS 변환 설정](ba-runtime-deploy-ec2.md) 섹션을 참조하세요.

1. Docker 이미지를 Amazon ECR 리포지토리에 푸시합니다.

1. Amazon ECS 또는 Amazon EKS 서비스를 중지했다가 다시 시작합니다.

1. 로그를 확인합니다.

메인프레임 런타임에 대한 AWS 변환이 성공적으로 업그레이드되었습니다.

# 메인프레임 런타임(Amazon EC2) Amazon CloudWatch 경보에 대한 AWS 변환 설정
<a name="ba-cw-alarms-ec2"></a>

CloudWatch를 설정하여 애플리케이션 로그를 수신하고 경보를 추가하여 가능한 오류를 경고할 수 있습니다. 이렇게 하면 배포된 애플리케이션에 예외가 발생할 때마다 더 많은 알림이 표시됩니다. 다음 섹션에서는 CloudWatch 로깅 및 경보 설정의 구성을 이해하고 배우는 데 도움이 됩니다.

## CloudWatch 로깅 활성화
<a name="ba-cw-log-deploy"></a>

CloudWatch 로깅을 활성화하려면 다음 섹션에 제공된 구성 템플릿을 사용하여 구성 폴더에 `logback-cloudwatch.xml` 파일을 생성합니다. 그런 다음 다음 줄의 주석 처리를 취소하여 파일에서이 `application-main.yml` 파일을 참조합니다.

```
# logging:
#  config: classpath:logback-cloudwatch.xml
```

 이러한 줄의 주석 처리를 해제하면 CloudWatch 로깅이 활성화되고 다음 섹션에 설명된 대로 추가로 구성할 수 있습니다.

## CloudWatch 로깅 구성
<a name="config-cw-log"></a>

다음 템플릿을 사용하여 `logback-cloudwatch.xml` 파일을 생성합니다.

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS,UTC}  %level --- [%thread{15}] %logger{40} : %msg%n%xThrowable</pattern>
        </encoder>
    </appender>

    <appender name="cloudwatch" class="com.netfective.bluage.runtime.cloudwatchlogger.CloudWatchAppender">
        <logGroup>BluAgeRuntimeOnEC2-Logs</logGroup>
        <logStream>%date{yyyy-MM-dd,UTC}.%instanceId.%uuid</logStream>
        <layout>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS,UTC}  %level --- [%thread{15}] %logger{40} : %msg%n%xThrowable</pattern>
        </layout>
        <appender-ref ref="console" />
    </appender>

    <root level="INFO">
        <appender-ref ref="cloudwatch" />
    </root>
</configuration>
```

<appender name="cloudwatch"/> 요소 외부의 모든 항목은 표준 로그백 구성입니다. 이 파일에는 두 개의 펜더가 있습니다. 하나는 로그를 콘솔로 보내는 콘솔 어펜더이고 다른 하나는 로그를 CloudWatch로 보내는 CloudWatch 어펜더입니다.

`root` 요소의 `level` 속성은 전체 애플리케이션의 로깅 수준을 지정합니다.

<appender name="cloudwatch"/> 태그 내의 필수 값은 다음과 같습니다.
+ <logGroup/>: CloudWatch에서 로그 그룹의 이름을 설정합니다. 값이 지정하지 않은 경우 기본값은 `BluAgeRuntimeOnEC2-Logs`입니다. 로그 그룹이 존재하지 않으면 자동 생성됩니다. 이 동작은 아래에서 설명하는 구성을 통해 변경할 수 있습니다.
+ <logStream/>: CloudWatch의 logStream(로그 그룹 내부)의 이름을 설정합니다.

선택적 값: 
+ <region/>: 로그 스트림이 기록될 지역을 재정의합니다. 기본적으로 로그는 EC2 인스턴스와 동일한 리전에 이동합니다.
+ <layout/>: 로그 메시지가 사용할 패턴.
+ <maxbatchsize/>: 작업당 CloudWatch로 전송할 수 있는 최대 로그 메시지 수입니다.
+ <maxbatchtimemillis/>: CloudWatch 로그를 기록하는 데 걸리는 시간(밀리초)입니다.
+ <maxqueuewaittimemillis/>: 내부 로그 대기열에 요청을 삽입하려고 시도하는 데 걸리는 시간(밀리초).
+ <internalqueuesize/>: 내부 대기열의 최대 크기입니다.
+ <createlogdests/>: 로그 그룹과 로그 스트림이 없는 경우 이를 생성합니다.
+ <initialwaittimemillis/>: 시작 시 스레드를 휴면 상태로 만들려는 시간입니다. 이 초기 대기 시간 동안 로그가 처음 누적될 수 있습니다.
+ <maxeventmessagesize/>: 로그 이벤트의 최대 크기. 이 크기를 초과하는 로그는 전송되지 않습니다.
+ <truncateeventmessages/>: 너무 긴 메시지는 잘라냅니다.
+ <printrejectedevents/>: 비상 첨부 파일을 사용합니다.

## CloudWatch 설정
<a name="cw-setup"></a>

위의 구성에서 로그를 CloudWatch로 올바르게 푸시하려면 Amazon EC2 IAM 인스턴스 프로파일 역할을 업데이트하여 `BluAgeRuntimeOnEC2-Logs` 로그 그룹 및 해당 로그 스트림에 대한 추가 권한을 부여하세요.
+ `logs:CreateLogStream`
+ `logs:DescribeLogStreams`
+ `logs:CreateLogGroup`
+ `logs:PutLogEvents`
+ `logs:DescribeLogGroups`

## 경보 설정
<a name="alarm-setup"></a>

CloudWatch 로그 덕분에 애플리케이션과 필요에 따라 다양한 지표와 경보를 구성할 수 있습니다. 특히, 사용 알림에 대한 사전 경보를 설정하여 애플리케이션이 유예 기간에 빠질 수 있는 오류가 발생할 경우 경고를 보내고 결국에는 아예 작동하지 않도록 할 수 있습니다. 이를 위해 로그에 "Error C5001" 문자열과 관련된 지표를 추가할 수 있습니다.이 지표는 메인프레임 제어 시스템용 AWS 변환에 대한 연결 오류를 강조 표시합니다. 그런 다음 이 지표에 반응하는 경보를 정의할 수 있습니다.

# Amazon EC2의 메인프레임 런타임에 대한 AWS 변환에서 라이선스 종속성 설정
<a name="ba-runtime-dependencies-ec2"></a>

이 가이드에서는 Amazon EC2에서 메인프레임 런타임용 AWS 변환과 함께 사용할 수 있는 추가 라이선스 종속성을 설정하는 방법을 설명합니다.

**Topics**
+ [사전 조건](#ba-runtime-dependencies-prereq)
+ [설치 단계](#ba-runtime-dependencies-overview)

## 사전 조건
<a name="ba-runtime-dependencies-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 메인프레임 런타임용 AWS 변환(Amazon EC2)이 설치된 Amazon EC2 인스턴스가 있는지 확인합니다. 자세한 내용은 [Amazon EC2 Linux 인스턴스 시작하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)를 참조하세요.
+ 예를 들어 SSM을 사용하여 Amazon EC2 인스턴스에 성공적으로 연결할 수 있는지 확인하세요.
+ 소스에서 다음 종속성을 가져오세요.

### Oracle 데이터베이스
<a name="ba-runtime-dependencies-prereq-oracle"></a>

[Oracle 데이터베이스 드라이버](https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html)를 제공하세요. 버전 **ojdbc11-23.3.0.23.09.jar**로 메인프레임 런타임용 AWS 변환(Amazon EC2) 기능을 테스트했지만 최신 버전이 호환될 수 있습니다. Amazon EC2

### IBM MQ 연결
<a name="ba-runtime-dependencies-prereq-mq"></a>

[IBM MQ 클라이언트](https://www.ibm.com/support/pages/mqc91-ibm-mq-clients)를 공급하세요. 버전 **com.ibm.mq.jakarta.client-9.3.4.1.jar**로 메인프레임 런타임(Amazon EC2)용 AWS 변환 기능을 테스트했지만 최신 버전이 호환될 수 있습니다.

이 종속성 버전에서는 다음과 같은 전이적 종속성도 제공합니다.
+ bcprov-jdk15to18-1.76.jar
+ bcpkix-jdk15to18-1.76.jar
+ bcutil-jdk15to18-1.76.jar

### DDS 프린터 파일
<a name="ba-runtime-dependencies-prereq-dds"></a>

Jasper 보고서 라이브러리(https://community.jaspersoft.com/download-jaspersoft/community-edition)를 제공합니다. **jasperreports-6.16.0.jar**을 사용하여 메인프레임 런타임용 AWS 변환(Amazon EC2) 기능을 테스트했지만 최신 버전이 호환될 수 있습니다.

이 종속성 버전에서는 다음과 같은 전이적 종속성도 제공합니다.
+ castor-core-1.4.1.jar
+ castor-xml-1.4.1.jar
+ commons-digester-2.1.jar
+ ecj-3.21.0.jar
+ itext-2.1.7.js8.jar
+ javax.inject-1.jar
+ jcommon-1.0.23.jar
+ jfreechart-1.0.19.jar
+ commons-beanutils-1.9.4.jar
+ commons-collections-3.2.2.jar

## 설치 단계
<a name="ba-runtime-dependencies-overview"></a>

존속성 설치를 위해 다음 단계를 완료합니다.

1. Amazon EC2 인스턴스에 연결하고 다음 명령을 실행하여 사용자를 **su**로 변경합니다.

   ```
   sudo su
   ```

   이 자습서의 명령을 실행하려면 최고 사용자 권한이 필요합니다.

1. `<your-tomcat-path>/extra/` 폴더로 이동합니다.

   ```
   cd <your-tomcat-path>/extra/
   ```

1. 필요에 따라 위의 종속성을 이 폴더에 복사하세요.
**참고**  
Oracle 호스팅 데이터베이스가 있는 JAC 및 BAC 웹앱의 경우이 폴더에 Oracle 데이터베이스 드라이버(ojdbc)를 포함해야 합니다.

1. 다음 명령을 실행하여 tomcat.서비스를 중지하고 시작합니다.

   ```
   systemctl stop tomcat.service
   ```

   ```
   systemctl start tomcat.service
   ```

1. 서비스 상태를 확인하여 실행 중인지 확인합니다.

   ```
   systemctl status tomcat.service
   ```

1. 로그를 확인합니다.

# Amazon ECS 및 Amazon EKS의 컨테이너에 메인프레임 런타임에 대한 AWS 변환 배포
<a name="ba-deploy-container"></a>

이 섹션의 주제를 사용하여 컨테이너에서 메인프레임 런타임에 대한 AWS 변환을 설정하여 Amazon ECS(Amazon EC2 또는 관리형 AWS Fargate) 및 Amazon EC2에서 관리하는 Amazon EKS에 배포하는 방법, 런타임 버전을 업데이트하는 방법, Amazon CloudWatch 경보를 사용하여 배포를 모니터링하는 방법, 라이선스가 부여된 종속성을 추가하는 방법을 알아볼 수 있습니다.

**참고**  
이는에서 관리하는 Amazon EKS와 호환되지 않습니다 AWS Fargate.

**Topics**
+ [컨테이너에서 메인프레임 런타임에 대한 AWS 변환 설정](ba-runtime-deploy-container.md)
+ [컨테이너의 메인프레임 런타임에 대한 AWS 변환 업그레이드](ba-runtime-maint-container.md)
+ [컨테이너의 메인프레임 런타임에 대한 AWS 변환을 위한 Amazon CloudWatch 경보 설정](ba-cw-alarms-container.md)
+ [컨테이너의 메인프레임 런타임에 대한 AWS 변환에서 라이선스 종속성 설정](ba-runtime-dependencies-container.md)

# 컨테이너에서 메인프레임 런타임에 대한 AWS 변환 설정
<a name="ba-runtime-deploy-container"></a>

이 주제에서는 Docker 컨테이너에서 메인프레임 런타임용 AWS 변환을 사용하여 PlanetsDemo 샘플 애플리케이션을 설정하고 배포하는 방법을 설명합니다.

AWS 컨테이너의 메인프레임 런타임에 대한 변환은 Amazon EC2에서 관리하는 Amazon ECS,에서 관리하는 Amazon ECS AWS Fargate및 Amazon EC2에서 관리하는 Amazon EKS에 사용할 수 있습니다. 에서 관리하는 Amazon EKS와 호환되지 않습니다 AWS Fargate.

**Topics**
+ [사전 조건](#ba-runtime-deploy-prereq)
+ [설정](#ba-runtime-deploy-setup)
+ [배포된 애플리케이션 테스트](#ba-runtime-deploy-test)

## 사전 조건
<a name="ba-runtime-deploy-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ AWS CLI 구성의 단계에 AWS CLI 따라를 구성합니다. [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 메인프레임 런타임 바이너리에 대한 AWS 변환을 다운로드합니다. 지침은 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md) 섹션을 참조하세요.
+ Apache Tomcat 바이너리를 다운로드합니다.
+ [PlanetsDemo](https://d3lkpej5ajcpac.cloudfront.net/demo/bluage/PlanetsDemo-v1.zip) 애플리케이션 아카이브를 다운로드하세요.
+ JICS용 Amazon Aurora PostgreSQL 데이터베이스를 생성하고 해당 데이터베이스에서 `PlanetsDemo-v1/jics/sql/initJics.sql` 쿼리를 실행합니다. Amazon Aurora PostgreSQL 데이터베이스를 생성하는 방법에 대한 자세한 내용은 [Aurora PostgreSQL DB 클러스터 생성 및 연결](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)을 참조하세요.

## 설정
<a name="ba-runtime-deploy-setup"></a>

PlanetsDemo 샘플 애플리케이션을 설정하려면 다음 단계를 완료하세요.

1. Apache Tomcat 바이너리를 다운로드한 후 콘텐츠를 추출하고 `conf` 폴더로 이동합니다. 편집할 `catalina.properties` 파일을 열고 `common.loader`로 시작하는 줄을 다음 줄로 바꿉니다.

   ```
   common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/shared","${catalina.home}/shared/*.jar","${catalina.home}/extra","${catalina.home}/extra/*.jar"
   ```

1. tar 명령을 사용하여 `tar.gz` 아카이브를 빌드하여 Apache Tomcat 폴더를 압축합니다.

1. 제공된 런타임 바이너리와 Apache Tomcat 서버 바이너리를 기반으로 사용자 지정 이미지를 빌드할 [Dockerfile](https://docs.docker.com/engine/reference/builder/)을 준비합니다. 다음 예제 Dockerfile을 참조하세요. 목표는 Apache Tomcat을 설치한 다음 Apache Tomcat 설치 디렉터리의 루트에서 추출된 AWS Transform for mainframe 런타임(에서 관리하는 Amazon ECS용 AWS Fargate)을 설치한 다음 PlanetsDemo라는 현대화된 애플리케이션 샘플을 설치하는 것입니다.
**참고**  
이 예제 Dockerfile에서 사용되는 install-gapwalk.sh 및 install-app.sh 스크립트의 내용은 Dockerfile 뒤에 나열됩니다.

   ```
   FROM --platform=linux/x86_64 amazonlinux:2
   
   RUN mkdir -p /workdir/apps
   WORKDIR /workdir
   COPY install-gapwalk.sh .
   COPY install-app.sh .
   RUN chmod +x install-gapwalk.sh
   RUN chmod +x install-app.sh
   
   # Install Java and AWS CLI v2-y
   RUN yum install sudo java-17-amazon-corretto unzip tar -y
   RUN sudo yum remove awscli -y
   RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
   RUN sudo unzip awscliv2.zip
   RUN sudo ./aws/install
   
   # Installation dir
   RUN mkdir -p /usr/local/velocity/installation/gapwalk
   # Copy PlanetsDemo archive to a dedicated apps dir
   COPY PlanetsDemo-v1.zip /workdir/apps/
   
   # Copy resources (tomcat, blu age runtime) to installation dir
   COPY tomcat.tar.gz /usr/local/velocity/installation/tomcat.tar.gz
   COPY aws-bluage-runtime-4.x.x.zip /usr/local/velocity/installation/gapwalk/gapwalk.zip
   
   # run relevant installation scripts
   RUN ./install-gapwalk.sh
   RUN ./install-app.sh
   
   EXPOSE 8080
   EXPOSE 8081
   # ...
   
   WORKDIR /bluage/tomcat.gapwalk/velocity
   # Run Command to start Tomcat server
   CMD ["sh", "-c", "sudo bin/catalina.sh run"]
   ```

   다음은 `install-gapwalk.sh.`의 내용입니다.

   ```
   # Vars
   TEMP_DIR=/bluage-on-fargate/tomcat.gapwalk/temp
   
   # Install
   echo "Installing Gapwalk and Tomcat"
   sudo rm -rf /bluage-on-fargate
   mkdir -p ${TEMP_DIR}
   # Copy AWS Transform for mainframe runtime and tomcat archives to temporary extraction dir
   sudo cp /usr/local/velocity/installation/gapwalk/gapwalk.zip ${TEMP_DIR}
   sudo cp /usr/local/velocity/installation/tomcat.tar.gz ${TEMP_DIR}
   # Create velocity dir
   mkdir -p /bluage/tomcat.gapwalk/velocity
   # Extract tomcat files
   tar -xvf ${TEMP_DIR}/tomcat.tar.gz -C ${TEMP_DIR}
   # Copy all tomcat files to velocity dir
   cp -fr ${TEMP_DIR}/apache-tomcat-10.x.x/* /bluage/tomcat.gapwalk/velocity
   # Remove default webapps of Tomcat
   rm -f /bluage-on-fargate/tomcat.gapwalk/velocity/webapps/*
   # Extract AWS Transform for mainframe runtime at velocity dir
   unzip ${TEMP_DIR}/gapwalk.zip -d /bluage/tomcat.gapwalk
   # Remove temporary extraction dir
   sudo rm -rf ${TEMP_DIR}
   ```

   다음은 `install-app.sh`의 내용입니다.

   ```
   #!/bin/sh
   
   APP_DIR=/workdir/apps
   TOMCAT_GAPWALK_DIR=/bluage-on-fargate/tomcat.gapwalk
   
   unzip ${APP_DIR}/PlanetsDemo-v1.zip -d ${APP_DIR}
   cp -r ${APP_DIR}/webapps/* ${TOMCAT_GAPWALK_DIR}/velocity/webapps/
   cp -r ${APP_DIR}/config/* ${TOMCAT_GAPWALK_DIR}/velocity/config/
   ```

1. `{TOMCAT_GAPWALK_DIR}/config` 폴더에 있는 `application-main.yml` 파일의 다음 코드 조각에서 사전 조건의 일부로 생성한 데이터베이스의 연결 정보를 제공합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster)를 참조하세요.

   ```
   datasource:
      jicsDs:
        driver-class-name :  
        url: 
        username: 
        password: 
        type :
   ```

1. 이미지를 구축하여 Amazon ECR 리포지토리에 푸시합니다. 자세한 내용은 Amazon Elastic Container Registry 사용 설명서의 [Docker 이미지 푸시](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)를 참조하세요. 그런 다음 상황에 따라 Amazon ECR 이미지를 사용하여 Amazon EKS 포드 또는 Amazon ECS 작업 정의를 만들고 클러스터에 배포합니다. 예를 들어 이러한 작업을 생성하는 방법은 *Amazon Elastic Container Service(Amazon ECS) 개발자 안내서*의 [콘솔을 사용하여 작업 정의 생성](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html) 및 *Amazon EKS 사용 설명서*의 [샘플 애플리케이션 배포](https://docs.aws.amazon.com/eks/latest/userguide/sample-deployment.html)를 참조하세요.

1.  특히 ** AWS Fargate에서 관리하는 Amazon ECS**의 경우 작업 정의를 만들 때 초기 인프라 설정의 일부로 만든 IAM 역할을 사용합니다. 그런 다음 서비스를 생성하는 동안 **네트워킹** 섹션을 확장하고 초기 인프라 설정의 일부로 만든 VPC, 서브넷 및 보안 그룹을 구성합니다. [AWS Transform for mainframe 런타임에 대한 인프라 설정 요구 사항을 ](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)참조하세요.

## 배포된 애플리케이션 테스트
<a name="ba-runtime-deploy-test"></a>

PlanetsDemo 애플리케이션을 테스트하는 방법의 예는 [PlanetsDemo 애플리케이션을 테스트하세요](ba-runtime-test-planetsdemo.md) 섹션을 참조하세요.

# 컨테이너의 메인프레임 런타임에 대한 AWS 변환 업그레이드
<a name="ba-runtime-maint-container"></a>

이 가이드에서는 컨테이너에서 메인프레임 런타임의 AWS 변환을 업그레이드하는 방법을 설명합니다. 이렇게 하려면 먼저 몇 가지 사전 조건을 완료한 다음 Docker 이미지로 작업하여 메인프레임 런타임의 AWS 변환을 업그레이드해야 합니다.

**Topics**
+ [사전 조건](#ba-runtime-maint-prereq)
+ [메인프레임 런타임에 대한 AWS 변환 업그레이드](#ba-runtime-maint-copy-files)

## 사전 조건
<a name="ba-runtime-maint-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 업그레이드하려는 메인프레임 런타임용 AWS 변환 버전을 다운로드합니다. 자세한 내용은 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md) 단원을 참조하십시오. 프레임워크는 `aws-bluage-runtime-x.y.z.zip` 및 `aws-bluage-webapps-x.y.z.zip`의 두 가지 바이너리 파일로 구성됩니다.

## 메인프레임 런타임에 대한 AWS 변환 업그레이드
<a name="ba-runtime-maint-copy-files"></a>

메인프레임 런타임의 AWS 변환을 업그레이드하려면 다음 단계를 완료하세요.

1. 메인프레임 런타임 버전에 대해 원하는 AWS 변환을 사용하여 도커 이미지를 다시 빌드합니다. 지침은 [컨테이너에서 메인프레임 런타임에 대한 AWS 변환 설정](ba-runtime-deploy-container.md) 섹션을 참조하세요.

1. Docker 이미지를 Amazon ECR 리포지토리에 푸시합니다.

1. Amazon ECS 또는 Amazon EKS 서비스를 중지했다가 다시 시작합니다.

1. 로그를 확인합니다.

메인프레임 런타임에 대한 AWS 변환이 성공적으로 업그레이드되었습니다.

# 컨테이너의 메인프레임 런타임에 대한 AWS 변환을 위한 Amazon CloudWatch 경보 설정
<a name="ba-cw-alarms-container"></a>

배포된 애플리케이션에 예외가 발생할 때마다 CloudWatch에서 더 많은 알림을 표시하도록 설정할 수 있습니다. 이렇게 하면 CloudWatch 로 리디렉션된 애플리케이션 로그를 모니터링하고 오류 가능성을 경고하는 경보를 추가할 수 있습니다.

## 경보 설정
<a name="alarm-setup"></a>

CloudWatch 로그를 사용하면 애플리케이션과 필요에 따라 다양한 지표와 경보를 구성할 수 있습니다.

특히 클러스터 생성 중에 직접 사용량 알림에 대한 사전 경보를 설정하여 오류가 발생할 때 알림을 받을 수 있습니다. 메인프레임 제어 시스템용 AWS 변환에 대한 연결 오류를 강조 표시하려면 로그에 "Error C" 문자열과 관련된 지표를 추가합니다. 그런 다음 이 지표에 반응하는 경보를 정의할 수 있습니다.

# 컨테이너의 메인프레임 런타임에 대한 AWS 변환에서 라이선스 종속성 설정
<a name="ba-runtime-dependencies-container"></a>

이 주제에서는 컨테이너에서 메인프레임 런타임용 AWS 변환과 함께 사용할 수 있는 라이선스가 부여된 추가 종속성을 설정하는 방법을 설명합니다.

**Topics**
+ [사전 조건](#ba-runtime-dependencies-prereq)
+ [개요](#ba-runtime-dependencies-overview)

## 사전 조건
<a name="ba-runtime-dependencies-prereq"></a>

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.
+ [AWS 메인프레임 런타임 사전 조건에 대한 변환](ba-runtime-setup-prereq.md) 및 [메인프레임 런타임에 대한 온보딩 AWS 변환](ba-runtime-setup-onboard.md)를 완료합니다.
+ 소스에서 다음 종속성을 가져오세요.

### Oracle 데이터베이스
<a name="ba-runtime-dependencies-prereq-oracle"></a>

[Oracle 데이터베이스 드라이버]( https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html)를 제공하세요. 예를 들어, **ojdbc11-23.3.0.23.09.jar**이 있습니다.

### IBM MQ 연결
<a name="ba-runtime-dependencies-prereq-mq"></a>

[IBM MQ 클라이언트](https://www.ibm.com/support/pages/mqc91-ibm-mq-clients)를 공급하세요. 예를 들어, **com.ibm.mq.jakarta.client-9.3.4.1.jar**이 있습니다.

이 종속성 버전에서는 다음과 같은 전이적 종속성도 제공합니다.
+ bcprov-jdk15to18-1.76.jar
+ bcpkix-jdk15to18-1.76.jar
+ bcutil-jdk15to18-1.76.jar

### DDS 프린터 파일
<a name="ba-runtime-dependencies-prereq-dds"></a>

Jasper 보고서 라이브러리(https://community.jaspersoft.com/download-jaspersoft/community-edition)를 제공합니다. 예를 들어, **jasperreports-6.16.0.jar**이 있지만 최신 버전이 호환될 수 있습니다.

이 종속성 버전에서는 다음과 같은 전이적 종속성도 제공합니다.
+ castor-core-1.4.1.jar
+ castor-xml-1.4.1.jar
+ commons-digester-2.1.jar
+ ecj-3.21.0.jar
+ itext-2.1.7.js8.jar
+ javax.inject-1.jar
+ jcommon-1.0.23.jar
+ jfreechart-1.0.19.jar
+ commons-beanutils-1.9.4.jar
+ commons-collections-3.2.2.jar

## 개요
<a name="ba-runtime-dependencies-overview"></a>

존속성 설치를 위해 다음 단계를 완료합니다.

1. 필요에 따라 위의 종속 항목을 Docker 이미지 빌드 폴더에 복사합니다.

1. JICS 데이터베이스가 Oracle에서 호스팅되는 경우에서 Oracle 데이터베이스 드라이버를 제공합니다`your-tomcat-path/extra`.

1. Dockerfile에서 이러한 종속성을 `your-tomcat-path/extra`에 복사합니다.

1. Docker 이미지를 구축하고 Amazon ECR에 푸시합니다.

1. Amazon ECS 또는 Amazon EKS 서비스를 중지했다가 다시 시작합니다.

1. 로그를 확인합니다.

# PlanetsDemo 애플리케이션을 테스트하세요
<a name="ba-runtime-test-planetsdemo"></a>

배포된 PlanetsDemo 애플리케이션의 상태를 확인하려면 `load-balancer-DNS-name`, `listener-port` 및 `web-binary-name`을 해당 설정에 맞는 올바른 값으로 바꾼 후 다음 명령을 실행합니다.

```
curl http://load-balancer-DNS-name:listener-port/gapwalk-application/
```

애플리케이션이 실행 중인 경우 다음과 같은 출력 메시지가 표시됩니다. `Jics application is running` 

그리고 다음 명령을 실행합니다.

```
curl http://load-balancer-DNS-name:listener-port/jac/api/services/rest/jicsservice/
```

애플리케이션이 실행 중인 경우 다음과 같은 출력 메시지가 표시됩니다. `Jics application is running` 

```
Jics application is running
```

를 구성한 경우 다음 명령을 실행할 때 빈 응답을 예상할 Blusam수 있습니다.

```
curl http://load-balancer-DNS-name:listener-port/bac/api/services/rest/bluesamserver/serverIsUp
```

웹 바이너리의 이름을 기록해 둡니다(변경되지 않은 경우 PlanetsDemo-web-1.0.0). PlanetsDemo 애플리케이션에 액세스하려면 다음 형식의 URL을 사용하세요.

```
https://load-balancer-DNS-name:listener-port/web-binary-name
```

PlanetsDemo 애플리케이션이 시작되면 홈 페이지가 표시됩니다.

![\[홈 페이지\]](http://docs.aws.amazon.com/ko_kr/m2/latest/userguide/images/PlanetsDemo-homepage.png)


필터 텍스트 상자에 을 입력한 후 Enter 키를 누릅니다. 데이터 조회 페이지가 표시됩니다.

![\[데이터 조회 페이지\]](http://docs.aws.amazon.com/ko_kr/m2/latest/userguide/images/PlanetsDemo-app.png)


예를 들어 PlanetsDemo 이름 필드에 EARTH를 입력한 다음 Enter 키를 누릅니다. 입력한 행성의 페이지가 표시됩니다.

![\[EARTH 페이지\]](http://docs.aws.amazon.com/ko_kr/m2/latest/userguide/images/PlanetsDemo-EARTH.png)
