

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-deploy-container"></a>

このトピックでは、 AWS Transform for mainframe Runtime を使用して PlanetsDemo サンプルアプリケーションを Docker コンテナにセットアップしてデプロイする方法について説明します。

AWS コンテナでのメインフレームランタイムの変換は、Amazon EC2 によって管理される Amazon ECS、 によって管理される Amazon ECS AWS Fargate、および Amazon EC2 によってAmazon EC2 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)をダウンロードします。
+ Amazon Aurora PostgreSQL データベースを JICS 用に作成し、それに対して `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 コマンドを使用して Apache Tomcat フォルダを圧縮し、"tar.gz" アーカイブを作成します。

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 Runtime のインフラストラクチャセットアップ要件](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)」を参照してください。