こんにちは、インサイトテクノロジー コンサルティング本部第2部 東です。
db tech showcase 2023 C15セッション「オンプレからクラウドまでPostgreSQL高可用性選択のポイント!」のレポートをお届けします。
セッション概要
PostgreSQLはフリーでオープンソースのデータベースでありながら、商用データベースにも引けを取らない機能と性能を備え、ミッションクリティカルなシステムへの導入もますます進んでいます。そのようなシステムで求められるのが可用性、システムがいかに停止せず、稼動し続けられるか、ということです。可用性は高ければ高いほうがよいとは言え、費用や構築・運用の手間を無視するわけにもいきません。本セッションでは、バックアップやレプリケーション、フェイルオーバなど、PostgreSQLで取りうる高可用性方式を紹介しつつ、どのような場合にどの方式が適しているのか、選択のポイントを解説します。
スピーカー名:SRA OSS合同会社 OSS事業本部 技術部
部長
佐藤 友章様
セッション内容まとめ
このセッションで伺ったのは、PostgreSQLの高可用性を実現する方法と、その際にどの方式を選択するかのポイントやPostgreSQLのHA機能についてのお話しでした。
PostgreSQLの高可用性を実現する方式には以下のようにバックアップとレプリケーションで実現することが可能とのこと。
レプリケーション方式については2種類あり、それぞれで動作が違うため、実現したい要求によって選択するとよいとのことでした。
・PostgreSQLのバックアップ
・論理バックアップ:pg_dump,pg_dumpall
・物理バックアップ:pg_basebackup
・WALアーカイブ(トランザクションログ)
・レプリケーション方式
・ストリーミングレプリケーション
→スタンバイは参照のみ可能
→同じメジャーバージョン、プラットフォームであること
→高可用性の目的で採用されることが多い
・論理レプリケーション
→異なるメジャーバージョン、プラットフォームでも可能
→サブスクライバー側でも更新可能
→バージョンアップなどで移行したいときに利用されることが多い
・レプリケーション同期モードには、以下があるということ
・非同期モード(off or local) ローカル側のWALの書き込みを待つか待たないかの違い
・準同期:リモートへのWAL転送を待つ
・同期:リモートでのWAL書き込みを待つ
・完全同期:リモートでのWALの適用をまつ
PostgreSQLのHA機能について
・PostgreSQLにHAの機能はないので、PostgreSQLをサポートするHAクラスタソフトを使う。
・フェールオーバ機能だけなら、サードパーティー製のHAクラスタソフト
・フェールオーバ機能以外にも負荷分散やコネクションプール機能を使用したいなら、Pgpool-Ⅱなどが使える。
聴講した感想
初心者向けということもあり、RTOやRPOの説明などもしながら、PostgreSQLでの高可用性の実現について非常に分かりやすく説明していただき、理解しやすかったです。おかげで、PostgreSQLに興味をより持つことができました。
今セッションでの実施はなかったのですが、機会があればこの内容で簡単なデモなどもぜひ見てみたいと思いました。