Amazon EC2 Auto Scaling と Systems Manager を搭載した Micro Focus Enterprise Server PAC を構築する - AWS 規範ガイダンス

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

Amazon EC2 Auto Scaling と Systems Manager を搭載した Micro Focus Enterprise Server PAC を構築する

作成者: Kevin Yung (AWS)、Peter Woods (Micro Focus)、Abraham Rondon (Micro Focus)、および Krithika Palani Selvam (AWS)

環境:本稼働

テクノロジー: モダナイゼーション CloudNative、 DevOps、インフラストラクチャ

[概要]

このパターンでは、スケールアウトパフォーマンス/アベイラビリティクラスター (PAC) の Micro Focus Enterprise Server、Amazon Web Services (AWS) 上で Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling グループを使用する、メインフレームアプリケーション用のスケーラブルなアーキテクチャが導入されています。このソリューションは、AWS Systems Manager と Amazon EC2 Auto Scaling ライフサイクルフックで完全に自動化されています。  このパターンを使用すると、メインフレームのオンラインアプリケーションとバッチアプリケーションをセットアップして、キャパシティの需要に応じた自動的なスケールインとスケールアウトを行い、高い回復性を実現できます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • Micro Focus Enterprise Server のソフトウェアとライセンス。詳細については、Micro Focus の営業担当にお問い合わせください。

  • Micro Focus Enterprise Server で実行するメインフレームアプリケーションの再構築と配信の概念について理解している。大まかな概要については、「Micro Focus Enterprise Server データシート」を参照してください。

  • Micro Focus Enterprise Serverのスケールアウトパフォーマンスおよび可用性クラスターの概念について理解している。詳細については、「Micro Focus Enterprise Server ドキュメント」を参照してください。

  • 継続的インテグレーション (CI) DevOps によるメインフレームアプリケーションの全体的な概念の理解。AWS と Micro Focus によって開発された AWS 規範ガイダンスパターンについては、「Micro Focus を使用した AWS DevOps でのメインフレームのモダナイゼーション」を参照してください。

制約事項

  • Micro Focus Enterprise Server でサポートされているプラットフォームのリストについては、「Micro Focus Enterprise Serverのデータシート」を参照してください。

  • このパターンで使用されるスクリプトとテストは Amazon EC2 Windows Server 2019 に基づいています。他の Windows Server バージョンとオペレーティングシステムでは、このパターンではテストされていません。

  • このパターンは Micro Focus Enterprise Server 6.0 for Windows に基づいています。このパターンの開発では、それ以前またはそれ以降のリリースではテストされていません。

製品バージョン

  • Micro Focus Enterprise Server 6.0

  • [Windows Server 2019]

アーキテクチャ

従来のメインフレーム環境では、アプリケーションと企業データをホストするハードウェアをプロビジョニングする必要があります。季節、月次、四半期、さらには前例のない、または予期しない需要の急増に対応するため、メインフレームユーザーは、ストレージとコンピューティングの容量を追加購入してスケールアウトする必要があります。ストレージとコンピューティングキャパシティのリソースを増やすと全体的なパフォーマンスは向上しますが、スケーリングは線形になりません

Amazon EC2 Auto Scaling と Micro Focus Enterprise Servers を使用して AWS でオンデマンド消費モデルを採用し始めた場合は異なります。以下のセクションでは、Amazon EC2 Auto Scaling グループで Micro Focus Enterprise Server スケールアウトパフォーマンスおよび可用性クラスター (PAC) を使用して、完全に自動スケーリングされたメインフレームアプリケーションのアーキテクチャを構築する方法について詳しく説明します。 

Micro Focus Enterprise Server の自動スケーリングアーキテクチャ

最初に Micro Focus Enterprise Server の基本概念を理解することが重要です。従来 IBM メインフレーム上で実行されていたアプリケーションに、メインフレーム互換の x86 デプロイメント環境を提供します。オンラインおよびバッチ実行と、以下の機能をサポートするトランザクション環境を提供します。

  • IBM COBOL

  • IBM PL/I

  • IBM JCL バッチジョブ

  • IBM CICS と IMS TM トランザクション

  • ウェブサービス

  • SORT を含む一般的なバッチユーティリティ 

Micro Focus Enterprise Server を使用すると、メインフレームアプリケーションで最小限の変更を実行できます。既存のメインフレームワークロードを x86 プラットフォームに移行してモダナイズし、AWS クラウドネイティブエクステンションを活用して新規市場や地域への迅速な拡大を図ることができます。 

