ClickHouse とネイティブに統合された NVMe ベースの Postgres サービスである ClickHouse Managed Postgres を構築するにあたり、私たちの最優先事項 (P0) は、常に利用可能で信頼性が高く、運用上のオブザーバビリティを備えたマネージド Postgres サービスを提供することです。これは OLTP ワークロードにとって必須条件であると考えています。
そのビジョンを念頭に置き、ユーザーがエンタープライズグレードの Postgres エクスペリエンスを確実に得られるよう、最先端の機能に多大な投資を行ってきました。本ブログでは、過去数か月間にリリースした主要な機能をいくつか紹介し、プラットフォームの成熟度とエンタープライズ対応をさらに強化するための今後のロードマップをプレビューします。それでは始めましょう。
アベイラビリティゾーン間 HA
ClickHouse Managed Postgres は、複数のアベイラビリティゾーン (AZ) に分散された最大 2 台の同期スタンバイをサポートしており、ノード、ラック、または AZ 全体の障害から保護します。2 台のスタンバイを設定した場合、クォーラムベースのストリーミングレプリケーション を使用します。これにより、少なくとも 1 台のスタンバイが確認した時点で書き込みが承認されます。すべてのコミットをレイテンシの犠牲にすることなく、強力な耐久性を保証します。障害が発生した場合は自動的にフェイルオーバーが行われ、最小限の中断でスタンバイが昇格します。

高可用性を必要とするものの Tier 0 ではない、コストを重視するワークロード向けには、柔軟に AZ 間スタンバイを 1 台選択することもできます。これは同期レプリケーションを使用して高い可用性を提供しますが、2 台スタンバイのクォーラム構成よりも耐障害性は低くなります。
重要なアーキテクチャ上の特徴として、当社の HA スタンバイは読み取り用に公開されておらず、都合のよい読み取りスケーリングよりもフェイルオーバーの準備状況とデータの耐久性を優先しています。
HA スタンバイはフェイルオーバー専用に確保されており、読み取りトラフィックには公開されません。スタンバイでの読み取りトラフィックは WAL の再生と競合してレプリケーションラグを増加させ、フェイルオーバーの準備を遅らせる可能性があります。また、レプリカでの長時間実行クエリは、プライマリ上の VACUUM や肥大化の制御を妨げる可能性もあります。スタンバイを HA 専用に維持することで、こうしたトレードオフを回避しています。読み取りのスケーリングが必要な場合は、その目的のために特別に設計された個別の読み取りレプリカを提供しています。
ClickHouse への高信頼な CDC (フェイルオーバーセーフなスロット)
このサービスには、組み込みの Change Data Capture (CDC) によるネイティブな ClickHouse 統合が備わっており、リアルタイム分析のためにトランザクションデータを ClickHouse へ継続的にレプリケーションできます。この統合は、数百社におよぶ Postgres ユーザーをサポートしている実証済みのレプリケーションエンジンである ClickPipes/PeerDB をベースにしています。
このサービスの独自の信頼性機能として、組み込みのフェイルオーバーレプリケーションスロットがあり、プライマリのフェイルオーバー時の再同期を防止します。
大半のマネージド Postgres サービスでは、論理レプリケーションスロットがプライマリインスタンスに紐付いています。高可用性フェイルオーバー、メンテナンスイベント、またはスケーリング操作の際、これらのスロットが失われたり手動での再作成が必要になったりして、CDC パイプラインが中断され、フル再同期を余儀なくされる可能性があります。
ClickHouse Managed Postgres には、ClickHouse へのデータ同期時に利用できるフェイルオーバーレプリケーションスロット用のインフラストラクチャが組み込まれています。これらのスロットは、HA フェイルオーバーやスケーリング操作をまたいでも保持されます。その結果、プライマリが変更されても手動での介入やスロットの再作成なしで CDC パイプラインが実行され続け、大規模なデータベースにおけるコストのかかる再同期のリスクを低減します。
バックアップ、PITR、フォーク
高可用性はインフラストラクチャの障害から保護します。バックアップはそれ以外のすべてから保護します。
すべての Postgres サービスには、ポイントインタイムリカバリ (PITR) およびフォークをサポートする自動バックアップが含まれています。広く採用されているオープンソースツールである WAL-G を使用して、フルベースバックアップを取得し、オブジェクトストレージ (S3 互換) へ WAL を継続的にアーカイブします。WAL-G は、大規模なワークロードの高スループット要件を満たすために、フルバックアップとリストア、ならびに WAL のアーカイブと取得を並列で実行するよう適切に調整されています。また、常駐プロセスとして実行される wal-g デーモン も使用しているため、WAL ごとのプロセス起動オーバーヘッドが排除され、継続的な書き込み負荷の下でも効率的で低レイテンシ、かつ信頼性の高い WAL 転送が可能になります。
継続的な WAL アーカイビングにより、直近のスナップショットだけでなく、保持期間内(デフォルトは 7 日間)の正確なタイムスタンプにデータベースを復元できます。フォーク機能も同じ仕組みをベースに構築されています。任意の復旧ポイントから新しい Postgres サービスを作成できるため、本番環境に影響を与えることなく、移行のテスト、問題のデバッグ、バックフィルの実行を簡単に行えます。
HA と組み合わせることで、バックアップは第 2 の保護層として機能し、インフラの障害だけでなく、人的ミスやアプリケーションのバグにも対応します。
妥協のないセキュリティ
ClickHouse Managed Postgres は、ネットワークアクセス、暗号化、分離にわたって、実用的で本番環境レベルのセキュリティ制御を備えるよう設計されています。
アーキテクチャ上の大きな特徴は、すべての Postgres クラスターが専用の独立した VPC 内で動作することです。
これにより、ユーザー環境間でネットワークレベルの厳格な分離が実現され、ランタイムの共有やデータベース間の干渉がなくなります。その結果、影響範囲を強固に封じ込め、マルチテナントに伴うリスクを軽減できます。多くのマネージドデータベースサービスは共有ネットワーク層を持つコンテナオーケストレーションプラットフォームに依存していますが、私たちはクラスターごとに専用の環境をプロビジョニングし、デフォルトでより高度な分離を提供しています。

