【動画で製品解説】Trusted Postgres Architect(TPA)23.38.1

音声ガイド

1.TPAとは?
TPA (Trusted Postgres Architect) は、EnterpriseDB (EDB) によって開発されたオーケストレーションツールです。EDBのベストプラクティスと推奨事項に従って、Ansibleを使用してPostgresクラスターをデプロイ、構成、および管理します。YAMLファイル(config.yml)を使用した宣言的な構成メカニズムに基づいており、目的のクラスターのトポロジーと構成の詳細を記述します。迅速なテストベッド環境のセットアップにも、本番環境にも適しています。様々なアーキテクチャ(M1、PGD-Always-ON、PGD Lightweight、PGD-S、PGD-Xなど)やプラットフォーム(AWS、Docker、ベアメタルサーバー)をサポートしています。TPAによるデプロイの結果は標準的なPostgresインストールであり、隠された仕組みはなく、ユーザーは完全に制御できます。

2.どのように機能するか?
TPAは、Postgresクラスターを構築するために、通常tpaexecコマンドを使用して実行される4つの明確な段階で機能します。

  • 構成 (tpaexec configure): 高レベルの選択肢(アーキテクチャ、プラットフォーム、Postgresバージョンなど)に基づいて、初期のconfig.ymlファイルを生成します。このファイルがブループリントとして機能します。
  • プロビジョニング (tpaexec provision): config.ymlに基づいて、クラスターをホストするために必要なインフラストラクチャリソース(VM、コンテナ、VPC、サブネット、ボリュームなどのクラウド リソース)を作成します。SSH経由でアクセス可能な基本OSを備えたインスタンスを準備します。
  • デプロイメント (tpaexec deploy): プロビジョニングされたインスタンスに、必要なすべてのソフトウェア(OS設定、Postgres、PGD、Barman、pgbouncer、repmgr、拡張機能などのコンポーネント)をインストールおよび構成し、レプリケーションやバックアップなどをセットアップします。この段階の終了時には、クラスターは起動して稼働しています。
  • テスト (tpaexec test): 選択したアーキテクチャとプラットフォームに固有の自動テストを実行し、デプロイされたクラスターが期待通りに機能していることを確認します。
    このプロセスは冪等性(同じ操作を何度実行しても同じ結果になること)を持つように設計されており、config.ymlを変更した後にコマンドを再実行するだけで、必要な更新のみが適用されます。

3.TPAを使用する利点とメリット:

  • 自動化: Postgresクラスターのプロビジョニング、インストール、構成、テストという複雑なプロセスを自動化し、時間と手動エラーを削減します。
  • ベストプラクティス: 堅牢で高性能なPostgres環境をデプロイするための、EDBの豊富な経験と推奨事項を具現化しています。
  • 一貫性: 単一の宣言的な構成ファイルを使用することで、異なる環境間での一貫したデプロイメントを保証します。
  • 柔軟性: 様々なアーキテクチャとプラットフォーム(クラウド、ベアメタル、コンテナ)をサポートし、config.ymlファイル、オーバーライド、Ansibleフックを通じて広範なカスタマイズが可能です。
  • 保守性: 構成変更の適用、スイッチオーバー、ゼロダウンタイムのマイナーバージョンアップグレードなど、継続的なクラスター管理タスクを簡素化します。
  • 冪等性: 関連する段階を再実行するだけで、増分変更の適用や障害からの復旧を容易にします。
  • オープンソースと拡張性: コアTPAはオープンソース(GPLv3)であり、Ansibleに基づいているため、ユーザーは特定の環境やアプリケーションと連携するためのカスタムコマンド、テスト、フックを作成できます。
  • エアギャップ環境のサポート: 直接インターネットにアクセスできない環境でのデプロイメントのために、パッケージのダウンロードやローカルリポジトリのセットアップ機能が含まれています。

4.バージョン 23.38.1 の新機能:
Trusted Postgres Architect 23.38.1は、バグ修正リリースです。以下の特定の課題を解決しています。

  • ベアプラットフォームを使用してPGD6のtpaexec configureを実行すると、誤って「Unknown Platform error」という結果になる問題を修正しました。
  • pgpass_usersリストに含まれるユーザーのうち、generate_password: trueが設定されているユーザーが、初期デプロイ時に~postgres/.pgpassファイルに正しく追加されなかった問題を修正しました。この修正には、pgpassタスクの再実行と、PEMエージェントタスクの一環としてpostgres_userを正しく追加することが含まれます。
  • config.yml内の無効なcluster_vars辞書が、TPAが空の辞書にフォールバックするために、デプロイの失敗または予期しない構成につながる問題を修正しました。この修正により、読み込み時にcluster_vars辞書が定義され、空でないことが保証され、空の辞書へのフォールバックが削除され、代わりにAnsibleがエラーを発生させるようになります。