Trusted Postgres Architect(TPA)23.37.0

1. TPAとは何か?
Trusted Postgres Architect (TPA)は、EnterpriseDB (EDB)によって開発されたオーケストレーションツールです。Ansibleを使用して、PostgreSQLおよびEDB Postgres Advanced Server (EPAS)クラスターをデプロイおよび管理します。TPAは、EDBが推奨するベストプラクティスに基づいて構築されており、これは長年のPostgresのデプロイとサポート経験から導き出されたものです。インフラストラクチャからソフトウェアコンポーネントに至るまで、クラスターの望ましい状態を定義するために、宣言的な構成アプローチ(config.yml)を使用します。

2. どのように機能するのか?
TPAは、tpaexec コマンドラインツールを使用して、下記の明確な段階で動作します。

  • 設定 (tpaexec configure): クラスターの特性(アーキテクチャ(M1、PGD-Always-ONなど)、プラットフォーム(AWS/Docker/ベアメタルなど)、Postgresバージョン、コンポーネント(Barman/repmgr/EFMなど))を定義します。TPAは、この望ましい状態を記述した config.yml ファイルを生成します。
  • プロビジョニング (tpaexec provision): TPAは、設定に基づいて必要なインフラストラクチャを作成します。これには、サーバー(AWS EC2インスタンス、Dockerコンテナなど)および関連リソース(VPC、サブネット、セキュリティグループ、ボリュームなど)のプロビジョニングが含まれます。あるいは、既存のベアメタルサーバーやVMを使用する準備を行うこともできます。
  • デプロイ (tpaexec deploy): TPAは、プロビジョニングされた、または既存のサーバーに、config.yml に従ってオペレーティングシステム、PostgreSQL(またはEPAS)、および関連コンポーネント(フェイルオーバーマネージャー、バックアップツール、コネクションプーラーなど)をインストールおよび設定します。これには、レプリケーション、バックアップ、ユーザー設定などが含まれます。
  • テスト (tpaexec test): TPAは、デプロイされたクラスターに対して、アーキテクチャ固有の自動テスト(pgbench など)を実行し、その機能を確認します。

これらの段階を通じて、TPAは構成詳細、OS設定、パッケージインストール、サービス定義などを管理します。

3. TPAを使用するメリット

  • ベストプラクティス: EDBの実証済みのデプロイ戦略と構成をすぐに利用できます。
  • 自動化: プロビジョニング、OS設定、ソフトウェアインストール、テストなど、本番環境に対応したPostgresクラスターのセットアップに関わる複雑でエラーが発生しやすいタスクを自動化します。
  • 一貫性と再現性: 宣言的な性質により、デプロイの一貫性と再現性が保証されます。
  • 管理の簡素化: 構成変更、ゼロダウンタイムのマイナーバージョンアップグレード(一部アーキテクチャで23.37の新機能)、スイッチオーバーなど、クラスターライフサイクル管理のための便利なコマンドを提供します。
  • 冪等性(べきとうせい): システムがすでに望ましい状態にある場合、意図しない変更を引き起こすことなく安全に再実行できるように操作が設計されています。
  • 拡張性: Ansibleを活用し、環境固有のニーズに合わせてカスタムフック、コマンド、テストでTPAの機能を拡張できます。
  • 柔軟性: 様々なアーキテクチャ(単純なレプリケーション、PGD-Always-ON)、プラットフォーム(AWS、Docker、ベアメタル)、コンポーネントをサポートします。
  • 標準的なPostgres: 複雑な抽象化レイヤーを追加することなく、標準的なPostgresインストールを作成します。

4. リリース 23.37.0 の新機能

  • 主な機能: マイナーバージョンアップグレード: tpaexec upgrade コマンドが、Patroni および EFM をフェイルオーバーマネージャーとして使用するM1アーキテクチャクラスターにおいて、PostgreSQL自体の自動マイナーバージョンアップグレードをサポートするようになりました。
  • アップグレードの強化: repmgr を使用するM1クラスターのマイナーバージョンアップグレードが改善されました(witnessノードを含むようになり、サービス再起動の信頼性が向上)。
  • 出力の改善: タスク出力で、変更を行ったタスク(ハイライト表示)と変更なしで完了したタスク(「ok」)がより明確に区別されるようになりました。
  • Dockerプロビジョニング解除の高速化: Dockerインスタンスのプロビジョニング解除が高速化されました(並行してstopの代わりにkillを使用)。
  • EFM 5 サポート: EFM 5.0で導入された check.num.sync.period プロパティのサポートが追加されました。
  • 変更と修正:
    • ファイルが見つからない場合のEFM設定ファイルの処理改善。
    • セットアップ中のEDBリポジトリURIの検証強化。
    • 古いBDR-Always-ONアーキテクチャでBDR v5を使用しようとした場合に正しくエラーが発生するようになりました(PGD-Always-ONを使用する必要があります)。
    • shared_preload_libraries の計算、不要なPatroniレプリケーションスロットの作成、patronictl switchover コマンドの使用法、PEMを含むBDRクラスターでのインスタンスカウント、EFMクラスターでのPEMサーバー選択、.pgpass ファイル内の重複行に関するバグ修正。

日本語訳|Trusted Postgres Architect(TPA)23.37.0

※GoogleのAutoML Translationを使用して翻訳しております。

英語原文|Trusted Postgres Architect(TPA)23.37.0

EFM

次の記事

Failover Manager(EFM)5.0.0