vRealize Automation Cloud GCP(Google Cloud Platform) 클라우드 계정 사용자는 고가용성을 포함한 사용자 지정 솔루션을 지원하도록 로드 밸런서를 구성할 수 있습니다.
vRealize Automation Cloud GCP 클라우드 계정 사용자는 특정 요구 사항을 지원하도록 로드 밸런서 구성의 여러 측면을 구성할 수 있습니다. 이러한 기능은 예를 들어 SAP NetWeaver 및 SAP Mana에 대한 프로비저닝 인프라를 지원할 수 있습니다.
GCP 클라우드 계정으로 고가용성 로드 밸런서 구성 설정
GCP 클라우드 계정을 사용하는 vRealize Automation Cloud 사용자는 고가용성과 같은 특정 요구 사항을 지원하도록 로드 밸런서 구성의 여러 측면을 구성할 수 있습니다. 이러한 기능은 예를 들어 SAP NetWeaver 및 SAP Mana에 대한 프로비저닝 인프라를 지원할 수 있습니다.
이 구성을 통해 다양한 가용 영역에 다양한 로드 밸런서 인스턴스를 배포할 수 있습니다. 이를 설정하려면 GCP에서 다음 구성요소를 구성해야 합니다.
- 가상 IP 주소 예약
- 상태 점검 프로비저닝
- 상태 점검을 지원하는 방화벽 규칙 생성
GCP 측을 설정한 후에는 아래 설명된 대로 vRealize Automation Cloud에서 적절한 구성 요소를 설정해야 합니다.
- GCP 클라우드 계정이 아직 없다면 생성합니다.
- 환경에 맞게 버전 및 이미지 매핑을 설정합니다.
- 클라우드 템플릿에서 호출할 수 있도록 기본 네트워크 프로파일을 생성하고 태그를 지정합니다.
- 계산 가용성 영역을 생성하고 적절하게 태그를 지정합니다. 이렇게 하면 클라우드 템플릿의 특정 가용성 영역에 인스턴스 및 인스턴스 그룹을 프로비저닝하도록 vRealize Automation Cloud에 지시할 수 있습니다.
이러한 모든 구성 요소를 구성했으면 Cloud Assembly [설계] 탭으로 이동하여 클라우드 템플릿을 생성할 수 있습니다. 이 템플릿은 상태 점검과 인스턴스 및 인스턴스 그룹에 대한 규격을 적절히 사용하여 적절한 로드 밸런서 구성을 모델링해야 합니다. 고가용성을 위해 여러 로드 밸런서를 구성해야 합니다. 또한 클라우드 템플릿은 적절한 가상 시스템과 배포해야 하는 가용성 영역을 지정해야 합니다.
다음 클라우드 템플릿 예는 NetWeaver에 대한 고가용성 로드 밸런서 구성을 설정하는 방법을 보여줍니다.
formatVersion: 1 inputs: {} resources: Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP port: 1000 instancePort: 1000 network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false fallbackInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName} Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP port: 1000 instancePort: 1000 network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName} fallbackInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_1.resourceName} Cloud_GCP_Machine_2: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-b Cloud_Network_1: type: Cloud.Network properties: networkType: existing constraints: - tag: default Cloud_GCP_Machine_1: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-a
추가 로드 밸런서 구성 옵션
클라우드 템플릿 구성을 사용하여 vRealize Automation Cloud 사용자는 로드 밸런서 구성의 다음과 같은 추가 측면을 구성할 수 있습니다.
- 로드 밸런서 간에 인스턴스 그룹 공유
- 페일오버 인스턴스 그룹 구성
- 모든 포트에서 트래픽을 수락하도록 로드 밸런서 구성
인스턴스 그룹 공유
로드 밸런서 간에 인스턴스 그룹을 공유하려면 사용자가 Blueprint에서 명시적으로 선언해야 합니다. Blueprint의 인스턴스 그룹에 직접 액세스할 수 없기 때문에 고객은 useInstanceGroupsFrom
속성을 사용해야 합니다. 이러한 방식으로 vRealize Automation Cloud는 첫 번째 로드 밸런서를 프로비저닝하고 다른 로드 밸런서에서 인스턴스 그룹을 재사용합니다.
다음 예에서는 클라우드 템플릿을 사용하여 두 개의 로드 밸런서를 구성하면서 두 번째 로드 밸런서가 첫 번째 로드 밸런서의 인스턴스 그룹을 사용하도록 구성하는 방법을 보여줍니다.
Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName}
페일오버 인스턴스 그룹 구성
각 GCP 로드 밸런서에 대해 페일오버 인스턴스 그룹을 구성하려면 클라우드 템플릿에서 명시적으로 선언해야 합니다. 템플릿의 인스턴스 그룹에 직접 액세스할 수 없기 때문에 해당 인스턴스 그룹에 포함된 시스템별로 인스턴스 그룹을 찾도록 vRealize Automation Cloud에 지시하는 failoverInstanceGroupsByInstanceNames
속성을 사용해야 합니다.
다음 예에서는 기본 인스턴스 그룹 하나와 페일오버 인스턴스 그룹 하나가 있는 로드 밸런서의 구성을 보여줍니다.
Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName}
모든 포트의 트래픽에 대해 구성
모든 포트에서 트래픽을 수락하도록 로드 밸런서를 구성하려면 경로 구성의 포트 속성을 생략하면 됩니다. 새로 생성된 세 가지 기능을 사용하고 이 설정에 대한 인프라를 프로비저닝하는 샘플 클라우드 템플릿을 볼 수 있습니다. https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_support
formatVersion: 1 inputs: {} resources: Cloud_LoadBalancer_1: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_2.resourceName} address: 10.132.0.72 Cloud_LoadBalancer_2: type: Cloud.LoadBalancer properties: routes: - healthCheckConfiguration: healthyThreshold: 2 unhealthyThreshold: 2 timeoutSeconds: 10 intervalSeconds: 10 port: 65000 protocol: TCP protocol: TCP network: ${resource.Cloud_Network_1.id} instances: - ${resource.Cloud_GCP_Machine_1.id} - ${resource.Cloud_GCP_Machine_2.id} internetFacing: false useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName} failoverInstanceGroupsByInstanceNames: - ${resource.Cloud_GCP_Machine_1.resourceName} address: 10.132.0.64 Cloud_GCP_Machine_2: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-c Cloud_Network_1: type: Cloud.Network properties: networkType: existing constraints: - tag: default Cloud_GCP_Machine_1: type: Cloud.GCP.Machine properties: image: image flavor: flavor networks: - network: ${resource.Cloud_Network_1.id} constraints: - tag: zone-b