AWS 規範ガイダンスパターン Mainframe modernization: DevOps on AWS with Micro Focus は、Micro Focus Enterprise Developer と Enterprise Test Server with AWS を使用して AWS でのメインフレームアプリケーションの開発とテストを加速するアーキテクチャを導入しました CodePipeline CodeBuild。このパターンでは、メインフレームアプリケーションを AWS 実稼働環境にデプロイし、高い可用性と回復性を実現することに重点を置いています。

メインフレームの実稼働環境では、メインフレームに IBM Parallel Sysplex を設定して、高パフォーマンスと高可用性を実現している場合があります。Sysplex と同様のスケールアウト アーキテクチャを構築するために、Micro Focus はパフォーマンス/可用性クラスター (PAC) を Enterprise Server に導入しました。PAC は、単一イメージとして管理され、Amazon EC2 インスタンスでスケールアウトされた複数の Enterprise Server リージョンへのメインフレームアプリケーションのデプロイをサポートします。PAC は、予測可能なアプリケーションパフォーマンスとオンデマンドのシステムスループットもサポートします。  

PAC では、複数の Enterprise Server インスタンスが連携して 1 つの論理エンティティとして機能します。  そのため、1 つの Enterprise Server インスタンスに障害が発生しても、容量が他のリージョンと共有され、新規インスタンスは Amazon EC2 Auto Scaling グループなどの業界標準機能を使用して自動的に起動され、事業継続性が中断されることはありません。これにより、単一障害点が解消され、ハードウェア、ネットワーク、アプリケーションの問題に対する耐性が向上します。  スケールアウトしたエンタープライズサーバーインスタンスを運用および管理するために、Enterprise Server Common Web Administration (ESCWA) API を使用することで、Enterprise Server の運用メンテナンスおよび保守性を簡素化することができます。 

注: Micro Focus は、Enterprise Server リージョンに障害が発生したり、メンテナンスが必要になっても可用性が損なわれないように、パフォーマンス/可用性クラスター (PAC) を少なくとも 3 つの Enterprise Server リージョンで構成することを推奨しています。

PAC 構成でリージョンデータベース、クロスリージョンデータベース、およびオプションのデータストアデータベースを管理するには、サポートされているリレーショナルデータベース管理サービス (RDBMS) が必要です。Virtual Storage Access Method (VSAM) ファイルの管理にはデータストアデータベースを使用し、可用性とスケーラビリティを向上させるには Micro Focus データベースファイルハンドラサポートを使用する必要があります。サポートされる RDBMS には、以下のものが含まれます。

  • Microsoft SQL Server 2009 R2 以降

  • PostgreSQL 10.x (Amazon Aurora PostgreSQL 互換エディションを含む) 

  • DB2 10.4 以降

サポートされている RDBMS および PAC の要件の詳細は、「Micro Focus Enterpriseサーバー - 前提条件」および「Micro Focus Enterprise Server - 推奨される PAC 構成」を参照してください。

次の図は、Micro Focus PAC の一般的な AWS アーキテクチャセットアップを示しています。 

AWS クラウド architecture with VPC, EC2 instances, load balancer, Aurora database, and Redis across availability zones.

コンポーネント

説明

1

Enterprise Server インスタンス、自動スケーリンググループ

PAC の Enterprise Server インスタンスと一緒にデプロイされる自動スケーリンググループを設定します。  インスタンスの数は、 CloudWatch メトリクスを使用して Amazon CloudWatch アラームによってスケールアウトまたは開始できます。

2

Enterprise Server ESCWA インスタンス、自動スケーリンググループ 

Enterprise Server Common Web Administration (ESCWA) でデプロイされた自動スケーリンググループを設定します。  ESCWA はクラスター管理 API を提供します。    ESCWA 経由のソーシャルサーバーは、Enterprise Server インスタンスの自動スケーリングイベント中に Enterprise Server サーバーを追加または削除したり、PAC 内のエンタープライズサーバー領域を起動または停止したりするコントロールプレーンとして機能します。  ESCWA インスタンスは PAC 管理にのみ使用されるため、トラフィックパターンは予測可能で、自動スケーリングに必要な容量要件は 1 に設定できます。 

3

マルチ AZ セットアップでの Amazon Aurora インスタンス 

