チュートリアル: BankDemo サンプルアプリケーションの Micro Focus ビルドのセットアップ - AWS メインフレームのモダナイゼーション

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

チュートリアル: BankDemo サンプルアプリケーションの Micro Focus ビルドのセットアップ

AWS Mainframe Modernization では、移行したアプリケーション用にビルドと継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインを設定できます。これらのビルドとパイプラインでは AWS CodeBuild、、 AWS CodeCommit、 を使用してこれらの機能 AWS CodePipeline を提供します。 CodeBuild は、ソースコードをコンパイルし、ユニットテストを実行し、すぐにデプロイできるアーティファクトを生成するフルマネージドビルドサービスです。 CodeCommit は、Git リポジトリを AWS クラウドにプライベートに保存および管理できるようにするバージョン管理サービスです。 CodePipeline は、ソフトウェアのリリースに必要なステップをモデル化、視覚化、自動化できる継続的な配信サービスです。

このチュートリアルでは、 AWS CodeBuild を使用して Amazon S3 から BankDemo サンプルアプリケーションのソースコードをコンパイルし、コンパイルしたコードを Amazon S3 にエクスポートする方法を示します。

AWS CodeBuild は、ソースコードをコンパイルし、テストを実行し、すぐにデプロイできるソフトウェアパッケージを生成するフルマネージドの継続的統合サービスです。では CodeBuild、事前にパッケージ化されたビルド環境を使用することも、独自のビルドツールを使用してカスタムビルド環境を作成することもできます。このデモシナリオでは 2 つ目のオプションを使用します。これは、パッケージ化された Docker イメージを使用する CodeBuild ビルド環境で構成されます。

重要

メインフレームのモダナイゼーションプロジェクトを開始する前に、AWS メインフレームの移行促進プログラム (MAP) について学ぶか、AWS メインフレームのスペシャリストに連絡して、メインフレームアプリケーションをモダナイズするために必要な手順について学ぶことをお勧めします。

前提条件

このチュートリアルを開始する前に、次の前提条件を完了してください。

  • BankDemo サンプルアプリケーションをダウンロードし、フォルダに解凍します。ソースフォルダには、COBOLプログラムとコピーブック、および定義が含まれています。また、 を構築する必要はありませんが、参照用のJCLフォルダも含まれていますJCL。このフォルダには、ビルドに必要なメタファイルも含まれています。

  • AWS Mainframe Modernization コンソールで、ツール を選択します。分析、開発、アセットの構築 で自分のAWSアカウント とアセットを共有する を選択します。

ステップ 1: ビルドアセットをアカウントと共有する AWS

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

  1. で AWS Mainframe Modernization コンソールを開きますhttps://console.aws.amazon.com/m2/

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

  3. 分析、開発、およびアセットの構築で自分の AWS アカウント とアセットを共有するを選択します

重要

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

ステップ 2: Amazon S3 バケットを作成する

このステップでは、2 つの Amazon S3 バケットを作成します。1 つ目はソースコードを保持する入力バケットで、もう 1 つはビルド出力を保持する出力バケットです。詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 バケットの作成、設定、操作」を参照してください。

  1. 入力バケットを作成するには、Amazon S3 コンソールにログインし、[バケットの作成] を選択します。

  2. 一般設定 で、バケットの名前を指定し、バケットを作成する AWS リージョン を指定します。名前の例は でcodebuild-regionId-accountId-input-bucketregionIdはバケット AWS リージョン の 、 accountIdは ID AWS アカウント です。

    注記

    米国東部 (バージニア北部) AWS リージョン とは異なる でバケットを作成する場合は、 LocationConstraintパラメータを指定します。詳細については、「Amazon Simple Storage Service API リファレンス」の「バケットの作成」を参照してください。

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

  4. ステップ 1~3 を繰り返し、出力バケットを作成します。名前の例は でcodebuild-regionId-accountId-output-bucketregionIdはバケット AWS リージョン の 、 accountIdは AWS アカウント ID です。

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

ステップ 3: ビルド仕様ファイルを作成する

