기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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
사전 조건 및 제한 사항
사전 조건
활성 상태의 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 Preciptive Guidance 패턴에 대해서는 메인프레임 현대화: DevOps Micro Focus를 사용한 AWS 기반 메인프레임 현대화를 참조하십시오.
제한 사항
Micro Focus Enterprise Server 데이터시트에서 지원하는 플랫폼 목록은 Micro Focus Enterprise Server 데이터 시트
를 참고하십시오. 이 패턴에 사용된 스크립트와 테스트는 Amazon EC2 Windows Server 2019를 기반으로 합니다. 다른 Windows Server 버전 및 운영 체제에서는 이 패턴에 대해 테스트되지 않았습니다.
이 패턴은 Windows용 Micro Focus Enterprise Server 6.0을 기반으로 합니다. 이전 또는 이후 릴리스는 이 패턴 개발 과정에서 테스트되지 않았습니다.
제품 버전
Micro Focus Enterprise Server 6.0
Windows Server 2019
아키텍처
기존 메인프레임 환경에서는 애플리케이션과 기업 데이터를 호스팅할 하드웨어를 프로비저닝해야 합니다. 계절별, 월별, 분기별 또는 예상치 못하거나 전례 없는 수요 급증에 대응하기 위해, 메인프레임 사용자는 스토리지와 컴퓨팅 파워를 추가로 구매하여 규모를 확장해야 합니다. 스토리지 및 컴퓨팅 용량 리소스의 수를 늘리면 전반적인 성능이 향상되지만 이러한 확장이 선형적인 것은 아닙니다.
Amazon EC2 Auto Scaling 및 Micro Focus Enterprise 서버를 사용하여 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 Preciptive Guideance 패턴 메인프레임 현대화: DevOps AWS 기반 Micro Focus에서는 Micro Focus 엔터프라이즈 개발자 및 AWS와 AWS의 엔터프라이즈 테스트 서버를 사용하여 AWS에서 메인프레임 애플리케이션의 개발 및 테스트를 가속화하는 아키텍처를 도입했습니다. CodePipeline CodeBuild 이 패턴은 고가용성과 복원력을 달성하기 위해 메인프레임 애플리케이션을 AWS 프로덕션 환경에 배포하는 데 중점을 둡니다.
메인프레임 프로덕션 환경에서는 고성능 및 고가용성을 달성하기 위해 메인프레임에 IBM Parallel Sysplex를 설치했을 수 있습니다. Sysplex와 유사한 스케일 아웃 아키텍처를 생성하기 위해 Micro Focus는 엔터프라이즈 서버에 성능 및 가용성 클러스터(PAC)를 도입했습니다. PAC는 단일 이미지로 관리되고 Amazon EC2 인스턴스에서 확장되는 여러 엔터프라이즈 서버 지역에 메인프레임 애플리케이션을 배포할 수 있도록 지원합니다. 또한 PAC는 예측 가능한 애플리케이션 성능과 온디맨드 시스템 처리량을 지원합니다.
PAC에서는 여러 엔터프라이즈 서버 인스턴스가 하나의 논리적 엔터티로 함께 작동합니다. 따라서 용량이 다른 지역과 공유되고 Amazon EC2 Auto Scaling 그룹과 같은 업계 표준 기능을 사용하여 새 인스턴스가 자동으로 시작되므로 어떤 Enterprise Server 인스턴스에 장애가 발생해도 비즈니스 연속성이 중단되지 않습니다. 이렇게 하면 단일 장애 지점이 제거되어 하드웨어, 네트워크 및 애플리케이션 문제에 대한 복원력이 향상됩니다. ESCWA(엔터프라이즈 서버 공용 웹 관리) API를 사용하여 확장된 엔터프라이즈 서버 인스턴스를 운영 및 관리할 수 있으므로 엔터프라이즈 서버의 운영 유지 관리 및 서비스 가능성을 간소화할 수 있습니다.
참고: Micro Focus는 엔터프라이즈 서버 지역에 장애가 발생하거나 유지 관리가 필요한 경우 가용성이 저하되지 않도록 성능 및 가용성 클러스터(PAC)
PAC 구성에는 지역 데이터베이스, 지역 간 데이터베이스 및 선택적 데이터 저장소 데이터베이스를 관리하기 위해 지원되는 관계형 데이터베이스 관리 서비스(RDBMS)가 필요합니다. 가용성과 확장성을 높이려면 Micro Focus Database File Handler 지원을 사용하여 VSAM(가상 저장소 액세스 방법) 파일을 관리하는 데 데이터 저장소 데이터베이스를 사용해야 합니다. 지원되는 RDBMS에는 다음이 포함됩니다.
Microsoft SQL Server 2009 R2 이상
PostgreSQL 10.x (Amazon Aurora PostgreSQL-Compatible Edition 포함)
DB2 10.4 이상
지원되는 RDBMS 및 PAC 요구 사항에 대한 자세한 내용은 Micro Focus Enterprise Server - 사전 조건
다음 다이어그램은 Micro Focus PAC의 일반적인 AWS 아키텍처 설정을 보여줍니다.
![AWS 클라우드 architecture with VPC, EC2 instances, load balancer, Aurora database, and Redis across availability zones.](images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)
구성 요소 | 설명 | |
---|---|---|
1 | Enterprise Server 인스턴스 오토 스케일링 그룹 | PAC에서 Enterprise Server 인스턴스와 함께 배포된 오토 스케일링 그룹을 설정합니다. Amazon CloudWatch 경보를 통해 지표를 사용하여 인스턴스 수를 확장하거나 시작할 수 있습니다. CloudWatch |
2 | Enterprise Server 인스턴스 오토 스케일링 그룹 | Enterprise Server Common Web Administration(ESCWA)와 함께 배포된 오토 스케일링 그룹을 설정합니다. ESCWA는 클러스터 관리 API를 제공합니다. ESCWA 서버는 Enterprise Server 인스턴스 오토 스케일링 이벤트 중에 Enterprise Server를 추가 또는 제거하고 PAC에서 Enterprise Servers 지역을 시작 또는 중지하는 컨트롤 플레인 역할을 합니다. ESCWA 인스턴스는 PAC 관리에만 사용되기 때문에 트래픽 패턴을 예측할 수 있으며 원하는 용량 오토 스케일링 요건을 1로 설정할 수 있습니다. |
3 | 다중 AZ 설정의 Amazon Aurora 인스턴스 | Enterprise Server 인스턴스에서 공유할 사용자 및 시스템 데이터 파일을 모두 호스팅하도록 관계형 데이터베이스 관리 시스템(RDBMS)을 설정합니다. |
4 | Amazon ElastiCache Redis용 인스턴스 및 복제본 | ElastiCache Redis 기본 인스턴스와 하나 이상의 복제본을 설정하여 사용자 데이터를 호스팅하고 엔터프라이즈 서버 인스턴스의 스케일 아웃 리포지토리 (SOR) 역할을 하십시오. 특정 유형의 사용자 데이터를 저장하도록 하나 이상의 스케일 아웃 리포지토리 |
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) API를 통해 관리됩니다.
자동 조정 이벤트 중에 클러스터 관리 작업을 자동화하려면 Systems Manager Automation 런북 및 Amazon EC2 Auto Scaling을 사용할 수 있습니다. EventBridge 이러한 자동화의 아키텍처는 다음 다이어그램에 나와 있습니다.
![AWS 클라우드 architecture diagram showing EventBridge, Systems Manager, and EC2 instances for Enterprise Server scaling.](images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)
구성 요소 | 설명 | |
---|---|---|
1 | 오토 스케일링 수명 주기 후크 | 자동 조정 수명 주기 후크를 설정하고 자동 조정 그룹에서 새 인스턴스가 시작되고 기존 인스턴스가 EventBridge 종료되면 Amazon에 알림을 보냅니다. |
2 | 아마존 EventBridge | 자동 조정 이벤트를 Systems Manager Automation 런북 대상으로 라우팅하도록 Amazon EventBridge 규칙을 설정합니다. |
3 | Automation 런북 | Systems Manager 자동화 런북을 설정하여 Windows PowerShell 스크립트를 실행하고 ESCWA API를 호출하여 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 ElastiCache Redis—Amazon은 클라우드에서 분산된 인메모리 데이터 스토어 또는 캐시 환경을 설정, 관리 및 확장하기 위한 웹 서비스입니다. 확장 가능하고 비용 효율적인 고성능 캐싱 솔루션을 제공합니다.
Amazon RDS - Amazon Relational Database Service(RDS)는 AWS 클라우드의 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있게 하는 웹 서비스입니다. 이 서비스는 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.
AWS Systems Manager – AWS Systems Manager는 AWS에서 인프라를 보고 제어하기 위해 사용할 수 있는 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 설명서 | 데이터 엔지니어, 엔지니어 DevOps |
작업 | 설명 | 필요한 기술 |
---|---|---|
Redis 인스턴스용 Amazon ElastiCache 클러스터용 CloudFormation 템플릿을 생성합니다. | AWS 예제 코드 스니펫을 사용하여 Redis 인스턴스용 Amazon ElastiCache 클러스터를 생성하는 CloudFormation 템플릿을 만드십시오. | 클라우드 아키텍트 |
CloudFormation 스택을 배포하여 Redis 인스턴스용 Amazon ElastiCache 클러스터를 생성합니다. | 프로덕션 워크로드에 다중 AZ 복제가 활성화된 Redis 인스턴스용 Amazon ElastiCache 클러스터를 생성합니다. | 클라우드 아키텍트 |
Enterprise Server PSOR 연결 설정을 구성합니다. | Micro Focus 설명서 | DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Micro Focus Enterprise Server AMI를 생성합니다. | Amazon EC2 Windows Server 인스턴스를 생성하고 EC2 인스턴스에 Micro Focus Enterprise Server 바이너리를 설치합니다. EC2 인스턴스의 Amazon Machine Image(AMI)를 생성합니다. 자세한 내용은 Enterprise Server 설치 설명서 | 클라우드 아키텍트 |
엔터프라이즈 서버 ESCWA용 CloudFormation 템플릿을 생성합니다. | AWS 예제 코드 스니펫을 사용하여 오토 스케일링 그룹에서 Enterprise Server ESCWA의 사용자 지정 스택을 생성하기 위한 템플릿을 만듭니다. | 클라우드 아키텍트 |
CloudFormation 스택을 배포하여 엔터프라이즈 서버 ESCWA용 Amazon EC2 스케일링 그룹을 생성합니다. | CloudFormation 템플릿을 사용하여 이전 스토리에서 만든 Micro Focus 엔터프라이즈 서버 ESCWA AMI를 사용하여 자동 스케일링 그룹을 배포하십시오. | 클라우드 아키텍트 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Systems Manager 자동화 런북용 CloudFormation 템플릿을 생성합니다. | 추가 정보 섹션의 예제 코드 스니펫을 사용하여 PAC 생성, 엔터프라이즈 서버 스케일 인 및 엔터프라이즈 서버 스케일 아웃을 자동화하는 Systems Manager Automation 런북을 생성하는 CloudFormation 템플릿을 만드십시오. | 클라우드 아키텍트 |
Systems Manager 자동화 런북이 포함된 CloudFormation 스택을 배포합니다. | CloudFormation 템플릿을 사용하여 PAC 생성, 엔터프라이즈 서버 스케일 인 및 엔터프라이즈 서버 스케일아웃을 위한 자동화 런북이 포함된 스택을 배포하십시오. | 클라우드 아키텍트 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Micro Focus 엔터프라이즈 서버의 자동 스케일링 그룹을 설정하기 위한 CloudFormation 템플릿을 생성합니다. | AWS 예제 코드 스니펫을 사용하여 자동 조정 그룹을 생성할 CloudFormation 템플릿을 만드십시오. 이 템플릿은 Micro Focus Enterprise Server ESCWA 인스턴스용으로 생성된 것과 동일한 AMI를 재사용합니다. 그런 다음 AWS 예제 코드 스니펫을 사용하여 자동 조정 수명 주기 이벤트를 생성하고 동일한 템플릿에서 확장 및 축소 이벤트를 EventBridge 필터링하도록 Amazon을 설정합니다. CloudFormation | 클라우드 아키텍트 |
Micro Focus 엔터프라이즈 서버의 자동 크기 조정 그룹용 CloudFormation 스택을 배포하십시오. | Micro Focus 엔터프라이즈 서버용 자동 스케일링 그룹이 포함된 CloudFormation 스택을 배포하십시오. | 클라우드 아키텍트 |
관련 리소스
추가 정보
PAC 클러스터를 스케일 인하거나 스케일 아웃하려면 다음 시나리오를 자동화해야 합니다.
PAC 시작 또는 재생성을 위한 자동화
PAC 클러스터를 시작할 때 Enterprise Server는 ESCWA가 API를 호출하여 PAC 구성을 생성해야 합니다. 그러면 Enterprise Server 지역이 시작되고 PAC에 Enterprise Server 영역이 추가됩니다. PAC를 생성 또는 재생성하려면 다음 단계를 따릅니다.
지정된 이름을 사용하여 ESCWA에서 PAC 스케일 아웃 리포지토리 PSOR)
를 구성합니다. POST /server/v1/config/groups/sors
지정된 이름으로 PAC를 생성하고 여기에 PSOR을 연결합니다.
POST /server/v1/config/groups/pacs
PAC를 처음 설정하는 경우 지역 데이터베이스와 지역 간 데이터베이스를 구성합니다.
참고: 이 단계에서는 SQL 쿼리와 Micro Focus Enterprise Suite 명령줄 dbhfhadmin 도구를 사용하여 데이터베이스를 만들고 초기 데이터를 가져옵니다.
PAC 정의를 Enterprise Server 지역에 설치합니다.
POST /server/v1/config/mfds POST /native/v1/config/groups/pacs/${pac_uid}/install
PAC에서 Enterprise Server 지역을 시작합니다.
POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
Windows PowerShell 스크립트를 사용하여 이전 단계를 구현할 수 있습니다.
다음 단계에서는 Windows PowerShell 스크립트를 재사용하여 PAC 생성을 자동화하는 방법을 설명합니다.
부트스트랩 프로세스의 일부로 Windows PowerShell 스크립트를 다운로드하거나 생성하는 Amazon EC2 시작 템플릿을 생성합니다. 예를 들면, EC2 사용자 데이터를 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷에서 스크립트를 다운로드할 수 있습니다.
AWS Systems Manager Automation 런북을 생성하여 Windows PowerShell 스크립트를 호출하십시오.
인스턴스 태그를 사용하여 런북을 ESCWA 인스턴스에 연결합니다.
시작 템플릿을 사용하여 ESCWA 자동 조정 그룹을 생성합니다.
다음 예제 AWS CloudFormation 스니펫을 사용하여 자동화 런북을 생성할 수 있습니다.
PAC 생성에 사용되는 Systems Manager 자동화 런북의 예제 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에 추가하는 방법을 설명합니다.
PAC 정의를 Enterprise Server 지역에 설치합니다.
POST '/server/v1/config/mfds' POST /native/v1/config/groups/pacs/${pac_uid}/install
PAC에서 해당 지역을 웜 스타트합니다.
POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
자동 스케일링 그룹을 로드 밸런서에 연결하여 Enterprise Server 인스턴스를 로드 밸런서에 추가합니다.
Windows 스크립트를 사용하여 이전 단계를 구현할 수 있습니다. PowerShell 자세한 내용은 Micro Focus Enterprise Server - PAC 구성
다음 단계는 Windows PowerShell 스크립트를 재사용하여 새로 시작된 Enterprise Server 인스턴스를 PAC에 추가하는 이벤트 기반 자동화를 구축하는 데 사용할 수 있습니다.
부트스트랩 중에 Enterprise Server Region을 프로비저닝하는 Enterprise Server 인스턴스용 Amazon EC2 시작 템플릿을 생성합니다. 예를 들어 Micro Focus Enterprise Server 명령 mfds를 사용하여 지역 구성을 가져올 수 있습니다. 이 명령에 사용할 수 있는 자세한 내용 및 옵션은 Enterprise Server Reference
를 참고하십시오. 이전 단계에서 생성된 시작 템플릿을 사용하는 Enterprise Server 오토 스케일링 그룹을 생성합니다.
Systems Manager 자동화 런북을 생성하여 Windows PowerShell 스크립트를 호출합니다.
인스턴스 태그를 사용하여 런북을 ESCWA 인스턴스에 연결합니다.
엔터프라이즈 서버 자동 조정 그룹의 EC2 인스턴스 시작 성공 이벤트를 필터링하는 Amazon EventBridge 규칙을 생성하고 자동화 런북을 사용할 대상을 생성합니다.
다음 예제 CloudFormation 스니펫을 사용하여 자동화 런북과 규칙을 생성할 수 있습니다. EventBridge
엔터프라이즈 서버 인스턴스를 확장하는 데 사용되는 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 인스턴스 종료 라이프사이클 작업 이벤트가 시작되고 PAC에서 Micro Focus Enterprise Server 인스턴스를 제거하려면 다음 프로세스와 API 호출이 필요합니다.
종료되는 Enterprise Server 인스턴스에서 해당 지역을 중지하십시오.
POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
PAC에서 Enterprise Server 인스턴스를 제거합니다.
DELETE "/server/v1/config/mfds/${uid}"
신호를 보내 Enterprise Server 인스턴스를 계속 종료합니다.
이전 단계는 Windows PowerShell 스크립트에서 구현할 수 있습니다. 이 프로세스에 대한 자세한 내용은 Micro Focus Enterprise Server 문서 - PAC 관리
다음 단계는 Windows 스크립트를 재사용하여 PAC에서 Enterprise Server 인스턴스를 종료하는 이벤트 기반 자동화를 구축하는 방법을 설명합니다. PowerShell
Systems Manager 자동화 런북을 생성하여 Windows PowerShell 스크립트를 호출합니다.
인스턴스 태그를 사용하여 런북을 ESCWA 인스턴스에 연결합니다.
EC2 인스턴스 종료를 위한 오토 스케일링 그룹 라이프사이클 후크를 생성합니다.
Enterprise Server 자동 스케일링 그룹에 대한 EC2 인스턴스 종료 라이프사이클 작업 이벤트를 필터링하는 Amazon EventBridge 규칙을 생성하고 자동화 런북을 사용할 대상을 생성합니다.
다음 예제 CloudFormation 템플릿을 사용하여 Systems Manager Automation 런북, 라이프사이클 후크 및 EventBridge 규칙을 생성할 수 있습니다.
엔터프라이즈 서버 인스턴스의 확장에 사용되는 Systems Manager 자동화 런북의 예제 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의 예측 조정을 참조하세요.