翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Terraform を使用して、コンテナ化された Blu Age アプリケーションの環境をデプロイする
作成者: Richard Milner-Watts (AWS)
概要
従来のメインフレームワークロードを最新のクラウドアーキテクチャに移行することで、メインフレームを維持するコストを削減できます。このコストは、環境が古くなるにつれて増加する一方です。ただし、メインフレームからジョブを移行することには固有の課題があります。社内リソースはジョブのロジックに慣れていないかもしれませんし、こうした特殊なタスクでメインフレームの高いパフォーマンスを発揮することは、市販の一般的な CPU と比較すると再現するのが難しい場合があります。これらのジョブを書き直すのは大変な作業で、多大な労力を必要とします。
Blu Age は従来のメインフレームワークロードを最新の Java コードに変換し、それをコンテナとして実行できます。
このパターンは、Blu Age ツールでモダナイズされたコンテナ化されたアプリケーションを実行するサンプルサーバーレスアーキテクチャです。付属の HashiCorp Terraform ファイルは、バッチタスクとリアルタイムサービスの両方をサポートし、Blu Age コンテナのオーケストレーションの安全なアーキテクチャを構築します。
Blu Age と AWS のサービスを使用してワークロードをモダナイズする方法の詳細については、以下の AWS 規範ガイダンス出版物を参照してください。
Blu Ageを使用してメインフレームワークロードをモダナイズする方法については、Blu Age の Web サイト
前提条件と制限
前提条件
Blu Age によってモダナイズされたメインフレームのコンテナ化パターンによって提供された、コンテナ化された Blu Age アプリケーションのサンプル。サンプルアプリケーションには、最新化されたアプリケーションの入出力処理を処理するロジックが用意されており、このアーキテクチャと統合できます。
これらのリソースをデプロイするには Terraform が必要です。
制限
Amazon Elastic Container Service (Amazon ECS) は、コンテナで使用可能なタスクリソースに制限を設けます。これらのリソースには CPU、RAM、ストレージが含まれます。たとえば、Amazon ECS を AWS Fargate で使用する場合は、タスクリソースの制限が適用されます。
製品バージョン
このソリューションは次のバージョンでテスト済みです。
Terraform 1.3.6
Terraform AWS Provider 4.46.0
アーキテクチャ
ソーステクノロジースタック
Blu Age
Terraform
ターゲットテクノロジースタック
Amazon Aurora PostgreSQL 互換エディション
AWS Backup
Amazon Elastic Container Registry (Amazon ECR)
Amazon ECS
AWS Identity and Access Management (IAM)
AWS Key Management Service (AWS KMS)
AWS Secrets Manager
Amazon Simple Notification Service (Amazon SNS)
Amazon Simple Storage Service (Amazon S3)
AWS Step Functions
AWS Systems Manager
ターゲットアーキテクチャ
ソリューションアーキテクチャを次の図に示します。

