HAクラスタ vs マネージドサービス クラウドで実現する PostgreSQL の高可用性

    こんにちは、サイオステクノロジーのオイカワです。

    本記事は、2023年6月にSRA OSS社と共催したウェビナーの内容をコンパクトにご紹介します。

    オンプレミスで運用中のデータベースを、クラウド上へ移行する際の可用性対策について、基本的な考え方とPostgreSQLを例にした具体的な対策を知ることができます。

    この記事を読んで、興味がわいた方は、記事の最後のウェビナー動画をご覧ください。

    PostgreSQLの高可用性の実現方式 [論理編]

    最初に、SRA OSS LLCでデータベース部門の責任者である佐藤様より、基本的な概念の話からセッションを開始して頂きました。

    PostgreSQL とは

    PostgreSQLは、いわゆるリレーショナルデータベースで、表形式でデータを管理することができます。オープンソースのため、無償で利用でき、商用に劣らない性能を持っています。

    その開発体制は、「開発コミュニティ」と呼ばれ、コアチームと呼ばれる7名を中心に、その他100名超の様々な企業に所属するエンジニアで構成されています。20年以上この体制で機能の追加、改善が行われており、非常に安定したリリース体制が整っていると言えます。

    佐藤様が所属する SRA OSSは、このコミュニティを支援する主要なスポンサー企業として位置づけられており、開発にも参加されていることが紹介されました。

            

    PostgreSQLの高可用性実現方法

    可用性とは、システムが稼働し続けられるかの度合いのことで、システムの稼働率が高いほど可用性が高いことだと前置きして頂いた上で、本セミナーの主題である、PostgreSQLの稼働率を高める方法を紹介に入って頂きました。

    まずは、90%から99.9%の稼働率を実現する方法として、「バックアップ」「コールドスタンバイ」「ホットスタンバイ」について簡単な仕組と、PostgreSQLの標準機能で対応できる点などを補足頂きました。

    さらに、99.99%以上の稼働率を実現する方法として、以下の3つをご紹介頂きました。

    • 専用HAソリューション:PostgreSQL専用の高可用性ソリューション群です。特にPgpool-Ⅱは、SRA OSS社のメンバーが中心となって開発しているオープンソースであることが紹介されました。
    • マネージドサービス:各パブリッククラウドベンダーがPostgreSQLのサーバー管理を代行してくれるサービスです。この提供機能の中にPostgreSQLの自動フェイルオーバーも含まれています。
    • 汎用HAクラスタソフト:PostgreSQLはもちろんApacheやTomcatなどのミドルウェアも含めて冗長化できるソフトウェアのことです。

    HAクラスタとマネージドサービスの比較

    HAクラスタの仕組みと利点

    HAクラスタとは稼働系と待機系という複数のサーバーを用いて可用性を高める方式です。HAクラスタソフトがインストールされた複数のサーバーを用意し、HAクラスタソフト同士がハートビートという通信を行い、異常がないかをお互いにチェックします。

    同時にHAクラスタソフトは、PostgreSQLを監視します。稼働系に異常を検知すると自動で待機系にサービスを切り替え、停止時間を小さくするという方式です。

    また、AWSの場合だと、クライアントからのアクセスはいろいろな方式があります。多くの採用事例があるElastic IPの場合を例に説明すると、クライアントはどちらのサーバーが今稼働系なのかを意識することなく通信ができるようになります。

    AWSでいうところの、Availability Zone(読み:アヴェイラビリティゾーン。以下AZという。)を跨いだ構成を行う場合は、このElastic IPやルートテーブルという通信方式を使って構成することを推奨頂きました。これにより、1つのAZ全体に影響する、いわゆる広域障害と呼ばれるシステム障害が発生した時でも自動復旧が可能となるためです。

    マネージドサービスの仕組みと利点

    PostgreSQLのマネージドサービスとは、サーバー管理をクラウドベンダーが代行してくれるサービスです。管理してもらう範囲が特に広いものをフルマネージドと呼び、自動アップデート、自動バックアップ、リードレプリカ、データ暗号化など、様々な機能が利用できます。

    これらの機能の中でも、マルチAZ配置という機能を使うことで自動フェイルオーバーを実現することができます。そして、これまでの説明を前提に、HAクラスタとマネージドサービスを、管理の手軽さと、自由度の高さの2つの視点で比較して頂きました。

    管理の手軽さの視点では、構築の簡単さと運用がほぼ自動であることから、マネージドサービスの利点が大きいと解説頂きました。

    一方で自由度の高さという視点では、使える機能に制限がなかったり、サポートが終了したバージョンでも使えるなど、HAクラスタに軍配があがると説明頂きました。マネージドサービスにおける自動バックアップ、リードレプリカにおける制限事項についても細かく説明があり、本当に要件にマッチするのかの確認が必要とのことでした。

    これらの特徴から、新規システムの構築や人的リソースの削減を目的にした場合にはマネージドサービスが向いており、カスタマイズした既存システムの移行などにはHAクラスタが向くのではないか、と解説頂きました。

    PostgreSQLを、もっと安心・簡単に使うための製品・サービス

    最後に、PostgreSQLにGUIの管理ツールとサポートを付加した「PowerGres」というデータベース製品に関して3つのラインアップをご紹介頂きました。

    • PowerGresGUIとサポートにより、OSS利用に対して安心を付加
    • PowerGres PlusWAL二重化透過的データ暗号化という、信頼性とセキュリティを強化
    • PowerGres HALifeKeeperをバンドルし、高可用性を強化。LifeKeeperの技術的問合せもSRA OSS社で一元的にサポート

    もうひとつ、PostgreSQL/PowerGresを利用される際の技術支援を提供するサービスについてもご説明頂きました。

    このサービスの特長は、問合せの中に、ソースコード解析データベース設計性能チューニングなどを含められる点です。24時間365日の対応や、リリースから10年を経過したものへの対応などもオプションで提供しており、より長く、より高度な利用をされているお客様向けのサポートメニューとなっています。

    さらに、条件つきでAmazon RDS / AuroraのPostgreSQLにも対応可能との説明がありました。マネージドサービスを使いつつも、OSS利用の不安を極力低減したいお客様などには、魅力的なサービスではないでしょうか。



    ※弊社Youtubeチャンネルに遷移します。

    AWS上での冗長化構成における課題と具体的な解決策 [実践編] 

    2つ目のセッションとして、サイオステクノロジーの國政さんから、AWS上での冗長化構成に関する講演をしてもらいました。

    AWS上でHAクラスタ構成を組む際のポイント

    最初に、クラウド上でHAクラスタ構成を組む場合、テクニカルな問題が2つあることが提示されました。

    1つは「クラウド上では共有ストレージをどう構成するのか」、2つ目は「クライアントからのアクセス方式は何が適切か」です。

    課題1:クラウド上では共有ストレージをどう構成するのか

    オンプレ環境でHAクラスタ構成を組む場合は、自動フェイルオーバー後のデータの整合性を保つために、稼働系サーバー、待機系サーバーどちらからもアクセス可能な共有ストレージを使うケースが多いです。

    しかしながら、クラウド上ではこのような共有ストレージを構成できるパブリッククラウドが多くありません。そのため別のソリューションが必要になります。

    サイオステクノロジーでは、リアルタイムレプリケーションの仕組みを利用した、論理的な共有ストレージを提供する「DataKeeper」という製品を用意しています。これにより、クラウド上の共有ストレージの問題を解決できます、と解説頂きました。

    課題2:クライアントからのアクセス方式は何が適切か

    HAクラスタ構成を検討するときに、オンプレミスの環境とクラウドの環境で大きく異なるのは、ネットワークです。

    HAクラスタ構成においては、システム障害により待機系へ自動的にサーバーが切り替わっても、クライアント側がそれを意識することなくアクセスが可能なことが重要です。オンプレミスでは仮想IPを利用した方式が非常に一般的でしたが、クラウドでは考慮する点が増えます。

    AWSの場合、論理的な仮想ネットワーク空間であるVPCという領域を設定しますが、このVPCの外からか、中からか、どこからサービスを提供しているサーバー群にアクセスするのかによって、接続方式を適切に選択する必要があります。

    サイオステクノロジーのLifeKeeperでは、複数の接続方法を提供しており、自動フェイルオーバー時のIP制御の仕組みをスクリプト化して提供しております。これにより、主要な接続方式を簡単に設定頂けるため、素早く確実な構築が可能になっています。

    AWS上でのPowerGresを冗長化するための構築手順書をSRA OSS社にて公開しており、多数のスクリーンショット付きで迷うことのない構築が可能になっています。ぜひ、ご入手ください。と國政さんより案内をしてもらいました。

    手順書の内容

    • LifeKeeperのインストール
    • PowerGres Plus v13のインストール
    • LifeKeeperとPowerGresの連携設定
    • ENIを付け替える手順
    • スイッチオーバ(切り替え試験)の方法
    • オンプレ構成とAWS構成の違い

    ※SRA OSS社の資料ダウンロードサイトへ遷移します。

    最後に、PowerGres をHAクラスタ構成で提供したユースケースを2つ紹介頂きました。オンプレ環境にあるPostgreSQLをAWSのEC2へ移行されたケース、金融業のお客様において24時間365日の一元サポートが要件となっていたケースです。

    どちらも、PowerGresとLifeKeeper / DataKeeperを使い、SRA OSSとサイオステクノロジーの密な連携がカギとなった点をご紹介していただきました。

    セッション終了後の質疑応答においては、セッションでは取り上げなかった、RDSとHAクラスタのコスト面での比較など、多くの質問に回答させて頂きました。たくさんの質問が出たということで、今回のテーマに対する視聴者の関心の高さを改めて知ることができました。

    セッションのオンデマンド動画

    本レポートでは割愛した詳細な解説や説明などもありますので、興味を持たれた方はぜひオンデマンド動画の方もご確認ください。