このステップでは、ビルド仕様ファイルを作成します。このファイルは、 がビルドを実行する CodeBuild ためのビルドコマンドと関連設定を YAML 形式で提供します。詳細については、「 ユーザーガイド」の「 のビルド仕様リファレンス CodeBuildAWS CodeBuild 」を参照してください。

  1. 前提条件として解凍したディレクトリに、buildspec.yml という名前のファイルを作成します。

  2. ファイルに以下の内容を追加して保存します。このファイルでは変更は必要ありません。

    version: 0.2 env: exported-variables: - CODEBUILD_BUILD_ID - CODEBUILD_BUILD_ARN phases: install: runtime-versions: python: 3.7 pre_build: commands: - echo Installing source dependencies... - ls -lR $CODEBUILD_SRC_DIR/source build: commands: - echo Build started on `date` - /start-build.sh -Dbasedir=$CODEBUILD_SRC_DIR/source -Dloaddir=$CODEBUILD_SRC_DIR/target post_build: commands: - ls -lR $CODEBUILD_SRC_DIR/target - echo Build completed on `date` artifacts: files: - $CODEBUILD_SRC_DIR/target/**

    ここでCODEBUILD_BUILD_ID、、CODEBUILD_BUILD_ARN$CODEBUILD_SRC_DIR/source$CODEBUILD_SRC_DIR/targetは、 内で利用可能な環境変数です CodeBuild。詳細については、「ビルド環境の環境変数」を参照してください。

    この時点で、ディレクトリは次のようになります。

    (root directory name) |-- build.xml |-- buildspec.yml |-- LICENSE.txt |-- source |... etc.
  3. フォルダの内容を BankDemo.zip という名前のファイルに圧縮します。このチュートリアルでは、フォルダを圧縮することはできません。代わりに、フォルダの内容を BankDemo.zip ファイルに圧縮します。

ステップ 4: ソースファイルをアップロードする

このステップでは、 BankDemo サンプルアプリケーションのソースコードを Amazon S3 入力バケットにアップロードします。

  1. Amazon S3 コンソールにログインし、ナビゲーションペインで、[バケット] を選択します。次に、以前に作成した入力バケットを選択します。

  2. [オブジェクト][アップロード] を選択します。

  3. [ファイルとフォルダ] セクションで、[ファイルを追加] を選択します。

  4. BankDemo.zip ファイルに移動して、選択します。

  5. [アップロード] を選択します。

ステップ 5: IAMポリシーを作成する

このステップでは、2 つのIAMポリシー を作成します。1 つのポリシーは、 AWS Mainframe Modernization が Micro Focus ビルドツールを含む Docker イメージにアクセスして使用するためのアクセス許可を付与します。このポリシーはお客様向けにカスタマイズされていません。もう 1 つのポリシーは、 AWS Mainframe Modernization が入力バケットと出力バケット、および が CodeBuild 生成する Amazon CloudWatch ログとやり取りするためのアクセス許可を付与します。

IAM ポリシーの作成の詳細については、「 IAMユーザーガイド」のIAM「ポリシーの編集」を参照してください。

Docker イメージにアクセスするためのポリシーを作成するには
  1. IAM コンソールで、次のポリシードキュメントをコピーし、ポリシーエディタに貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::aws-m2-repo-*-<region>-prod" } ] }
  2. ポリシーの名前を指定します (m2CodeBuildPolicy など)。

AWS Mainframe Modernization がバケットとログを操作できるようにするポリシーを作成するには
  1. IAM コンソールで、次のポリシードキュメントをコピーし、ポリシーエディタに貼り付けます。を regionIdに AWS リージョン、 を accountIdに更新してください AWS アカウント。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:regionId:accountId:log-group:/aws/codebuild/codebuild-bankdemo-project", "arn:aws:logs:regionId:accountId:log-group:/aws/codebuild/codebuild-bankdemo-project:*" ], "Effect": "Allow" }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:List*" ], "Resource": [ "arn:aws:s3:::codebuild-regionId-accountId-input-bucket", "arn:aws:s3:::codebuild-regionId-accountId-input-bucket/*", "arn:aws:s3:::codebuild-regionId-accountId-output-bucket", "arn:aws:s3:::codebuild-regionId-accountId-output-bucket/*" ], "Effect": "Allow" } ] }
  2. ポリシーの名前を指定します (BankdemoCodeBuildRolePolicy など)。

ステップ 6: IAMロールを作成する

このステップでは、以前に作成したIAMポリシー CodeBuild をこの新しいIAMロールに関連付けた後、 が AWS リソースとやり取りできるようにする新しいIAMロールを作成します。

サービスロールの作成の詳細については、「 IAMユーザーガイド」の「 AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

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

  2. [ロールの作成] を選択します。

  3. 信頼されたエンティティタイプ で、AWSサービス を選択します。

  4. 「他のサービスのユースケースAWS」で、CodeBuild「」を選択しCodeBuild、もう一度選択します。

  5. [Next (次へ)] を選択します。

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  9. [ロールの作成] を選択します。

ステップ 7: IAMポリシーをIAMロールにアタッチする

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

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

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

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

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

  5. [ポリシーのアタッチ] を選択します。

ステップ 8: CodeBuild プロジェクトを作成する

このステップでは、 CodeBuild プロジェクトを作成します。

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

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

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

  4. [S3 オブジェクトキーまたは S3 フォルダ] フィールドに S3 バケットにアップロードした zip ファイルの名前を入力します。この場合、ファイル名は bankdemo.zip です。

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

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

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

  8. 外部レジストリURLフィールドで、

    • Micro Focus v9 の場合: と入力します673918848628.dkr.ecr.us-west-1.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1。Micro Focus v9 で別の AWS リージョンを使用している場合は、 を指定することもできます。<m2-region> AWS は 673918848628.dkr.ecr.<m2-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1Mainframe Modernization サービスが利用可能な AWS リージョンです (例: eu-west-3)。

    • Micro Focus v8 の場合: Enter 673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1

    • Micro Focus v7 の場合: Enter 673918848628.dkr.ecr.us-west-2.amazonaws.com/m2-enterprise-build-tools:7.0.R10

  9. 「サービスロール」で「既存のサービスロール」を選択し、「ロールARN」フィールドで、前に作成したサービスロールを選択します。例えば、「」ですBankdemoCodeBuildServiceRole

  10. [Buildspec] セクションで [buildspec ファイルを使用する] を選択します。

  11. [アーティファクト] セクションの [タイプ][Amazon S3] を選択し、次に出力バケット (例: codebuild-regionId-accountId-output-bucket) を選択します。

  12. [名前] フィールドに、ビルド出力アーティファクトを格納するバケット内のフォルダの名前 (例: bankdemo-output.zip) を入力します。

  13. [アーティファクトのパッケージ化] では、[Zip] を選択します。

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

ステップ 9: ビルドを開始する

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

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

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

  3. 以前に作成したビルドプロジェクト (例: codebuild-bankdemo-project) を選択します。

  4. [Start build] を選択します。

このコマンドはビルドを開始します。ビルドは非同期で実行されます。コマンドの出力は、属性 ID JSONを含む です。この属性は、先ほど開始した CodeBuild ビルドのビルド ID への参照です。 CodeBuild コンソールでビルドのステータスを表示できます。ビルド実行に関する詳細なログをコンソールで確認することもできます。詳細については、「AWS CodeBuild ユーザーガイド」の「詳細なビルド情報を表示する」を参照してください。

現在のフェーズが の場合COMPLETED、ビルドが正常に終了し、コンパイルされたアーティファクトが Amazon S3 で準備できたことを意味します。

ステップ 10: 出力アーティファクトをダウンロードする

このステップでは、Amazon S3 から出力アーティファクトをダウンロードします。Micro Focus ビルドツールでは、複数の異なる種類の実行ファイルを作成できます。このチュートリアルでは、共有オブジェクトを生成します。

  1. Amazon S3 コンソールにログインします。

  2. Buckets role"bold"> セクションで、出力バケットの名前を選択しますcodebuild-regionId-accountId-output-bucket。例えば、。

  3. 「ロールのダウンロード」"> を選択します。

  4. ダウンロードした ファイルを解凍します。ターゲットフォルダに移動して、ビルドアーティファクトを確認します。これには .so Linux 共有オブジェクトが含まれます。

リソースをクリーンアップする

このチュートリアルのために作成したリソースが不要になった場合は、追加料金が発生しないように削除します。そのためには、以下のステップを実行します。

  • このチュートリアル用に作成した S3 バケットを削除します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「バケットの削除」を参照してください。

  • このチュートリアル用に作成したIAMポリシーを削除します。詳細については、「 ユーザーガイド」のIAM「ポリシーの削除IAM」を参照してください。

  • このチュートリアル用に作成したIAMロールを削除します。詳細については、「 ユーザーガイド」の「ロールまたはインスタンスプロファイルの削除IAM」を参照してください。

  • このチュートリアル用に作成した CodeBuild プロジェクトを削除します。詳細については、「 ユーザーガイド」の「 でビルドプロジェクトを削除する CodeBuildAWS CodeBuild 」を参照してください。