サイト内の現在位置を表示しています。

Google Cloud PlatformでHAクラスターの構築を試してみました(Linux) ~概要編~

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

Google Cloud Platform(以降、GCP)で、CLUSTERPROを使用したHAクラスターの構築を試してみました。

CLUSTERPROはクラウド環境で提供される仮想マシン(インスタンス)の冗長化を実現できます。
CLUSTERPROのクラウド環境での動作実績はpopupこちら

GCPでは、Virtual Private Cloudネットワーク(以降、VPCネットワーク)をはじめとするいくつものネットワーキングサービスが提供されています。このネットワーキングサービスに、Google Cloud DNS(以降、Cloud DNS)とGoogle Cloud Load Balancing(以降、Cloud Load Balancing)というサービスがあります。
今回は、Cloud DNSとCloud Load Balancingの2つのサービスをHAクラスターの接続先切り替えに使用したHAクラスター構成についてご紹介します。

popup構築編では、HAクラスターの構築手順についてご紹介します。

この記事の内容

1. GCPと冗長化

GCPはGoogle社が提供しているパブリッククラウドサービスです。仮想マシンやストレージなど100以上のサービスを提供しています。

例えば、GCP上でサーバーを作成する場合は、Google Compute Engine(以降、GCE)という仮想マシンのサービスを使用します。
ユーザーは、GCPのコンソールやgcloudコマンドラインなどからインスタンスを作成し、インスタンスにアプリケーションをインストールすることで、サーバーとして稼働させることができます。
「インスタンス」とは、Google社のインフラストラクチャがホストする仮想マシンのことです。

GCEの主な特徴は以下の通りです。

  • インスタンスの性能をカスタマイズできる
  • インスタンスが高速で起動する
  • 従量課金制(課金は秒単位)

GCPでは各サービスにSLA(Service Level Agreement)が定義されています。GCEについては、SLAに「月額稼働率が少なくとも99.99%」と定義され、ユーザーが起動中のインスタンスにアクセスできることを保証しています。
しかし、SLAを満たすためには、2つ以上のゾーン(GCPリソースのデプロイエリア)にインスタンスを配置することが求められます。つまり、インスタンスを冗長化構成にする必要があるということです。

2. HAクラスター構成

今回は、GCP上の同じVPCネットワーク内のクライアントからアクセスできるHAクラスターを構築しました。

  • 今回の構成ではVPCネットワーク外(インターネット上やオンプレミス環境上など)のクライアントからHAクラスターにアクセスできません。
  • GCPのサービスの設定次第で、VPCネットワーク外のクライアントから、HAクラスターにアクセスできるようになります。
VPCネットワーク外からのアクセスの概要は、Cloud DNSはpopupこちら、Cloud Load Balancingはpopupこちらを参考にしてください。

GCPでCLUSTERPROを使用したHAクラスター構成として、以下の2つの構成をご紹介します。

  • Cloud DNSを使用したHAクラスター構成
  • Cloud Load Balancingを使用したHAクラスター構成

今回動作確認したOS、kernel、CLUSTERPROのバージョンは以下の通りです。
※CLUSTERPRO X 4.1 を使用したHAクラスター構成も可能です。

  • OS        :Red Hat Enterprise Linux 7.6
  • kernel    :3.10.0-957.el7.x86_64
  • CLUSTERPRO:CLUSTERPRO X 4.0

2.1 Cloud DNSを使用したHAクラスター構成

HAクラスターの接続先切り替えにCloud DNSを使用したHAクラスター構成は以下の通りです。

Cloud DNSを使用したHAクラスターの接続先切り替え方法

  • 1.Cloud DNSに登録したレコードの制御をCLUSTERPROから行い、接続先を切り替えます。
  • 2.クライアントはCloud DNSに登録したレコードのDNS名に対してアクセスすることで、現用系インスタンスに接続します。

2.2 Cloud Load Balancingを使用したHAクラスター構成

HAクラスターの接続先切り替えにCloud Load Balancingを使用したHAクラスター構成は以下の通りです。

Cloud Load Balancingを使用したHAクラスターの接続先切り替え方法

  • 1.Cloud Load Balancingがヘルスチェックを行うポートの制御をCLUSTERPROから行い、接続先を切り替えます。
  • 2.Cloud Load Balancingはバックエンドのヘルスチェックが成功したインスタンスに対して、通信を転送します。
  • 3.クライアントはCloud Load BalancingのフロントエンドのIPアドレスに対してアクセスすることで、現用系インスタンスに接続します。

