こんにちは、サイオスのオイカワと申します。
去る2021年12月3日に、PostgreSQLのセキュリティと可用性をテーマにSRA OSS社とサイオステクノロジー社にて共催のウェブセミナーを開催いたしました。申込者の参加率が80%以上と高く、質問も多く頂戴したことから、エンジニアを中心にした熱心な視聴者が多かったと推察しています。
この記事では、セミナーの内容をダイジェストでご紹介いたします。
PostgreSQLの可用性とHAクラスタについてをサイオスから、PowerGresについてをSRAOSSからご説明する2本立てとなっています。(講演資料のリンクは最後に。)
この記事はこんな方におススメです。
- PostgreSQL で実現できる可用性対策を知りたい
- PostgreSQL をもっと便利に、もっと安全に利用したい
- PostgreSQL の特定バージョンを長く使いたい
PostgreSQLの可用性対策
ご挨拶と視聴時の注意点について説明したあと、さっそくサイオステクノロジー國政氏によるセッションが開始されました。
サイオステクノロジー ソリューションアーキテクト 國政氏
まず最初に、オープンソースであるPostgreSQLで使われることがある、2つの可能性機能について視聴者と一緒におさらいしました。
Streaming Replication(ストリーミングレプリケーション)
1つ目は、PostgreSQLの標準機能であるStreaming Replicationです。プライマリデータベースの更新情報(WAL)を、リアルタイムでスタンバイデータベースサーバーに転送することで、プライマリとスタンバイを同じ状態に保ちます。
ただ、プライマリデータベースの障害時にスタンバイデータベースを自動昇格する機能はないため、後述のPgpool-IIと組み合わせて自動切り替えを実現するのが一般的です。
Pgpool-II(ピージープール ツー)
もう1つは、PostgreSQLサーバのフロントでProxyとして動作する、Pgpool-IIです。主な役割は3つです。
- データベースサーバーとの接続を維持する「コネクションプール」
- レプリケーションされたデータベースへのアクセスの「負荷分散」
- プライマリデータベースの障害を検知した際、スタンバイへ切り替える「自動フェイルオーバー」
これによりPostgreSQLデータベースの拡張性と可用性を高めることができます。
しかしながら、このPgpool-II自体に障害が発生してしまうとサービスの停止に繋がってしまいます。そこで、Watchdogという複数のPgpool-IIを連携・監視させ障害時に自律的に切り替えを行う機能を使います。
ここまで行うことで、PostgreSQLを、重要なシステムでも利用でき、オープンソースのコストメリットを得られるでしょう。ただ、このようなシステムについては以下の懸念もある、と國政氏は指摘します。
それは、「サーバー台数が多くなってしまうこと」と、「構築・運用に高度なスキルが必要になってしまうこと」です。そこで提案するのが、HAクラスタソフト LifeKeeperです。
※PostgreSQLとPgpool-IIを同居させれば、サ
LifeKeeperによるデータベース保護
LifeKeeperは、PostgreSQLデータベースのサーバー上に同居してPgpool-II相当の動作をするHAクラスタソフトです。よってサーバー台数は増えません。データベースのプロセスやSQLの応答可否だけでなく、IPやディスクなどのリソースまでを監視し、障害発生時にスタンバイ側へ自動的にフェイルオーバーを実施します。
Streaming Replicationに相当するデータレプリケーションは、DataKeeperというソフトウェアにより実現できます。これにより、よりシンプルな構成で、HAクラスタ部分においても安心のサポートを受けられ、重要なシステムに相応しい可用性を実現できます。
このLifeKeeperの特徴を、國政氏はこう説明してくれました。
「監視から障害の検知、DBの再起動、それでも復旧しない場合のフェイルオーバー動作である、リソースの停止とスタンバイ側のリソースの起動。一般的なHAクラスタソフトは、ここまでの処理をお客様自身がスクリプトで作る必要がありますが、LifeKeeperはアプリケーションリカバリーキット(ARK)というスクリプト集があり、すぐに利用頂けます。スクリプト作成とテストの工数を削減できる点は大きな特徴です。」
最後に、Streaming ReplicationとPgpool-IIを組み合わせた構成と、LifeKeeper・DataKeeperによる構成とがそれぞれ適した要件について述べ、セッションを締めくくりました。
PostgreSQLをもっと便利で安心に使う、PowerGres とPowerGres HA
続いて登壇したのは、SRA OSS社の佐藤氏です。同社で技術責任者を務める佐藤氏は、サポートやトレーニング、コンサルティングなど今も現場エンジニアとしても活躍されています。
SRA OSS, Inc. 日本支社 佐藤氏
まず同社が開発・販売するPostgreSQLベースのデータベースソフト「PowerGres」について紹介頂きました。PostgreSQLをより安心して、より使いやすくをコンセプトに安心のサポートを提供しており、累計15,000本超が出荷されていると紹介されました。
ラインアップは3つあります。基本プロダクトである「PowerGres」。信頼性と安全性を付加した「PowerGres Plus」。可用性を付加した「PowerGres HA」です。1つずつ順を追ってその特徴をご紹介いただきました。
PowerGres
前述したとおり、オープンソースのPostgreSQLをベースにしたデータベースソフトPowerGresですが、特徴は2つあります。
1つ目は、GUIの管理ツールです。WebベースのPowerGres Administration Toolで、データベース操作をGUIで行えるため、PostgreSQLの経験が浅いエンジニアにも扱いやすいというメリットがあります。
2つ目は、サポートサービスです。OSSとしてのPostgreSQLは、新バージョンリリース後、5年後にメンテナンスが終了します。コストに魅力を感じつつも、このサポート期間にOSS利用の課題を感じているユーザーも多い事と思います。PowerGresは、7年間サポートが提供され、その後は費用は上がるものの、延長サポートも可能です。これは長く安定したバージョンの組み合わせでシステムを利用続けたいユーザーには大変ありがたいのではないでしょうか。
PowerGres Plus
次に佐藤氏より紹介されたのが、PowerGres Plusです。
先ほどのPowerGresの特徴に加え、トランザクションログの二重化と、透過的暗号化機能が付加されたものです。
PostgreSQLではトランザクションログ(WAL)の書き込み先は1つです。PowerGres Plusでは2か所に書き込めるため、仮に片方のログが破損しても、もう片方のログにより復旧していくことが可能です。
また、PostgreSQLでの暗号化は、アプリケーション側の修正が必要になるのが一般的です。PowerGresの暗号化は、透過的暗号化機能であるため、アプリケーション側の修正が不要です。加えて、暗号化に伴う処理のオーバーヘッドが数%と非常に小さいことで、処理能力を落とさず、セキュリティも高められるのは大きな特徴だ、と佐藤氏は紹介してくれました。
PowerGres HA
最後に紹介頂いたのが高可用性を実現したHAです。これはいわゆる、PowerGresとLifeKeeperのセット製品です。LifeKeeperがPowerGresを含めて死活監視し、障害発生時は待機系に切り替え、サービスを継続してくれます。
最もユーザーが嬉しい点はサポートだと佐藤氏は強調します。SRA OSS社でサポートを一次受けするため、ユーザー側でPowerGresの問題か、LifeKeeperの問題かの切り分けが不要です。データベースの冗長構成は可用性の向上に不可欠ですが、問題発生時の切り分けと原因究明が難しい箇所でもあります。ここを専門家に頼れることで、運用されるお客様に心の余裕が生まれるのではないでしょうか。
PostgreSQLは、多くのユーザーに使われる人気のデータベースです。これを重要なシステムでも利用しようとされるお客様が多いのも事実です。使い慣れたPostgreSQLをベースにしながらも、利便性に加え、セキュリティを付加した「PowerGres Plus」、LifeKeeperとセットで可用性を高めた「PowerGres HA」とうい選択肢を検討してみてはいかがでしょうか。
セミナー資料のダウンロード
このウェブセミナーの講演スライドは以下よりダウンロード頂けます。ぜひご参考ください。
・SIOS「PostgreSQLの可用性対策 ~ LifeKeeper 製品紹介 ~」
・SRA OSS「PostgreSQL + LifeKeeper をトータルでサポート! PowerGres HA のご紹介」