Enterprise Server インスタンス間で共有されるユーザーデータファイルとシステムデータファイルの両方をホストするリレーショナルデータベース管理システム (RDBMS) を設定します。

4

Amazon ElastiCache for Redis インスタンスとレプリカ

ユーザーデータをホストし、Enterprise Server インスタンスのスケールアウトリポジトリ (SOR) として機能するように、 ElastiCache Redis プライマリインスタンスと少なくとも 1 つのレプリカを設定します。特定タイプのユーザーデータを保存するスケールアウトリポジトリを 1 つ以上設定できます。  Enterprise Server は、PAC の整合性を維持するための要件である SOR として Redis NoSQL データベースを使用します。

5

Network Load Balancer

ロードバランサーを設定して、アプリケーションのホスト名を指定し、Enterprise Server インスタンスによって提供されるサービスに接続します (たとえば、3270 エミュレータを使用してアプリケーションにアクセスします)。

これらのコンポーネントは、Micro Focus Enterprise Server PAC クラスターの最小要件となります。次のセクションでは、クラスター管理の自動化について説明します。

スケーリング用の AWS Systems Manager Automation を使用する

PAC クラスターが AWS にデプロイされると、PAC は Enterprise Server Common Web Administration (ESCWA) で管理されます。 

自動スケーリングイベント中のクラスター管理タスクを自動化するには、Systems Manager Automation ランブックと Amazon EC2 Auto Scaling を Amazon で使用できます EventBridge。以下の図は、これらの自動化のアーキテクチャを示しています。

AWS クラウド architecture diagram showing EventBridge, Systems Manager, and EC2 instances for Enterprise Server scaling.

コンポーネント

説明

1

Auto Scaling ライフサイクルフック

自動スケーリングライフサイクルフックを設定し、新しいインスタンスが起動され、既存のインスタンスが自動スケーリンググループで終了 EventBridge したときに Amazon に通知を送信します。

2

Amazon EventBridge

自動スケーリングイベントを Systems Manager Automation ランブックターゲットにルーティングするように Amazon EventBridge ルールを設定します。

3

Automation ランブック

Systems Manager Automation ランブックをセットアップして Windows PowerShell スクリプトを実行し、ESCWA APIs を呼び出して PAC を管理します。例については、「追加情報」セクションを参照してください。

4

自動スケーリンググループの Enterprise Server ESCWA インスタンス

自動スケーリンググループで、Enterprise Server ESCWA インスタンスを設定します。ESCWA インスタンスには、PAC を管理するための API が用意されています。 

ツール

  • Micro Focus Enterprise Server – Micro Focus Enterprise Server は、Enterprise Developer のあらゆる統合開発環境 (IDE) バリアントで作成されたアプリケーションの実行環境を提供します。

  • Amazon EC2 Auto Scaling – Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。Auto Scaling グループと呼ばれる EC2 インスタンスの集合を作成し、インスタンスの最小数と最大数を指定します。 

  • Amazon ElastiCache for Redis – Amazon ElastiCache は、クラウド内の分散インメモリデータストアまたはキャッシュ環境をセットアップ、管理、スケーリングするためのウェブサービスです。高性能かつスケーラブルで費用対効果の高いキャッシュソリューションを提供します。

  • Amazon RDS」— Amazon Relational Database Service (Amazon RDS) は、AWS クラウドでのリレーショナルデータベースのセットアップ、運用、スケールをより簡単にするウェブサービスです。リレーショナルデータベース向けに、コスト効率に優れ、サイズ変更可能な容量を提供し、一般的なデータベース管理タスクを管理します。 

  • AWS Systems Manager – AWS Systems Manager は、インフラストラクチャを表示およびコントロールするために使用できる AWS サービスです。Systems Manager コンソールを使用すると、複数の AWS サービスからの運用データを表示し、AWS リソース全体の運用タスクを自動化できます。Systems Manager は、マネージドインスタンスをスキャンし、検出されたポリシー違反を報告(または是正措置を講じる)して、セキュリティとコンプライアンスを維持することができます。

エピック

タスク説明必要なスキル
Amazon Aurora インスタンスの AWS CloudFormation テンプレートを作成します。

AWS サンプルコードスニペットを使用して、Amazon Aurora PostgreSQL 互換エディションインスタンスを作成する CloudFormation テンプレートを作成します。

クラウドアーキテクト
CloudFormation スタックをデプロイして Amazon Aurora インスタンスを作成します。