Cloud Load Balancingを使用したHAクラスター構成では、CLUSTERPROからプローブポート(ヘルスチェック用のポート)の制御を以下のように行います。

  • プローブポート制御用のグループリソースの活性時
    Cloud Load Balancingからのヘルスチェックを待ち受けるためのプローブポート制御プロセスを起動する。
  • プローブポート制御用のグループリソースの非活性時
    Cloud Load Balancingからのヘルスチェックを待ち受けるためのプローブポート制御プロセスを停止する。

2.3 HAクラスターの構築

HAクラスターの構築の概要は以下の通りです。

  • 1. VPCネットワークの作成
    VPCネットワーク、サブネットを作成します。
    必要に応じて、ファイアウォールルールを設定します。
  • 2. インスタンスの作成
    HAクラスターを構成するインスタンスを作成します。
  • 3. Cloud DNS/Cloud Load Balancingの設定
    Cloud DNS または Cloud Load Balancingを設定します。
    - Cloud DNSの場合
    ゾーンを作成します。ゾーンのタイプには、非公開を選択します。
    レコードセットを追加します。

    - Cloud Load Balancingの場合
    ヘルスチェック用の通信を許可するファイアウォールルールを設定します。
    Cloud Load Balancingのバックエンドに指定するインスタンスグループを作成します。
    インスタンスグループにインスタンスを追加します。
    Cloud Load Balancingを作成します。Load Balancerのタイプには、内部専用を選択します。
  • 4. HAクラスターの構築
    インスタンスにCLUSTERPROをインストールして、HAクラスターを構築します。
    今回、フェールオーバーグループには以下を登録しました。
    • ミラーディスクリソース
    • EXECリソース(※)
    • Azure プローブポートリソース(※)
  • Cloud DNSを使用したHAクラスター構成とCloud Load Balancingを使用したHAクラスター構成では、登録するリソースが異なります。
- Cloud DNSを使用したHAクラスター構成の場合
EXECリソースによって、作成したゾーンのレコードセットの書き換えを行います。

- Cloud Load Balancingを使用したHAクラスター構成の場合
Azure プローブポートリソースによって、プローブポートの制御を行います。
CLUSTERPRO X 4.0では、GCP専用のポート制御用リソースが実装されていないため、Azureプローブポートリソースを使用しています。
なお、将来のバージョンにおいてGCP専用のポート制御用リソースの提供を予定しています。

今回の構成でHAクラスターを構築する際、VPCネットワークやインスタンスの作成など、GCPの各サービスの設定では以下を参考にしました。

3. 構築における注意点

マシンイメージ

インスタンスの作成時に選択するマシンイメージで公開イメージを使用する場合、インスタンスの作成後、必要に応じてパッケージのインストールやアップデート/ダウングレードなどを実施してください。
また、OSやkernelのバージョンについても、CLUSTERPROが対応しているバージョンかどうかを確認し、対応しているマシンイメージを使用してください。必要に応じて、OSやKernelのバージョンアップ/バージョンダウンを行ってください。
CLUSTERPROの動作環境については以下を参照ください。

Cloud IAM

Cloud DNSを使用したHAクラスター構成では、GCPのリソースを操作する権限をインスタンスに設定する必要があります。GCPのリソースを操作するために、Cloud IAMを使用して、インスタンスに権限を付与します。
HAクラスターを構築する前に、インスタンスからgcloudコマンド(GCPのCLI)を使用することで、以下が実行できることを確認してください。

  • DNSレコードの追加、削除
  • DNSレコードの表示

Cloud IAMの設定は以下を参考にしました。

【参考】

Shared VPC

今回の構成ではVPCネットワーク外(インターネット上やオンプレミス環境上など)のクライアントからHAクラスターにアクセスできませんが、Shared VPCを使用することで、同じVPCネットワーク内のクライアントに限らず、別のVPCネットワーク内のクライアントからもHAクラスタにアクセスできるようになります。

GCPでは、ユーザーが使用するすべてのリソースはプロジェクトに属します。通常、異なるプロジェクトに属したリソースは、インターネット経由で相互にアクセスします。
VPCネットワークには、各プロジェクト間で一つのVPCネットワークを共有するShared VPCという機能があります。
Shared VPC内のあるプロジェクトに属するリソースは、別のプロジェクトに属するリソースに対して、インターネットを経由せずにアクセスできるようになります。

Shared VPCはCloud DNSを使用したHAクラスター構成、Cloud Load Balancingを使用したHAクラスター構成のどちらの構成でも利用できます。
ただし、Cloud Load Balancingを使用したHAクラスター構成では、GCPの仕様により、HAクラスターと異なるリージョンのクライアントからは、HAクラスターにアクセスできません。

さいごに

今回はGCP上で、CLUSTERPROを使用したHAクラスターの構築を試してみました。
構築手順の詳細は、今後、別記事として紹介したいと思いますので、公開までお待ちください。
GCP上でのHAクラスターの構築を検討される方は、後述の窓口までお問い合わせください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。