【製品解説】Trusted Postgres Architect(TPA)23.38.1
Ansibleによる高可用性Postgres構築の自動化基盤 〜PGD 6構成時のプラットフォーム検知や変数フォールバックの是正:EnterpriseDB(EDB)が提供するオーケストレーションツール「Trusted Postgres Architect(TPA)」のバージョン 23.38.1 がリリースされました。YAML形式の宣言的ブループリントに基づき、クラウドからベアメタルまで一貫したPostgreSQLクラスタの構築・運用自動化を支えるツールです。最新版では、ベアプラットフォーム環境におけるPGD 6設定エラーの解消、初期デプロイ時のpgpassパスワード自動生成の適正化、無効なクラスタ変数に対する厳格なエラー検知への改善が行われ、自動デプロイメントの堅牢性がさらに高まりました。
1. TPAとは?
Trusted Postgres Architect(TPA)は、EnterpriseDB(EDB)によって開発されたオープンソース(GPLv3)のオーケストレーションツールです。EDBが培ってきた長年のベストプラクティスに基づき、Ansibleを活用してPostgreSQLクラスタのデプロイ、構成、運用管理を包括的に自動化します。設定ファイル(config.yml)による宣言的な構成アプローチを採用し、プライマリ/スタンバイ構成(M1)から分散マルチマスター(PGD-Always-ON、PGD-S、PGD-X等)まで、AWS、Docker、ベアメタルサーバーを問わず標準的なPostgres環境を再現性高く構築できます。
2. 実現の仕組み
TPAは、tpaexec コマンドを通じて実行される明確な4段階のワークフローにより、予測可能で安全なクラスタ構築を実現します。
- 構成(tpaexec configure): クラスタ構成、対象プラットフォーム、Postgresバージョンなどの基本要件を指定し、設計図となる
config.ymlを自動生成します。 - プロビジョニング(tpaexec provision): 構成定義に従い、クラウド上のVM、VPC、サブネット、ストレージ、あるいはコンテナ環境など必要なインフラリソースを自動確保します。
- デプロイメント(tpaexec deploy): プロビジョニングされた各インスタンスへAnsible経由で接続し、OS設定、PostgreSQL、周辺コンポーネント(PGD、Barman、PgBouncer、repmgr等)の導入とクラスタ同期を一括実行します。
- テスト(tpaexec test): 構築完了後、選択されたアーキテクチャに応じた自動検証テストを実行し、クラスタが設計通りに動作しているかを即座に確認します。
3. 主な利点と長所
手動運用に伴うリスクや構築工数を削減し、本番環境に耐えうる堅牢なデータベース基盤を迅速に確立できます。
- プロセスの完全自動化: サーバー確保からDB構成、レプリケーション、バックアップ設定、動作検証までをワンストップで自動化します。
- 確実な冪等性(べきとうせい): 処理は何度実行しても安全な冪等性を備えており、設定変更時も必要な差分のみを安全かつ予測通りに反映できます。
- 優れた保守性とDay 2運用: パラメータの動的変更、計画的スイッチオーバー、ゼロダウンタイムでのマイナーバージョン更新など、構築後の運用タスクを簡素化します。
- 高い拡張性と柔軟性: クラウド、ベアメタル、コンテナに対応し、独自のAnsibleフックやカスタムテストを追加して既存の運用フローに統合可能です。
- エアギャップ環境への対応: 外部インターネットへ直接接続できない隔離環境向けに、パッケージの事前取得やローカルリポジトリ設定機能を備えています。
4. バージョン23.38.1 新機能
【デプロイ安定性と設定制御のバグ修正】
- PGD 6プラットフォーム判定の修正: ベアプラットフォーム環境で PGD 6 クラスタの
tpaexec configureを実行した際に、誤って「Unknown Platform error」が発生していた問題を解消しました。 - 自動生成パスワードの反映修正:
pgpass_usersリストでgenerate_password: trueを設定したユーザーが、初期デプロイ時に~postgres/.pgpassへ正しく追記されない問題を修正しました。 - クラスタ変数フォールバックの適正化:
config.yml内の無効なcluster_varsに対し、空辞書へ暗黙的にフォールバックして予期せぬ構成になる挙動を是正。未定義時はAnsible側で明示的にエラーを通知するよう改善しました。
5. 日本語マニュアル
Trusted Postgres Architect(TPA)23.38.1 日本語マニュアル
機能の詳細な設定方法やパラメータ仕様、導入手順については日本語マニュアルをご覧ください。