Trusted Postgres Architect(TPA)23.43.0
日本語訳|Trusted Postgres Architect(TPA)23.43.0
※GoogleのAutoML Translationを使用して翻訳しております。
![]() |
![]() |
英語原文|Trusted Postgres Architect(TPA)23.43.0
![]() |
![]() |
概要
1. TPAとは?
Trusted Postgres Architect (TPA) は、EnterpriseDB (EDB) によって開発されたオープンソースのオーケストレーションツールであり、Ansibleを使用してPostgreSQLクラスターをデプロイします。Postgresのデプロイ、設定、サポートに関するEDBの推奨ベストプラクティスを具現化した、エンドツーエンドの自動化フレームワークとして機能します。宣言型の設定メカニズムを使用し、Postgresクラスターのトポロジーを細部に至るまで記述することができます。
2. TPAのメリット
- ベストプラクティスの組み込み: TPAは、EDBが長年培ってきた経験とノウハウを自動化します。生成されるクラスターは本番環境ですぐに利用可能ですが、簡単なテスト環境の構築にも同様に容易に使用できます。
- 冪等性(べきとうせい)と安全な差分変更: TPAのプロセスは冪等になるよう慎重に設計されています。設定ファイルを変更してデプロイを再実行すると、既存のインフラストラクチャを壊すことなく、必要な変更のみが正確に適用されます。
- 包括的なライフサイクル管理: 仮想マシンの立ち上げからPostgresのインストール、フェイルオーバーツールの設定、バックアップの構成、ダウンタイムゼロのアップグレード実行まで、クラスターのライフサイクル全体を処理します。
- 柔軟性と拡張性: 複数のデプロイ先プラットフォーム (AWS、Docker、ベアメタルサーバー) およびアーキテクチャ (標準的なプライマリ/レプリカ構成の “M1” や、Postgres Distributedの “PGD-Always-ON” など) をサポートします。また、カスタムAnsibleフック、カスタムコマンド、ユーザー定義テストなどを通じて高い拡張性を備えています。
- ブラックボックス化の排除: TPAは複雑で機能豊富なデータベースアーキテクチャをデプロイしますが、構築されるのは標準的なPostgresです。そのため、他のPostgresインストール環境と全く同じようにデータベースを管理できます。
3. TPAがこれらのメリットを実現する方法
TPAは、データベースのライフサイクルを、宣言型のYAML設定ファイル (config.yml) によって駆動される、高度に自動化された4段階のオーケストレーションプロセスに分割することで、これらのメリットを実現しています。
- 構成 / Configuration (tpaexec configure): アーキテクチャ、プラットフォーム、Postgresのバージョンを選択します。TPAはクラスタートポロジーの詳細を記述したブループリントとなる config.yml を生成します。これは容易に解読でき、手動で微調整することも可能です。
- プロビジョニング / Provisioning (tpaexec provision): TPAはクラスターをホストするために必要なインフラストラクチャを自動的に作成します。たとえばAWSの場合、EC2インスタンス、VPC、サブネット、セキュリティグループをプロビジョニングします。Dockerの場合はコンテナを立ち上げ、ベアメタルの場合は既存のサーバーの準備を行います。
- デプロイメント / Deployment (tpaexec deploy): TPAはAnsibleを使用してオペレーティングシステム (ユーザー、SSHキー、カーネルのチューニングなど) を構成し、Postgresと共にBarman (バックアップ)、PgBouncer (コネクションプーリング)、フェイルオーバーマネージャー (Patroni、repmgr、EFMなど) などの必須コンポーネントをインストール・設定します。
- テスト / Testing (tpaexec test): 新しくデプロイされたクラスターに対して、自動化されたアーキテクチャ固有のヘルスチェックやテスト ( pgbench など) を実行し、すべてがEDBの実証済みの基準通りに機能していることを確認します。
4. バージョン 23.43.0 のハイライト
- SLES 15 SP7のサポート: ベアメタル、AWS、Dockerを含むすべてのプラットフォームにおいて、SUSE Linux Enterprise Server 15 SP7の完全サポートを追加しました。これには新しいAMIおよびDockerベースイメージが含まれます。
- SSH設定の改善: TPAが生成する ssh_config に、Ansibleが必要とするすべてのオプションが完全に組み込まれるようになりました。これによってデプロイ時の踏み台ホスト (ジャンプホスト) の利用が自動的にサポートされます。
- 新しいタスクセレクター (ssh-cluster-key-config): authorized_keys へのクラスターSSHキーのインストールをスキップできるようになりました。これは、ファイルが読み取り専用であるか外部で管理されているセキュアな環境 (Oracle Cloudなど) で非常に役立ちます。
- DockerおよびBarmanの互換性強化: 新しいDockerバージョン (IPアドレスの取得方法が変更されたもの) でのプロビジョニングの互換性を確保し、Barman CLIコマンドを標準化しました (レガシーバージョンの場合は自動的に旧コマンドへフォールバックします)。
- 厳格なAWS検証: AWSでのプロビジョニング時に、EC2インスタンスを作成する前に「ユーザーが指定したセキュリティグループが実際に存在するかどうか」を明示的に検証するようになり、設定ミスによる予期せぬ動作を防ぎます。
- 回復力のあるEFMスイッチオーバー: スタンバイラグ(遅延)が発生している高負荷システムでの誤ったフェイルオーバーの失敗報告を防ぐため、EnterpriseDB Failover Manager (EFM) のヘルスチェックに待機と再試行 (wait-and-retry) のメカニズムを導入しました。