CloudFormation テンプレートを使用して、本番ワークロードでマルチ AZ レプリケーションが有効になっている Aurora PostgreSQL 互換インスタンスを作成します。

クラウドアーキテクト
Enterprise Server のデータベース接続を設定します。

Micro Focus ドキュメント」の指示に従って、Micro Focus Enterprise Server の接続文字列とデータベース設定を準備します。

データエンジニア、 DevOps エンジニア
タスク説明必要なスキル
Redis インスタンスの Amazon ElastiCache クラスターの CloudFormation テンプレートを作成します。

AWS サンプルコードスニペットを使用して、Redis インスタンスの Amazon ElastiCache クラスターを作成する CloudFormation テンプレートを作成します。

クラウドアーキテクト
CloudFormation スタックをデプロイして、Redis インスタンスの Amazon ElastiCache クラスターを作成します。

本番ワークロードでマルチ AZ レプリケーションが有効になっている Redis インスタンスの Amazon ElastiCache クラスターを作成します。

クラウドアーキテクト
Enterprise Server PSOR 接続を設定します。

Micro Focus ドキュメント」の指示に従って、PAC Scale-Out Repository (PSOR) の接続文字列とデータベース設定を準備します。

DevOps エンジニア
タスク説明必要なスキル
Micro Focus Enterprise Server AMI を作成します。

Amazon EC2 Windows Server インスタンスを作成し、その EC2 インスタンスに Micro Focus Enterprise Server バイナリをインストールします。  EC2 インスタンスの Amazon マシンイメージ (AMI) を作成します。詳細については、「Enterprise Server ドキュメント」を参照してください。

クラウドアーキテクト
Enterprise Server ESCWA の CloudFormation テンプレートを作成します。

AWS サンプルコードスニペット」を使用して、自動スケーリンググループ内に Enterprise Server ESCWA のカスタムスタックを作成するためのテンプレートを作成します。

クラウドアーキテクト
CloudFormation スタックをデプロイして、Enterprise Server ESCWA 用の Amazon EC2 スケーリンググループを作成します。

CloudFormation テンプレートを使用して、前のストーリーで作成した Micro Focus Enterprise Server ESCWA AMI で自動スケーリンググループをデプロイします。

クラウドアーキテクト
タスク説明必要なスキル
Systems Manager Automation ランブックの CloudFormation テンプレートを作成します。

「追加情報」セクションのコードスニペットの例を使用して、PAC 作成、Enterprise Server スケールイン、および Enterprise Server スケールアウトを自動化するための Systems Manager Automation ランブックを作成する CloudFormation テンプレートを作成します。

クラウドアーキテクト
Systems Manager Automation ランブックを含む CloudFormation スタックをデプロイします。

CloudFormation テンプレートを使用して、PAC 作成、Enterprise Server スケールイン、Enterprise Server スケールアウト用の Automation ランブックを含むスタックをデプロイします。

クラウドアーキテクト
タスク説明必要なスキル
Micro Focus Enterprise Server の自動スケーリンググループを設定するための CloudFormation テンプレートを作成します。

AWS サンプルコードスニペットを使用して、自動スケーリンググループを作成する CloudFormation テンプレートを作成します。このテンプレートは、Micro Focus Enterprise Server ESCWA インスタンス用に作成された AMI を再利用します。 

次に、AWS サンプルコードスニペットを使用して自動スケーリングライフサイクルイベントを作成し、同じ CloudFormation テンプレート内のスケールアウトイベントとスケールインイベントをフィルタリング EventBridge するように Amazon を設定します。

クラウドアーキテクト
Micro Focus Enterprise Server の自動スケーリンググループの CloudFormation スタックをデプロイします。

Micro Focus Enterprise Servers の自動スケーリンググループを含む CloudFormation スタックをデプロイします。

クラウドアーキテクト

関連リソース

追加情報

PAC クラスターをスケールインまたはスケールアウトするには、以下のシナリオを自動化する必要があります。 

PAC の開始または再作成を自動化する

