【製品情報】Trusted Postgres Architect(TPA)23.40.0

音声ガイド

1. TPAとは何か、なぜ開発されたのか
Trusted Postgres Architect(TPA)は、EnterpriseDB(EDB)によって開発されたオーケストレーションツールです。Ansibleを使用してPostgreSQLクラスタのデプロイと管理を行います。

このツールは、EDBが長年のPostgreSQL導入・サポートで培ってきたベストプラクティスと貴重な経験を集約するために開発されました。その目的は、シンプルなテスト環境から本番環境向けの複雑な高可用性クラスタまで、あらゆる環境を専門家の推奨に従って最初から確実に設定できる、標準化され、信頼性が高く、再現性のある方法を提供することです。

2. TPAを使用するメリット
ドキュメントによると、TPAを使用する主なメリットは以下の通りです。

  • 標準化とベストプラクティス: 専門家が推奨する定義済みのアーキテクチャ(例:プライマリ/レプリカ構成の「M1」や分散クラスタの「PGD-Always-ON」)を使用してクラスタをデプロイするため、一貫性のある堅牢なセットアップが常に保証されます。
  • 自動化とシンプルさ: AWSのようなクラウドプラットフォームやベアメタルへのサーバーのプロビジョニングから、OS設定、PostgreSQLと関連コンポーネント(Barman、PGD、PgBouncerなど)のインストール、テスト実行まで、クラスタのライフサイクル全体を自動化します。
  • 安全性と冪等性(べきとうせい): デプロイプロセスは冪等性があるため、繰り返し実行しても安全です。設定やサーバーに変更がなければ、何も変更されません。これにより、設定変更の適用がより安全かつ予測可能になります。
  • クラスタ管理の簡素化: 設定変更、制御されたスイッチオーバー、安全なゼロダウンタイムでのマイナーバージョンアップグレードなど、一般的な「Day 2」オペレーション(運用フェーズの操作)のための組み込みコマンドを提供します。
  • 拡張性: 構造化されたアーキテクチャを提供しつつも、Ansibleを通じて高い拡張性を持ちます。ユーザーは独自のカスタムコマンド、テスト、フック(特定の処理の実行前後に呼び出す仕組み)を作成し、TPAを特定の運用ワークフローに統合できます。
  • 透明性: ドキュメントでは「結局はただのPostgreSQLです」と強調されています。TPAはデータベースの直接管理を妨げる独自レイヤーを導入しません。あくまで標準的なPostgreSQLインストールのセットアップを自動化するツールです。

3. TPAはどのようにしてメリットを実現しているのか
TPAは、宣言的な設定ファイルに基づいてAnsibleがオーケストレーションする、明確な4段階のワークフローにクラスタデプロイを分解することで、これらのメリットを実現しています。

  • 設定 (tpaexec configure): ユーザーはまず、config.ymlファイルを生成するコマンドを実行して、目的のクラスタを定義します。このファイルで、アーキテクチャ(例:M1)、ホスティングプラットフォーム(例:AWS、Docker、ベアメタル)、PostgreSQLのバージョンといった高レベルな選択肢を指定します。
  • プロビジョニング (tpaexec provision): TPAがconfig.ymlファイルを読み取り、必要なインフラストラクチャを作成します。プラットフォームがAWSであれば、EC2インスタンス、VPC、セキュリティグループ、ストレージボリュームをプロビジョニングします。
  • デプロイ (tpaexec deploy): これが中核となるオーケストレーションのステップです。Ansibleを使用し、プロビジョニングされたサーバーに接続して、必要なすべてのソフトウェアをインストール・設定します。これには、OSのセットアップ、PostgreSQLと関連コンポーネントのインストール、レプリケーションの設定、サービスの起動が含まれます。
  • テスト (tpaexec test): デプロイ後、TPAはクラスタに対して自動化されたテストを実行し、すべてが期待通りに機能していることを確認できます。

TPAは、エンジンとしてAnsibleを、設計図としてシンプルなYAMLファイルを使用することで、これらの複雑な手順を予測可能かつ繰り返し実行できます。これにより、ユーザーから複雑さを隠蔽しつつ、一貫した結果を保証します。

4. リリース23.40.0の新機能
2025年10月2日リリースの23.40.0では、いくつかの新機能、機能強化、バグ修正が行われています。

主な新機能と機能強化:

  • PGD v5からv6へのアップグレードサポート: EDB Postgres Distributed (PGD) v5クラスタをバージョン6へアップグレードするためのサポートが追加されました。
  • near-farレイアウトを含むPGD-Sクラスタ設定のサポート拡充: PGD-S(EDB Postgres Distributed Essential)クラスタの設定サポートが拡張され、特に**near-farレイアウト**が追加されました。このアーキテクチャは、高可用性(HA)のためにプライマリ(”near”)拠点に2つのノードを、災害復旧(DR)のためにセカンダリ(”far”)拠点に3つ目のノードを配置する、地理的に冗長化されたクラスタを自動的にセットアップします。
  • 新しいpgd-proxy-configフックの導入: PGD Proxyの設定ファイルが生成された後、サービスが開始される前にカスタムタスクを実行するための新しいフックが導入され、より深いカスタマイズが可能になりました。
  • 証明書のカスタマイズ機能: 証明書に使用されるRSAキーサイズの設定が可能になり、デフォルトのPostgreSQLサーバーTLS証明書を上書きする方法に関するドキュメントが追加されました。
  • EFM 5.1+のサポート: EFM(Failover Manager)バージョン5.1以降の仮想IPに関連するプロパティ(release.vip.*)が追加されました。

変更点:

  • EPAS(EDB Postgres Advanced Server)クラスタのフェイルオーバーマネージャーとしてrepmgrが公式にサポートされるようになりました。

主なバグ修正:

  • 新しいPGD 6クラスタでバックアップが正しく設定されない問題が修正されました。
  • SSLが有効なPatroniクラスタに対して、HAProxyのヘルスチェックがHTTPSを正しく使用するように修正されました。
  • pgauditエクステンションをedbpge Postgresで使用した際の問題が解決されました。
  • PGD 5.9でグローバルプロキシルーティングが正しく設定されない問題が修正されました。

日本語マニュアルを見る
※ 日本語マニュアルの閲覧には ユーザー登録(パスワード)が必要です。