

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)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: でコードを Assembler から COBOL に変換する AWS Mainframe Modernization
<a name="assembler-conversion-steps"></a>

このドキュメントをステップバイステップガイドとして使用することで、メインフレームモダナイゼーション Assembler コードを COBOL に変換する方法を理解できます。これに加え、「[Assembler から COBOL ワークショップへの自動コード変換](https://catalog.workshops.aws/awsm2ccm-assembler-cobol/en-US)」を参照することで、変換プロセスの詳細を確認することもできます。

**Contents**
+ [前提条件](#tutorial-assembler-conversion-prerequisites)
+ [ステップ 1: ビルドアセットを と共有する AWS アカウント](#tutorial-assembler-conversion-share-assets)
+ [ステップ 1: Amazon S3 バケットを作成する](#tutorial-assembler-conversion-create-bucket)
+ [ステップ 3: IAM ポリシーを作成する](#tutorial-assembler-conversion-IAM-policy)
+ [ステップ 4: IAM ロールを作成する](#tutorial-assembler-conversion-IAM-role)
+ [ステップ 5: IAM ポリシーを IAM ロールにアタッチする](#tutorial-assembler-conversion-attach)
+ [ステップ 6: CodeBuild プロジェクトを作成する](#tutorial-assembler-conversion-create-project)
  + [ステップ 6.1: Define プロジェクトを作成する](#tutorial-conversion-define-project)
  + [ステップ 6.2: Code Analysis プロジェクトを作成する](#tutorial-conversion-analysis-project)
  + [ステップ 6.3: Code Conversion プロジェクトを作成する](#tutorial-conversion-code-project)
+ [ステップ 7: プロジェクトを定義してソースコードをアップロードする](#tutorial-assembler-conversion-define-upload)
+ [ステップ 8: 分析を実行し、レポートを理解する](#tutorial-assembler-conversion-run-analysis)
+ [ステップ 9: コード変換を実行する](#tutorial-assembler-conversion-run-code)
+ [ステップ 10: コード変換を検証する](#tutorial-assembler-conversion-verify)
+ [ステップ 11: 変換されたコードをダウンロードする](#tutorial-assembler-conversion-download)
+ [リソースをクリーンアップする](#tutorial-assembler-conversion-clean-resources)

## 前提条件
<a name="tutorial-assembler-conversion-prerequisites"></a>

[アセンブラ変換のコード変換請求について](assembler-conversion-billing.md) セクションを読んで、Assembler コード変換が に対して料金 (請求レポート) を生成する方法と AWS Account Management、請求の仕組みを理解してください。

## ステップ 1: ビルドアセットを と共有する AWS アカウント
<a name="tutorial-assembler-conversion-share-assets"></a>

このステップでは、特にアセットが使用されているリージョンで AWS アカウント、ビルドアセットを と共有します。

1. [https://console.aws.amazon.com/m2/](https://us-west-2.console.aws.amazon.com/m2/home?region=us-west-2#/) で AWS Mainframe Modernization コンソールを開きます。

1. 左側のナビゲーションで、**[ツール]** を選択します。

1. **AWS Mainframe Modernization Code Conversion with mLogica で**、**アセットを自分の と共有 AWS アカウント**を選択します。

**重要**  
ビルドを実行する予定のすべての AWS リージョンで、このステップを 1 回実行する必要があります。

## ステップ 1: Amazon S3 バケットを作成する
<a name="tutorial-assembler-conversion-create-bucket"></a>

このステップでは、Amazon S3 バケットを作成します。最初のバケットは、 AWS CodeBuild がソースコードを保持し、出力バケットをプッシュして AWS CodeBuild 出力 (変換されたコード) を保持するためのプロジェクトバケットです。詳細については、「*Amazon S3 ユーザーガイド*」の「[Amazon S3 バケットの作成、設定、操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)」を参照してください。

1. プロジェクトバケットを作成するには、Amazon S3 コンソールにログインし、**[バケットを作成]** を選択します。

1. **全般設定**で、バケットの名前を指定し、バケットを作成する AWS リージョン を指定します。名前の例は「`codebuild-regionId-accountId-bucket`」です。ここでは...
   + `regionId` はバケット AWS リージョン の です。
   +  `accountId` は AWS アカウント ID です。
**注記**  
バケットを米国東部 (バージニア北部) AWS リージョン とは異なる で作成する場合は、 `LocationConstraint`パラメータを指定します。詳細については、「*Amazon Simple Storage Service API リファレンス*」の「[バケットを作成](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)」を参照してください。

1. その他の設定はすべて保持し、**[バケットを作成]** を選択します。

これらのバケットにどの名前を選択する場合でも、このチュートリアル全体で、その名前を使用してください。

## ステップ 3: IAM ポリシーを作成する
<a name="tutorial-assembler-conversion-IAM-policy"></a>

このステップでは、[IAM ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)を作成します。提供された IAM ポリシーは、Amazon S3、Amazon Elastic Container Registry、CodeBuild が生成する [Amazon CloudWatch logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)、およびコード変換用の Amazon Elastic Compute Cloud リソースを操作する AWS CodeBuild ための特定のアクセス許可を付与します。このポリシーはお客様向けにカスタマイズされていません。このポリシーは、 がやり取り AWS Mainframe Modernization し、コード変換統計を取得して顧客に適切に請求するためのアクセス許可を付与します。

IAM ポリシーの作成の詳細については、「*IAM ユーザーガイド*」の「[IAM ポリシーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

**ポリシーを作成する方法**

1. IAM コンソールにログインし、左のナビゲーションペインで、**[ポリシー]** を選択します。

1. [**Create policy**] (ポリシーの作成) を選択します。

1. 次の JSON ポリシーをコピーし、ポリシーエディタに貼り付けます。

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	  
       "Statement": [ 
           { 
               "Action": [
                   "s3:PutObject", 
                   "s3:GetObject", 
                   "s3:GetBucketLocation", 
                   "s3:ListBucket", 
                   "s3:PutObjectAcl", 
                   "s3:GetBucketAcl" 
               ], 
               "Resource": [ 
                   "arn:aws:s3:::codebuild-regionId-accountId-bucket", 
                   "arn:aws:s3:::codebuild-regionId-accountId-bucket/*", 
                   "arn:aws:s3:::aws-m2-repo-*" ], 
                       "Effect": "Allow" 
             }, 
             {
                 "Action": [ 
                   "ecr:GetAuthorizationToken", 
                   "ecr:BatchCheckLayerAvailability", 
                   "ecr:BatchGetImage", 
                   "ecr:GetDownloadUrlForLayer", 
                   "logs:*", 
                   "ec2:DescribeSecurityGroups", 
                   "ec2:DescribeSubnets", 
                   "ec2:DescribeNetworkInterfaces", 
                   "ec2:DeleteNetworkInterface", 
                   "ec2:CreateNetworkInterface", 
                   "ec2:DescribeDhcpOptions", 
                   "ec2:DescribeVpcs", 
                   "ec2:CreateNetworkInterfacePermission" 
               ], 
               "Resource": "*", 
               "Effect": "Allow" 
            } 
       ] 
   }
   ```

------

1. 必要に応じて、ポリシーにタグを追加できます。タグは、ポリシーのアクセスを整理、追跡、制御するのに役立つキーと値のペアです。

1. **次: レビュー** を選択します。

1. ポリシーの名前を指定します (`CodeBuildAWSM2CCMPolicy` など)。

1. オプションでポリシーの説明を入力し、ポリシーの概要を確認して、ポリシーが正しいことを確認できます。

1. [**Create policy**] (ポリシーの作成) を選択します。

## ステップ 4: IAM ロールを作成する
<a name="tutorial-assembler-conversion-IAM-role"></a>

このステップでは、以前に作成した [IAM ポリシーをこの新しい IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)に関連付けた後、CodeBuild が AWS リソースとやり取りできるようにする新しい IAM ロールを作成します。

サービスロールの作成の詳細については、*IAM ユーザーガイド*の[AWS 「 サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

1. IAM コンソールにログインし、左のナビゲーションペインで、**[ロール]** を選択します。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティタイプ]** から、**[AWS サービス]** を選択します。

1. **[他の AWS サービスのユースケース]** で **[CodeBuild]** を選択し、もう一度 **[CodeBuild]** を選択します。

1. [**次へ**] を選択します。

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。後でロールにポリシーを割り当てます。

1. **[ロールの詳細]** に、ロールの名前 (例: `IAMRoleTaskExecutionRoleForCodeBuild`) を入力します。

1. **[信頼されたエンティティを選択]** で、ポリシードキュメントが以下のようになっていることを確認します。

------
#### [ JSON ]

****  

   ```
   {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
               {
                 "Effect": "Allow",
                 "Principal": {
                   "Service": "codebuild.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
               }
             ]
   }
   ```

------

1. [**ロールの作成**] を選択してください。

## ステップ 5: IAM ポリシーを IAM ロールにアタッチする
<a name="tutorial-assembler-conversion-attach"></a>

このステップでは、前に作成した IAM ポリシーを `IAMRoleTaskExecutionRoleForCodeBuild` IAM ロールにアタッチします。

1. IAM コンソールにログインし、左のナビゲーションペインで、**[ロール]** を選択します。

1. **[ロール]** で、前に作成したロールを選択します (`IAMRoleTaskExecutionRoleForCodeBuild` など)。

1. **[アクセス許可ポリシー]** で、**[アクセス許可を追加]**、**[ポリシーをアタッチします]** の順に選択します。

1. **[その他の許可ポリシー]** で、以前に作成したポリシー (例: `CodeBuildAWSM2CCMPolicy`) を選択します。

1. **ポリシーのアタッチ** を選択します。

## ステップ 6: CodeBuild プロジェクトを作成する
<a name="tutorial-assembler-conversion-create-project"></a>

このステップでは、上記の `buildspec.yml` ファイルに基づいて 3 つの異なる CodeBuild プロジェクトを作成します。

### ステップ 6.1: Define プロジェクトを作成する
<a name="tutorial-conversion-define-project"></a>

**プロジェクトを作成する方法**

1. CodeBuild コンソールにログインして **[ビルドプロジェクトを作成する]** を選択します。

1. **[プロジェクトの設定]** セクションで、プロジェクトの名前 (例: `1-awsm2ccm-define-project`) を入力します。

1. **[ソース]** セクションの **[ソースプロバイダー]**は、デフォルトの選択を保ちます。

1. **[環境]** セクションで、**[カスタムイメージ]** を選択します。

1. **[環境タイプ]** フィールドで **[Linux]** を選択します。

1. **[イメージレジストリ]** で、**[その他のレジストリ]** を選択します。

1. **[外部レジストリ URL]** フィールドで、 [AWS Mainframe Modernization コンテナ](assembler-conversion-components-process.md#assembler-conversion-components-container) セクションに従います。

1. **[サービスロール]** で **[既存のサービスロール]** を選択し、**[ロール ARN]** フィールドで、以前に作成したサービスロール (例: `IAMRoleTaskExecutionRoleForCodeBuild`) を選択します。

1. **[追加設定]** を選択し、次の操作を行います。

   1. VPC: 設定に基づき、必要に応じて設定します。

   1. タイムアウト: **[60 分]**に設定します。

   1. Queued タイムアウト: **[480 分]**に設定します。

   1. 暗号化: 適切な暗号化設定を選択します (デフォルトで問題ありません)。

   1. **[環境変数]**セクションで、以下を 1 つずつ追加します。
      + 名前: **PROJECT\_BUCKET** 値: `codebuild-regionId-accountId- bucket` タイプ: **プレーンテキスト**
      + 名前: **PROJECT\_DIR** 値: `prj_codebuild_01` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_ACTION** 値: `define_project` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_LOGGING\_BUCKET** 値: `s3:// codebuild-regionId-accountId-bucket` タイプ: **プレーンテキスト**

1. **[ビルド仕様]** で、**[ビルドコマンドの挿入]** を選択して **[エディタに切り替え]** を選択します。

1. 現在の値を次の値に置き換えます。

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - . /app/awsm2ccm_prod/bin/setup_env.sh 
               - run_awsm2ccm.sh $PROJECT_DIR 
   artifacts: 
       files: 
           - '**/*' 
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   ここでは、PROJECT\_DIR は CodeBuild 内で使用できる環境変数を示します。詳細については、「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

1. **[アーティファクト]** セクションで、以下を実行します。
   + **[タイプ]** で **[Amazon S3]** を選択し、次に出力バケット (例: `codebuild-regionId-accountId-bucket`) を選択します。
   + **[パス]** の場合、このフィールドは空のままにします。
   + **[名前]** に「`prj_codebuild_01`」と入力します。
   + **[アーティファクトパッケージ]** の場合は、**[なし]** を選択します。
   + **[アーティファクト名を上書き]** するには、このオプションのチェックを外します。
   + **[暗号化]** は、デフォルトの設定を保ちます。

1. **[ログ]** セクションで、次の操作を行います。
   + CloudWatch ログ: **無効**
   + S3 ログ: **有効**
   + バケット: `codebuild-regionId-account-bucket`
   + ログのパス: `CODEBUILD-LOGS`

1. **Create build project (ビルドプロジェクトの作成)**を選択します。

### ステップ 6.2: Code Analysis プロジェクトを作成する
<a name="tutorial-conversion-analysis-project"></a>

**Code Analysis プロジェクトを作成する方法**

1. CodeBuild コンソールにログインして **[ビルドプロジェクトを作成する]** を選択します。

1. **[プロジェクトの設定]** セクションで、プロジェクトの名前 (例: `2-awsm2ccm-analysis`) を入力します。

1. **[ソース]** セクションの **[ソースプロバイダー]** で **[Amazon S3]** を選択し、以前に作成した入力バケット (例: `codebuild-regionId-accountId-bucket`) を選択します。

1. **[S3 オブジェクトキー]**または **[S3 フォルダ]**フィールドに、「`prj_codebuild_01`」と入力します。

1. **[環境]** セクションで、**[カスタムイメージ]** を選択します。

1. **[環境タイプ]** フィールドで **[Linux]** を選択します。

1. **[イメージレジストリ]** で、**[その他のレジストリ]** を選択します。

1. **[外部レジストリ URL]** フィールドで、 [AWS Mainframe Modernization コンテナ](assembler-conversion-components-process.md#assembler-conversion-components-container) セクションに従います。

1. **[サービスロール]** で **[既存のサービスロール]** を選択し、**[ロール ARN]** フィールドで、以前に作成したサービスロール (例: `IAMRoleTaskExecutionRoleForCodeBuild`) を選択します。

1. **[追加設定]** を選択し、次の操作を行います。

   1. VPC: 設定に基づき、必要に応じて設定します。

   1. タイムアウト: **[60 分]**に設定します。

   1. Queued タイムアウト: **[480 分]**に設定します。

   1. 暗号化: 適切な暗号化設定を選択します (デフォルトで問題ありません)。

   1. **[環境変数]**セクションで、以下を 1 つずつ追加します。
      + 名前: **PROJECT\_BUCKET** 値: `codebuild-regionId-accountId-bucket` タイプ: **プレーンテキスト**
      + 名前: **PROJECT\_DIR** 値: `prj_codebuild_01` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_ACTION** 値: `analysis` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_LOGGING\_BUCKET** 値: `s3:// codebuild-regionId-accountId-bucket` タイプ: **プレーンテキスト**

1. **[ビルド仕様]** で、**[ビルドコマンドの挿入]** を選択して **[エディタに切り替え]** を選択します。

1. 現在の値を次の値に置き換えます。

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - ln -s $CODEBUILD_SRC_DIR $PROJECT_DIR 
               - . /app/awsm2ccm_prod/bin/setup_env.sh 
               - run_awsm2ccm.sh $PROJECT_DIR
   artifacts: 
       files: 
           - '*.log' 
           - '_Converted/*/*' 
           - '_Reports/*' 
       secondary-artifacts: 
           reports: 
               files: 
                   - '_Reports/AWSM2CCM*' 
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   ここでは、PROJECT\_DIR は CodeBuild 内で使用できる環境変数を示します。詳細については、「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

1. **[アーティファクト]** セクションで、以下を実行します。
   + **[タイプ]** で **[Amazon S3]** を選択し、次に出力バケット (例: `codebuild-regionId-accountId-bucket`) を選択します。
   + **[パス]** には、「**ARTIFACTS**」と入力します。
   + **[名前]** に「`prj_codebuild_01`」と入力します。
   + **[アーティファクトパッケージ]** の場合は、**[なし]** を選択します。
   + **[アーティファクト名を上書き]** するには、このオプションのチェックを外します。
   + **[暗号化]** は、デフォルトの設定を保ちます。

1. **[ログ]** セクションで、次の操作を行います。
   + CloudWatch ログ: **無効**
   + S3 ログ: **有効**
   + バケット: `codebuild-regionId-account-bucket`
   + ログのパス: `CODEBUILD-LOGS`

1. **Create build project (ビルドプロジェクトの作成)**を選択します。

### ステップ 6.3: Code Conversion プロジェクトを作成する
<a name="tutorial-conversion-code-project"></a>

**Code Conversion プロジェクトを作成する方法**

1. CodeBuild コンソールにログインして **[ビルドプロジェクトを作成する]** を選択します。

1. **[プロジェクトの設定]** セクションで、プロジェクトの名前 (例: `3-awsm2ccm-convert`) を入力します。

1. **[ソース]** セクションの **[ソースプロバイダー]** で **[Amazon S3]** を選択し、以前に作成した入力バケット (例: `codebuild-regionId-accountId-bucket`) を選択します。

1. **[S3 オブジェクトキー]**または **[S3 フォルダ]**フィールドに、「`prj_codebuild_01`」と入力します。

1. **[環境]** セクションで、**[カスタムイメージ]** を選択します。

1. **[環境タイプ]** フィールドで **[Linux]** を選択します。

1. **[イメージレジストリ]** で、**[その他のレジストリ]** を選択します。

1. **[外部レジストリ URL]** フィールドで、 [AWS Mainframe Modernization コンテナ](assembler-conversion-components-process.md#assembler-conversion-components-container) セクションに従います。

1. **[サービスロール]** で **[既存のサービスロール]** を選択し、**[ロール ARN]** フィールドで、以前に作成したサービスロール (例: `IAMRoleTaskExecutionRoleForCodeBuild`) を選択します。

1. **[追加設定]** を選択し、次の操作を行います。

   1. VPC: 設定に基づき、必要に応じて設定します。

   1. タイムアウト: **[60 分]**に設定します。

   1. Queued タイムアウト: **[480 分]**に設定します。

   1. 暗号化: 適切な暗号化設定を選択します (デフォルトで問題ありません)。

   1. **[環境変数]**セクションで、以下を 1 つずつ追加します。
      + 名前: **PROJECT\_BUCKET** 値: `codebuild-regionId-accountId-bucket` タイプ: **プレーンテキスト**
      + 名前: **PROJECT\_DIR** 値: `prj_codebuild_01` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_ACTION** 値: `conversion` タイプ: **プレーンテキスト**
      + 名前: **AWSM2CCM\_LOGGING\_BUCKET** 値: `s3:// codebuild-regionId-accountId-bucket` タイプ: **プレーンテキスト**

1. **[ビルド仕様]** で、**[ビルドコマンドの挿入]** を選択して **[エディタに切り替え]** を選択します。

1. 現在の値を次の値に置き換えます。

   ```
   version: 0.2 
   phases: 
       build: 
           commands: 
               - export AWSM2CCM_PUSH_RUNTIME_COPYBOOKS=y 
               - ln -s $CODEBUILD_SRC_DIR $PROJECT_DIR 
               - . /app/awsm2ccm_prod/bin/setup_env.sh
               - run_awsm2ccm.sh $PROJECT_DIR
   artifacts: 
       files: 
           - '*.log' 
           - '_Converted/*/*' 
           - '_Reports/*'  
       discard-paths: no 
       base-directory: $PROJECT_DIR
   ```

   ここでは、PROJECT\_DIR は CodeBuild 内で使用できる環境変数を示します。詳細については、「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

1. **[アーティファクト]** セクションで、以下を実行します。
   + **[タイプ]** で **[Amazon S3]** を選択し、次に出力バケット (例: `codebuild-regionId-accountId-bucket`) を選択します。
   + **[パス]** には、「**ARTIFACTS**」と入力します。
   + **[名前]** に「`prj_codebuild_01`」と入力します。
   + **[アーティファクトパッケージ]** の場合は、**[なし]** を選択します。
   + **[アーティファクト名を上書き]** するには、このオプションのチェックを外します。
   + **[暗号化]** は、デフォルトの設定を保ちます。

1. **[ログ]** セクションで、次の操作を行います。
   + CloudWatch ログ: **無効**
   + S3 ログ: **有効**
   + バケット: `codebuild-regionId-account-bucket`
   + ログのパス: `CODEBUILD-LOGS`

1. **Create build project (ビルドプロジェクトの作成)**を選択します。

## ステップ 7: プロジェクトを定義してソースコードをアップロードする
<a name="tutorial-assembler-conversion-define-upload"></a>

Define Project は、デフォルト設定で初期化されたプロジェクトフォルダと設定ファイルをセットアップします。このステップでは、ビルドを開始します。これを実行するには:

1.  AWS CodeBuild コンソールにログインします。

1. ナビゲーションペインで、**[ビルドプロジェクト]** を選択します。

1. ビルドする以前に作成したプロジェクト (`1-awsm2ccm-define-project`) を選択します。

1. **[ビルドを開始]** を選択し、**[今すぐ開始]** 選択してプロジェクトを定義します。ビルドが開始すると、ステータスが *[進行中]* に変わります。

1. **フェーズの詳細**を選択すると、 AWS CodeBuild プロジェクトによって調整される各ステップの進行状況が表示されます。

1. すべてのステップでステータスが **[成功]** に変わるまで待ちます。

1. Amazon S3 コンソールに進みます。

1. `codebuild-regionId-accountId-bucket` という名前の Amazon S3 バケットを見つけてクリックします
   + **`CODEBUILD-LOGS/`** フォルダには、実行中 AWS CodeBuild のプロジェクトの AWS CodeBuild ログが含まれます。
   + プロジェクト構造を含む「**`prj_codebuild_01/`**」フォルダです。これは、分析、expand\_macros、変換の各ステップで使用されます。`prj_codebuild_01/` を選択して詳細を確認できます
   + コンバーター用に予約された **`cobol_reserved.rsw`** 設定ファイル (COBOL 単語の一覧) です。変換ステップ中に使用されます。
   + 「**`Macro_Expansion/`**」フォルダには、Assembler プログラムに展開するためのマクロが含まれています。expand\_macros ステップで使用されます。
   + 「**`macro_settings.json`**」設定ファイルには、カスタマイズされたマクロ置換が含まれています。expand\_macros ステップで使用されます。
   + 「**`macrolib/`**」フォルダには、変換する Assembler マクロが含まれています。これは、分析および変換ステップ中に使用されます。

     1. `macrolib/` を選択します。

     1. デフォルトでは、`MACRO1.mac` という名前の 1 つの Assembler マクロがサンプルファイルとして提供されます。分析には不要であるため、このファイルを削除します。

     1. このディレクトリにマクロをアップロードします。
   + 「**`project_settings_aux.json`**」設定ファイルには、コードページに関連する設定が含まれています。変換ステップ中に使用されます。
   + 「**`project_settings.json`**」設定ファイルには、コンバーターの設定が含まれています。変換ステップ中に使用されます。
   + 「**`srclib/`**」フォルダには、変換する Assembler プログラムが含まれています。これは、分析および変換ステップ中に使用されます。

     1. `srclib/` を選択してください。

     1. デフォルトでは、「`SQtest01.asm`」と「`SQtest02.asm`」という名前の 2 つの Assembler プログラムがサンプルとして提供されます。これらのファイルは、分析や変換には不要であるため、削除してください。

     1. このディレクトリに Assembler プログラムをアップロードします。

1. `1-awsm2ccm-define-project` ステップのステータスを検証します。**[最新のビルドステータス]** タブで成功しているはずです。

**[コード分析]** の準備が整いました。

## ステップ 8: 分析を実行し、レポートを理解する
<a name="tutorial-assembler-conversion-run-analysis"></a>

**注記**  
AWS Mainframe Modernization コード変換*分析*ステップは無料です。

このステップでは、別のビルドを開始します。

1. ナビゲーションペインで、**[ビルドプロジェクト]** を選択します。

1. ステップ 6.2 で作成したプロジェクトを選択して `2-awsm2ccm-analysis` をビルドします。

1. **[ビルドを開始]** を選択し、**[今すぐ開始]** して分析レポートを生成します。これにより、ビルドが開始され、ステータスが *[進行中]* に変更されます。

1.  AWS CodeBuild プロジェクトによって調整された各ステップの進行状況が表示される**フェーズの詳細**を選択します。すべてのステップでステータスが *[成功]* に変わるまで待ちます。

1. から AWS マネジメントコンソール、Amazon S3 サービスコンソールに移動します。

1. Amazon S3 バケット「`codebuild-regionId-accountId-bucket`」を見つけてクリックします。

   1. 「**`ARTIFACTS/`**」フォルダには、*[分析]* および *[変換]* ステップの出力が含まれます。

   1. `ARTIFACTS/prj_codebuild_01/_Reports/` を選択してください。

   1. 次のレポートが利用できます。
      + `AWSM2CCM-Analysis-Report-<timestamp>.pdf` は、 AWS Mainframe Modernization コード変換の請求と範囲を提供し、変換、変換の概要、詳細な変換統計を改善するエグゼクティブレポートです。また、プロジェクトレベルでのコード数と請求可能なコード数を要約し、各コンポーネントの参照メンバーのメトリクスと一覧を表示します。実際の変換を実行する前に、このレポートを実行して調べることが重要です。
      + `Conversion_Detailed_Statistics.txt` は、各コンポーネントにある各命令の頻度と予想される変換結果 (「変換ステータス」と表示) を表示します。これにより、コンバーターがサポートしていないことが指示で明確かどうかをすばやく特定できます。*[変換ステータス]*の結果は次のとおりです。
        + **完全変換**: 命令は COBOL に正確に変換されます。
        + **一部変換**: 命令はサポートされていますが、サポートされていないパラメータまたは式を使用します。変換後に手動調整が必要になる可能性があります。
        + **変換なし**: 命令はコンバーターではサポートされていません。
        + **検証のための事前コンパイル手順**: これらは通常、マクロに含まれ、メインフレームで*条件付きアセンブリ言語* (AIF、AGO など) 命令とも呼ばれるものを参照します。こうした指示またはディレクティブによって駆動されるプリコンパイラによって処理され、*クリーン/静的* ASM コードを選択および生成します。これらの手順は、コンパイルされるマクロパラメータの実際の値によって異なります。したがって、同じマクロは、渡されたパラメータの値に応じて、異なる ASM コードを生成できます。これは、このような*プリコンパイル手順*が存在するためです。この場合、マクロを拡張または再設計することを検討してください。
      + `Conversion_Global_Statistics.txt` は、コンポーネントレベルでの*変換ステータス*の概要を表示します。
      + `CrossReference_PgmToCpyMacro.txt` は、マクロに対する Assembler プログラムの依存関係についてレポートします。アップロードされたコードにマクロがないかをすばやく判断できます。
      + `CrossReference_PgmToPgm.txt` は、他の Assembler プログラムへの Assembler プログラム依存関係を報告します。アップロードされたコードに Assembler プログラムがないかをすばやく判断できます。

1.  AWS CodeBuild サービスコンソールに戻ります。

1. **2-awsm2ccm 分析**ステップのステータスを検証します。**[最新のビルドステータス]** タブで**成功している**はずです。

次のステップである **[コード変換の準備]** が整いました。

## ステップ 9: コード変換を実行する
<a name="tutorial-assembler-conversion-run-code"></a>

**重要**  
AWS Mainframe Modernization コード*変換変換*ステップは、使用量ごとに請求されます。料金の詳細については、「[アセンブラ変換のコード変換請求について](assembler-conversion-billing.md)」を参照してください。

このステップでは、変換プロセスを設定し、ビルドを開始します。

1. から AWS マネジメントコンソール、Amazon S3 サービスに移動します。

1. Amazon S3 バケット「`codebuild-regionId-accountId-bucket`」を見つけてクリックします。

   1. `prj_codebuild_01/` に移動します。

   1. `project_settings.json` を選択し、**[ダウンロード]** を選択します。

   1. `project_settings.json` ファイルを開いて、次の JSON 構造を確認します。

      ```
      { 
      "Source programs directory":"srclib", 
      "Source copybooks/macros directory":"macrolib", 
      "Copybook/Macros Conversion":"Called_only", 
      "Do not regenerate the Copy/Macro if already exists":"false", 
      "Target Compiler":"IBM", 
      "Endianess":"Big", 
      "Converted programs extension":"", 
      "Converted CICS programs extension":"", 
      "Converted copies/macros extension":"", 
      "Trace Level":"STANDARD", 
      "Trace file open mode":"append", 
      "Data definition level":5, 
      "Start picture column":40, 
      "Generate Sync FILLER with name":"FILL-SYNC", 
      "Use SYNC clause":"yes", 
      "Decimal Point Comma":"true", 
      "Original Source Placement":"RIGHT" 
      }
      ```

      次のとおりです。
      + **ソースプログラムディレクトリ**: 変換に必要な Assembler プログラムが含まれています。
      + **ソースコピーブック/マクロディレクトリ**: 変換に必要な Assembler マクロとコピーブックが含まれています。
      + **コピーブック/マクロ変換**は次のいずれかになります。
        + **すべて**: このラジオボタンは、プログラムで使用されているかどうかに関係なく、ディレクトリで利用可能なすべてのコピーブック/マクロを*完全な変換*で変換することを示します。
        + **Called\_only**: このラジオボタンは、*完全な変換*がプログラムによって実際に使用されたコピーブック/マクロのみを変換することを示します。
      + 
**重要**  
コピー/マクロがすでに存在する場合は、再生成する必要はありません。

        これが true の場合、ツールがすでに変換されている (出力フォルダに存在する) 場合、コピーブック/マクロは再度変換されません。
      + **ターゲット**: プログラム (生成されたコード) の変換は、ターゲット COBOL コンパイラによって異なります。以下のオペレーションがサポートされています。
        + IBM メインフレームの「IBM」
        + Micro Focus COBOL の「MF」 
        + Veryant isCOBOL の「VERYANT」
        + NTT DATA Enterprise COBOL (Unikix) の「NTT」
      + **Endianess と Bitness**: プログラム (生成されたコード) の変換は、ターゲットプラットフォーム (bit/endianess) によって異なります。このコンボでは、以下のサポートされているオプションを選択できます。
        + エンディアネス: *ビッグ* (ビッグエンディアンの場合)/リトル (リトルエンディアン) 例えば、IBM z/OS メインフレームは Big-Endian、Windows は Little-Endian、Linux はディストリビューションによって異なります (EC2 上の Amazon Linux 2 は Little-Endian など）。
        + Bitness: 32/64 (指定がない場合、デフォルトは 32) 推奨設定は 32 ビットです。
      + **変換されたプログラム拡張子**: これは、生成された COBOL プログラムのファイル拡張子を設定します。空白 (“”): 拡張子はありません。Rocket Software (旧 Micro Focus) COBOL ターゲットの場合、Rocket Enterprise Developer がファイルを正しく認識できるように *CBL* をお勧めします。
      + **変換された CICS プログラム拡張子**: これは、生成された CICS COBOL プログラムのファイル拡張子を設定します。空白 (“”): 拡張子はありません。Rocket Software COBOL ターゲットの場合、Rocket Enterprise Developer がファイルを正しく認識できるように *CBL* をお勧めします。
      + **変換されたコピーブック/マクロ拡張子**: これは、生成された COBOL プログラムのファイル拡張子を設定します。空白 (“”): 拡張子はありません。Rocket Software COBOL ターゲットの場合、Rocket Enterprise Developer がファイルを正しく認識できるように *CPY* をお勧めします。
      + **トレースレベル**: トレースは、変換中に CodeBuild を使用してログに記録される情報です。ユーザーは、利用可能なオプションのいずれかを選択することで、詳細レベルを選択できます。
        + **ERROR** = TRACE ERROR: 変換エラーのみが表示されます。
        + **STANDARD** = TRACE STANDARD: 変換エラーと標準情報が表示されます。これがデフォルトの設定であり、かつ推奨設定です。
        + **ALL** = TRACE ALL: トレースの最大レベル
      + **トレースファイルオープンモード**: 使用されていません。*追加*のデフォルト設定を推奨します。
      + **データ定義レベル**: これは、作業ストレージとリンクセクションで定義されたサブフィールドの初期レベル (レベル「01」の後) を示します。これは数字でなければなりません。
      + **開始画像列**: これは生成された COBOL コードの形式に関するもので、*PIC* 句が配置されている列を示します (フィールド名の後）。これは数字でなければなりません。
      + **元のソース配置:** これは、コメントがプログラムに配置される位置を示します。次の 2 つのオプションがあります。
        + **RIGHT**: このオプションは、コメントまたは追加情報を 73 列の後に右の位置に配置します。COBOL では、コードは最初の 72 (1～72) 列に書き込まれ、73 (>= 73) 列からのものはすべてコメントとして扱われます。
        + **ABOVE**: このオプションは、変換されたコンテンツの上にコメントを配置します。
      + **名前で Sync FILLER を生成する**: このオプションは、バイナリフィールド (Assembler「H」、「F」、「D」データ型で、COBOL「COMP」データ型に変換されます) のメモリ内のアライメントに関連しています。適切な*アライメント境界*を確実にするため、変換中に明示的な *[フィラー]* フィールドが追加されます。これはテキストベースのオプションであり、値は文字列 (FILL-SYNC など) である必要があります。
      + **SYNC 句を使用する**: このオプションは、バイナリフィールドのメモリ内のアライメントを参照します。Yes = COBOL に変換されたすべてのフィールド。「COMP」は「SYNC」という句で定義されます (例: 05 WRKFLD PIC S9(09) COMP SYNC)。
      + **小数点カンマ**: これが true の場合、*DECIMAL-POINT IS COMMA* 句が「SPECIAL-NAMES」 COBOL 段落に追加されます。

   1. 要件に基づいて、適切なパラメータを変更し、`project_settings.json` を保存します。

   1. Amazon S3 バケットで `prj_codebuild_01/` から既存の `project_settings.json` ファイルを削除し、新しいバージョンをアップロードします。

1.  AWS CodeBuild サービスに戻ります。

1. 以前に作成した、ビルドするプロジェクトを選択します: `3-awsm2ccm-convert`

   1. **[ビルドを開始]** を選択し、**[今すぐ開始]**して、Assembler プログラムとマクロを COBOL プログラムとコピーブックに変換します。

   1. このプロジェクトのビルドステータスが **[成功]** に変わるまで待ちます。これは、**[最新のビルドステータス]** タブの下に表示されます。

## ステップ 10: コード変換を検証する
<a name="tutorial-assembler-conversion-verify"></a>

1. から AWS マネジメントコンソール、Amazon S3 サービスに移動します。

1. Amazon S3 バケット「`codebuild-regionId-accountId-bucket`」を見つけてクリックします。

1. **`awsm2ccm-do-not-delete `**. AWS Mainframe Modernization Code 変換に移動すると、変換プロセス中に各 Assembler またはマクロモジュールにエンコードされたバイナリファイルが作成されます。これらのファイルは、顧客への重複請求を防止し、提供された Assembler コードが分析および変換された量をトラッキングするのに不可欠です。ファイルは「`codebuild-regionId-accountId- bucket/awsm2ccm-do-not-delete/<your_AWS_account_id>/Hash`」にインストールされます。エンコードされたファイルには Assembler コードが含まれておらず、これらのファイルから顧客コードを抽出することもできません。
**重要**  
これらのファイルを手動で編集したり、削除したりすることもできません。これらのファイルを編集または削除すると、同じコンポーネントに対して複数の請求が発生する可能性があります。

   「**`awsm2ccm-do-not-delete/`**」フォルダをシステム管理ディレクトリとして扱います。このディレクトリまたはそのコンテンツに変更を加える サポート 前に、「」を参照してください。

1. `codebuild-regionId-accountId-bucket` をクリックしてバケットに戻ります。

1. **`ARTIFACTS/prj_codebuild_01/`** を選択します。「**\_Converted/**」フォルダには、コード変換ステップの結果として生成された COBOL 出力が含まれています。次のサブディレクトリがあります。
   + 「**copybooks/**」フォルダには、生成された COBOL コピーブックが含まれます。
   + 「**programs/**」フォルダには、生成された COBOL プログラムが含まれます。
   + 「**runtime\_lib/**」フォルダには、ソリューションで利用できる追加の COBOL プログラムとコピーブックが含まれています。

1. *分析レポート*やその他のレポートで変換が成功したことが示され、 AWS CodeBuild プロジェクト`3-awsm2ccm-convert`が**成功とマークされている場合は**、**\_Converted/** ディレクトリから COBOL コードとコピーブックをダウンロードします。

## ステップ 11: 変換されたコードをダウンロードする
<a name="tutorial-assembler-conversion-download"></a>

このステップでは、「**\_Converted/**」ディレクトリから COBOL コードとコピーブックをダウンロードし、ターゲット COBOL 環境でコンパイルします。

1. から AWS マネジメントコンソール、Amazon S3 サービスに移動します。

1. Amazon S3 バケット「`codebuild-regionId-accountId-bucket`」を見つけてクリックします。

1. 「` ARTIFACTS/prj_codebuild_01/_Converted/`」に移動します。

1. 「**\_Converted/**」のすべてのサブディレクトリから変換された COBOL コードをダウンロードします。次の CLI コマンドを使用して、それらを一度にダウンロードすることもできます。

   ```
   aws s3 cp s3://codebuild-regionId-accountId- 
   bucket/ARTIFACTS/prj_codebuild_01/_Converted/ . --recursive
   ```

1. 変換された COBOL をターゲット COBOL 環境で分析してコンパイルします。

## リソースをクリーンアップする
<a name="tutorial-assembler-conversion-clean-resources"></a>

このチュートリアルのために作成したリソースが不要になった場合は、追加料金が発生しないように削除します。そのためには、以下のステップを実行します。
+ このチュートリアル用に作成した S3 バケットを削除します。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[バケットの削除](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)」を参照してください。
+ このチュートリアル用に作成した IAM ポリシーを削除します。詳細については、「*IAM ユーザーガイド*」の「[IAM ポリシーの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-delete.html)」を参照してください。
+ このチュートリアル用に作成した IAM ロールを削除します。詳細については、「*IAM ユーザーガイド*」の「[ロールまたはインスタンスプロファイルを削除する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)」を参照してください。
+ このチュートリアル用に作成した CodeBuild プロジェクトを削除します。詳細については、「*AWS CodeBuild ユーザーガイド*」の「[Delete a build project in CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/delete-project.html)」を参照してください。