PAC クラスターの開始時に、Enterprise Server ESCWA は ESCWA に API を呼び出して PAC 構成を作成するように要求します。これにより、Enterprise Server リージョンが起動し、PAC に追加されます。  PAC を作成または再作成するには、次の手順に従います: 

  1. ESCWA で PAC スケールアウトリポジトリ (PSOR) を指定した名前で設定します。

    POST /server/v1/config/groups/sors
  2. 指定した名前で PAC を作成し、PSOR をアタッチします。

    POST /server/v1/config/groups/pacs
  3. PAC の初回設定時は、リージョンデータベースとクロスリージョンデータベースを設定します。 

    注: このステップでは、SQL クエリと Micro Focus Enterprise Suite コマンドライン dbhfhadmin ツールを使用してデータベースを作成し、初期データをインポートします。

  4. PAC の定義を Enterprise Server リージョンにインストールします。 

    POST /server/v1/config/mfds POST /native/v1/config/groups/pacs/${pac_uid}/install
  5. PAC 内の Enterprise Server リージョンを起動します。 

    POST /native/v1/regions/${host_ip}/${port}/${region_name}/start

前のステップは、Windows PowerShell スクリプトを使用して実装できます。 

次の手順では、Windows PowerShell スクリプトを再利用して PAC を作成するための自動化を構築する方法について説明します。

  1. ブートストラッププロセスの一環として Windows PowerShell スクリプトをダウンロードまたは作成する Amazon EC2 起動テンプレートを作成します。例えば、EC2 ユーザーデータを使用して、Amazon Simple Storage Service (Amazon S3) バケットからスクリプトをダウンロードできます。 

  2. Windows PowerShell スクリプトを呼び出す AWS Systems Manager Automation ランブックを作成します。

  3. インスタンスタグを使用して、ランブックを ESCWA インスタンスに関連付けます。  

  4. 起動テンプレートを使用して ESCWA 自動スケーリンググループを作成します。 

次の AWS CloudFormation スニペットの例を使用して、オートメーションランブックを作成できます。

PAC 作成に使用される Systems Manager Automation ランブックの CloudFormation スニペット例

PACInitDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to create Enterprise Server PAC mainSteps: - action: aws:runPowerShellScript name: CreatePAC inputs: onFailure: Abort timeoutSeconds: "1200" runCommand: - | C:\Scripts\PAC-Init.ps1 PacInitAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: description: Prepare Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunPACInitDocument action: aws:runCommand timeoutSeconds: 300 onFailure: Abort inputs: DocumentName: !Ref PACInitDocument Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true" PacInitDocumentAssociation: Type: AWS::SSM::Association Properties: DocumentVersion: "$LATEST" Name: !Ref PACInitDocument Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true"

詳細については、「Micro Focus Enterprise Server- PAC の設定」を参照してください。

新しい Enterprise Server インスタンスによるスケールアウトの自動化

Enterprise Server インスタンスをスケールアウトする場合、その Enterprise Server リージョンを PAC に追加する必要があります。  以下の手順では、ESCWA API を呼び出して、Enterprise Server リージョンを PAC に追加する方法について説明します。 

  1. PAC の定義を Enterprise Server リージョンにインストールします。 

    POST '/server/v1/config/mfds' POST /native/v1/config/groups/pacs/${pac_uid}/install
  2. PAC 内のリージョンをウォームスタートします。 

    POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
  3. 自動スケーリンググループをロードバランサーに関連付けて、Enterprise Server インスタンスをロードバランサーに追加します。 

前のステップは、Windows PowerShell スクリプトを使用して実装できます。詳細については、「Micro Focus Enterprise Server- PAC の設定」を参照してください。

次の手順を使用して、Windows PowerShell スクリプトを再利用することで、新しく起動した Enterprise Server インスタンスを PAC に追加するためのイベント駆動型のオートメーションを構築できます。 

  1. ブートストラップ時に Enterprise Server リージョンをプロビジョニングする Enterprise Server インスタンス用の Amazon EC2 起動テンプレートを作成します。たとえば、Micro Focus Enterprise Server のコマンド mfds を使用してリージョン設定をインポートできます。このコマンドのさらなる詳細とオプションについては、「Enterprise Server リファレンス」を参照してください。

  2. 前の手順で作成した起動テンプレートを使用する Enterprise Server 自動スケーリンググループを作成します。

  3. Windows PowerShell スクリプトを呼び出す Systems Manager Automation ランブックを作成します。 

  4. インスタンスタグを使用して、ランブックを ESCWA インスタンスに関連付けます。  

  5. Enterprise Server の自動スケーリンググループの EC2 インスタンス起動成功イベントをフィルタリングする Amazon EventBridge ルールを作成し、オートメーションランブックを使用するターゲットを作成します。

次のサンプル CloudFormation スニペットを使用して、オートメーションランブックと EventBridge ルールを作成できます。

