VMware Aria Automation Google Cloud Platform (GCP) クラウド アカウントのユーザーは、高可用性などのカスタム ソリューションをサポートするようにロード バランサを構成できます。

VMware Aria Automation GCP クラウド アカウント ユーザーは、特定の要件をサポートするようにロード バランサ構成のいくつかの側面を構成できます。たとえば、これらの機能は、SAP NetWeaver および SAP Hana 用のインフラストラクチャのプロビジョニングをサポートできます。

注: このトピックでは、従来のロード バランサ リソースの作成方法について説明します。プラグイン ベースのロード バランサを作成する場合は、「 プラグイン ベースのロード バランサの構成」を参照してください。

GCP クラウド アカウントを使用した高可用性ロード バランサ構成の設定

GCP クラウド アカウントを持つ VMware Aria Automation ユーザーは、高可用性などの特定の要件をサポートするように、ロード バランサ構成のいくつかの側面を構成できます。これらの機能は、SAP NetWeaver および SAP Hana 用のインフラストラクチャのプロビジョニングをサポートできます。

この構成により、複数のロード バランサ インスタンスを、それぞれ異なるアベイラビリティ ゾーンに展開できます。この設定を行うには、GCP で次のコンポーネントを構成する必要があります。

  • 仮想 IP アドレスの予約
  • 健全性チェックのプロビジョニング
  • 健全性チェックをサポートするファイアウォール ルールの作成
次の画面では、GCP でこれらのコンポーネントを設定および構成する方法について説明します。 https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_supportNetWeaver および Hana の構成の詳細については、次の画面も参照してください。

GCP 側を設定したら、次の説明に従って、VMware Aria Automation で適切なコンポーネントを設定する必要があります。

  • GCP クラウド アカウントをまだ持っていない場合は、作成します。
  • 環境に応じて、フレーバーとイメージのマッピングを設定します。
  • デフォルトのネットワーク プロファイルを作成し、タグ付けして、クラウド テンプレートから呼び出せるようにします。
  • コンピューティング アベイラビリティ ゾーンを作成し、適切にタグ付けします。このようにすることで、クラウド テンプレート内の特定のアベイラビリティ ゾーンにインスタンスとインスタンス グループをプロビジョニングするように VMware Aria Automation に指示できます。

これらのコンポーネントをすべて構成したら、Automation Assembler[デザイン] タブに移動して、クラウド テンプレートを作成できます。このテンプレートで、該当するロード バランサ構成をモデル化する必要があります。その際は、必要に応じて健全性チェックおよびインスタンスとインスタンス グループの仕様を使用します。高可用性を実現するには、複数のロード バランサを構成する必要があります。クラウド テンプレートで、適切な仮想マシンと展開先のアベイラビリティ ゾーンも指定する必要があります。

次のクラウド テンプレートの例は、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

ロード バランサ構成の追加オプション

VMware Aria Automation ユーザーはクラウド テンプレート構成を使用することにより、次に示すロード バランサ構成の追加の側面を構成できます。

  • ロード バランサ間のインスタンス グループの共有
  • フェイルオーバー インスタンス グループの構成
  • すべてのポートでトラフィックを受け入れるためのロード バランサの構成

インスタンス グループの共有

ロード バランサ間でインスタンス グループを共有するには、ユーザーがブループリントで明示的に宣言する必要があります。クラウド テンプレート内のインスタンス グループには直接アクセスできないため、ユーザーは useInstanceGroupsFrom プロパティを使用する必要があります。このように VMware Aria Automation は最初のロード バランサをプロビジョニングし、他のロード バランサでインスタンス グループを再利用します。

次の例では、クラウド テンプレートを使用して、2 番目のロード バランサが最初のロード バランサのインスタンス グループを使用するように 2 つのロード バランサを構成する方法を示します。

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 ロード バランサごとにフェイルオーバー インスタンス グループを構成するには、クラウド テンプレートで明示的に宣言する必要があります。テンプレート内のインスタンス グループには直接アクセスできないため、failoverInstanceGroupsByInstanceNames プロパティを使用して、そのインスタンス グループに含まれるマシンを基準としてインスタンス グループを検索するように VMware Aria Automation に指示する必要があります。

次の例では、1 つのプライマリ インスタンス グループと 1 つのフェイルオーバー インスタンス グループを含むロード バランサの構成を示します。

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}

すべてのポートのトラフィックの構成

すべてのポートでトラフィックを受け入れるようにロード バランサを構成するには、ルート構成のポート プロパティを省略します。新しく作成された 3 つの機能を使用し、この設定に合わせてインフラストラクチャをプロビジョニングする、サンプル クラウド テンプレートを表示できます。関連情報については、クラウド ロード バランシングのフェイルオーバー サポートの構成を参照してください。

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