このソリューションは次の IAM ロールをデプロイします。
バッチタスクロール
バッチタスク実行ロール
サービスタスクロール
サービスタスク実行ロール
段階関数ロール
AWS Backup ロール
RDS 拡張モニタリングロール
ロールは最小特権アクセスの原則に準拠しています。
Amazon ECR は、このパターンによってオーケストレーションされたコンテナイメージの保存に使用されます。
AWS Systems Manager Parameter Store は、実行時に各環境に関する設定データを Amazon ECS タスク定義に提供します。
AWS Systems Manager は、ランタイムに各環境に関する機密設定データを Amazon ECS タスク定義に提供します。データは AWS KMS によって暗号化されています。
Terraform モジュールは、すべてのリアルタイムタスクとバッチタスクの Amazon ECS タスク定義を作成します。
Amazon ECS は、コンピュートエンジンとして AWS Fargate を使用してバッチタスクを実行します。これは短寿命のタスクで、必要に応じて AWS Step Functions によって開始されます。
Amazon Aurora PostgreSQL 互換は、モダナイズされたアプリケーションをサポートするデータベースを提供します。これは IBM Db2 または IBM IMS DB などのメインフレームデータベースに代わるものです。
Amazon ECS は長寿命のサービスを実行して、最新のリアルタイムワークロードを提供します。これらのステートレスアプリケーションは、アベイラビリティーゾーンに分散されたコンテナで永続的に実行されます。
Network Load Balancer は、リアルタイムワークロードへのアクセス権付与に使用されます。Network Load Balancer は、IBM CICS などの旧プロトコルをサポートしています。または、HTTP ベースのワークロードで Application Load Balancer を使用できます。
Amazon S3 は、ジョブの入出力用のオブジェクトストレージを提供します。コンテナは Amazon S3 へのプル操作とプッシュ操作を処理して、Blu Age アプリケーションの作業ディレクトリを準備する必要があります。
AWS Step Functions サービスは、Amazon ECS タスクの実行を調整してバッチワークロードを処理するために使用されます。
各バッチワークロードの SNS トピックは、モダナイズされたアプリケーションを E メールなどの他のシステムと統合、Amazon S3 から FTP への出力オブジェクトの配信などの追加アクションの開始に使用されます。
注記
デフォルトでは、ソリューションはインターネットにアクセスできません。このパターンは、仮想プライベートクラウド (VPC) が AWS Transit Gateway
自動化とスケール
このパターン全体でサーバーレスリソースを使用することで、スケールアウトによって設計の規模にほとんど制限がないことを確認できます。これにより、元のメインフレームで体験する可能性のあるコンピュートリソースの競合など、近隣のノイズ懸念が軽減されます。バッチタスクは、必要に応じて同時に実行するようスケジュールできます。
各コンテナは、Fargate がサポートしている最大サイズで制限されます。詳細については、Amazon ECS ドキュメントのタスク CPU とメモリセクションを参照してください。
リアルタイムワークロードを水平方向にスケール
ツール
AWS のサービス
「Amazon Aurora PostgreSQL 互換エディション」は、PostgreSQL デプロイのセットアップ、運用、スケーリングに役立つ、フルマネージド型のACID準拠のリレーショナルデータベースエンジンです。
AWS Backup は、データ保護をクラウド、オンプレミス AWS のサービス、および 間で一元化および自動化するのに役立つフルマネージドサービスです。
「Amazon Elastic Container Registry (Amazon ECR)」 は、セキュリティ、スケーラビリティ、信頼性を備えたマネージドコンテナイメージレジストリサービスです。
「Amazon Elastic Container Service (Amazon ECS)」 は、クラスターでのコンテナの実行、停止、管理を支援する、高速でスケーラブルなコンテナ管理サービスです。
AWS Identity and Access Management (IAM) は、リソースの使用を認証および認可されたユーザーを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号キーを作成および管理する上で役立ちます。
AWS Secrets Manager は、コード内のハードコードされた認証情報 (パスワードを含む) を Secrets Manager への API コールに置き換えて、シークレットをプログラムで取得する上で役立ちます。
「Amazon Simple Notification Service (Amazon SNS)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。
Amazon Simple Storage Service (Amazon S3) は、任意の量のデータの保存、保護、取得に役立つクラウドベースのオブジェクトストレージサービスです。
AWS Step Functions は、 AWS Lambda 関数やその他の を組み合わせてビジネスクリティカルなアプリケーション AWS のサービス を構築するのに役立つサーバーレスオーケストレーションサービスです。
AWS Systems Manager Parameter Store は、設定データ管理とシークレット管理用の安全な階層型ストレージを提供します。
その他のサービス
HashiCorp Terraform
は、コードを使用してクラウドインフラストラクチャとリソースをプロビジョニングおよび管理するためのInfrastructure as Code (IaC) ツールです。このパターンでは、Terraform を使用してサンプルアーキテクチャを作成します。
コードリポジトリ
このパターンのソースコードは、GitHub Blu Age サンプル ECS インフラストラクチャ (Terraform)
ベストプラクティス
テスト環境では、最新のアプリケーションを設定する
forceDate
オプションなどの機能を使用して、既知の期間に常に実行することで一貫したテスト結果を生成します。各タスクを個別に調整して、最適な量のリソースを消費します。Amazon CloudWatch Container Insights を使用すると、潜在的なボトルネックに関するガイダンスを取得できます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
ソリューションソースコードを複製します。 | GitHub プロジェクト | DevOps エンジニア |
Terraform の状態を保存するリソースをデプロイして、環境をブートストラップします。 |
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
Terraform の設定を確認および更新します。 | ルートディレクトリで
| DevOps エンジニア |
Terraform ファイルをデプロイします。 | ターミナルから、 このインフラストラクチャのデプロイには 15 分以上かかる場合がある点に注意してください。 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
Blu Age コンテナイメージを Amazon ECR にプッシュします。 | 前のエピックで作成した Amazon ECR リポジトリにコンテナをプッシュします。手順については、Amazon ECR ドキュメントを参照してください。 コンテナイメージの URI を書き留めます。 | DevOps エンジニア |
Blu Age のコンテナイメージを参照する Terraform を更新します。 | アップロードしたコンテナイメージを参照する、 | DevOps エンジニア |
Terraform ファイルを再デプロイします。 | ターミナルから | DevOps エンジニア |