Enterprise Server インスタンスのスケールアウトに使用される Systems Manager CloudFormation のサンプルスニペット

ScaleOutDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to Adding MFDS Server into an existing PAC parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" mainSteps: - action: aws:runPowerShellScript name: Add_MFDS inputs: onFailure: Abort timeoutSeconds: "300" runCommand: - | $ip = "{{InstanceIpAddress}}" if ( ${ip} -eq "Not-Available" ) { $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress" } C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}} PacScaleOutAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunScaleOutCommand action: aws:runCommand timeoutSeconds: 300 onFailure: Abort inputs: DocumentName: !Ref ScaleOutDocument Parameters: InstanceIpAddress: "{{InstanceIpAddress}}" InstanceId: "{{InstanceId}}" MfdsPort: "{{MfdsPort}}" Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true"

新しい Enterprise Server インスタンスによるスケールアウトの自動化

スケールアウトと同様に、Enterprise Server インスタンスをスケールインすると、EC2 インスタンス終了ライフサイクルアクションイベントが開始されます。Micro Focus Enterprise Server インスタンスを PAC から削除するには、以下のプロセスと API 呼び出しが必要になります。 

  1. 終了する Enterprise Server インスタンスのリージョンを停止します。

    POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
  2. Enterprise Server インスタンスを PAC から削除します。

    DELETE "/server/v1/config/mfds/${uid}"
  3. Enterprise Server インスタンスの終了を続行するシグナルを送信します。

前のステップは Windows PowerShell スクリプトで実装できます。このプロセスの詳細については、「Micro Focus Enterprise Server ドキュメント - PAC の管理」を参照してください。

次の手順では、Windows PowerShell スクリプトを再利用して Enterprise Server インスタンスを PAC から終了するイベント駆動型のオートメーションを構築する方法について説明します。 

  1. Windows PowerShell スクリプトを呼び出す Systems Manager Automation ランブックを作成します。

  2. インスタンスタグを使用して、ランブックを ESCWA インスタンスに関連付けます。  

  3. EC2 インスタンスを終了するための自動スケーリンググループのライフサイクルフックを作成します。

  4. Amazon EventBridge ルールを作成して、Enterprise Server 自動スケーリンググループの EC2 インスタンス終了ライフサイクルアクションイベントをフィルタリングし、オートメーションランブックを使用するターゲットを作成します。 

次のサンプル CloudFormation テンプレートを使用して、Systems Manager Automation ランブック、ライフサイクルフック、および EventBridge ルールを作成できます。

Enterprise Server インスタンスでのスケーリングに使用される Systems Manager Automation ランブックの CloudFormation スニペットの例

ScaleInDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to Remove MFDS Server from PAC parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" mainSteps: - action: aws:runPowerShellScript name: Remove_MFDS inputs: onFailure: Abort runCommand: - | $ip = "{{InstanceIpAddress}}" if ( ${ip} -eq "Not-Available" ) { $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress" } C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}} PacScaleInAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunScaleInCommand action: aws:runCommand timeoutSeconds: "600" onFailure: Abort inputs: DocumentName: !Ref ScaleInDocument Parameters: InstanceIpAddress: "{{InstanceIpAddress}}" MfdsPort: "{{MfdsPort}}" InstanceId: "{{InstanceId}}" Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true" - name: TerminateTheInstance action: aws:executeAwsApi inputs: Service: autoscaling Api: CompleteLifecycleAction AutoScalingGroupName: !Ref AutoScalingGroup InstanceId: "{{ InstanceId }}" LifecycleActionResult: CONTINUE LifecycleHookName: !Ref ScaleInLifeCycleHook

Amazon EC2 自動スケーリングトリガーの自動化

Enterprise Server インスタンスのスケーリングポリシーを設定するプロセスには、アプリケーションの動作を理解する必要があります。ほとんどの場合、ターゲット追跡スケーリングポリシーを設定できます。例えば、平均 CPU 使用率を Amazon CloudWatch メトリクスとして使用して、自動スケーリングポリシーに設定できます。詳細については、「Amazon EC2 Auto Scaling のターゲット追跡スケーリング ポリシー」を参照してください。通常のトラフィックパターンを使用するアプリケーションでは、予測的スケーリングポリシーの使用を検討してください。詳細については、「Amazon EC2 Auto Scaling の予測スケーリング」を参照してください。