ネットワーク層では、IP アローリスト を使用してアクセスを制限できるため、承認されたアプリケーションサーバー、VPN エンドポイント、踏み台ホスト、CI/CD システムのみがデータベースに接続できるように設定できます。
すべてのデータは転送中も保存時も暗号化されます。クライアント接続は TLS (SSL) で保護され、傍受や中間者攻撃を防ぎます。暗号化接続を必須とすることも可能であり、より強固な認証保証が必要な環境では、証明書ベースのクライアント検証を利用できます。NVMe ストレージや、バックアップおよび WAL アーカイブに使用されるオブジェクトストレージを含め、保存データはクラウドプロバイダーで広く採用されている業界標準の暗号化アルゴリズムである AES-256 を使用して暗号化されます。暗号化キーは、基盤となるクラウドインフラストラクチャによって安全に管理されます。
さらに強固なネットワーク分離が必要な環境向けに、Private Link のサポート により、自社の VPC と Postgres サービス間のプライベート接続が可能になり、データベーストラフィックがパブリックインターネットを経由しないようにできます。
モニタリング
Postgres サービスには、システムの健全性とデータベースのパフォーマンスの両方を可視化するメトリクスが標準で組み込まれています。現在、10 以上のコアメトリクスが含まれており、CPU 使用率、メモリ消費量、ディスク I/O、ストレージ増加量、ネットワークトラフィックに加えて、接続数、トランザクションスループット、キャッシュヒット率、行アクティビティ、デッドロックなどの Postgres 固有のシグナルを監視できます。
現在、Query Performance Insights やさらに包括的なログ記録をはじめとする、運用の可視化機能の拡充に積極的に取り組んでいます。
今後の展望
Postgres と ClickHouse を組み合わせて OLTP と OLAP を統合したデータスタックを提供するというビジョンを推進する上で、エンタープライズグレードのエクスペリエンスの提供は欠かせません。
今後の四半期では、信頼性、パフォーマンス、運用機能の深さ全般にわたって、プラットフォームのエンタープライズ対応をさらに拡大していきます。主な機能として、追加のクラウドプロバイダー (GCP) のサポート、ClickHouse へのほぼ 1 秒未満のレプリケーションを実現する CDC v2、クエリの挙動とデータベース内部をより深く把握できる Query Performance Insights (QPI) などを予定しています。
また、ストレージのオートスケーリング、IaC 向けの OpenAPI および Terraform サポート、ワンクリックでのフルマネージドな Postgres 間移行、運用の可視化向上 (スケーリングの進捗状況など)、直感的に使える組み込み SQL コンソールといった、コアプラットフォーム機能への投資も進めています。
今後のアップデートにご期待ください。
ClickHouse Managed Postgres を試す
ClickHouse + Postgres は、スケールするアプリケーション向けの統合データスタックとなっています。ClickHouse Cloud で Managed Postgres が利用可能になったことで、このスタックは最初から選ぶべき有力な選択肢となります。
アクセス権を取得


