Deploying EDB Postgres Distributed using Trusted Postgres Architect#

自己管理設定でEDB Postgres配布を自動的に展開する標準の方法は、EDBの展開ツール

Trusted Postgres ArchitectTPAのインストール TPAを使用することです。これは、セルフホストとクラウドEC2内の両方の物理マシンと仮想マシンに適用されます。

独自のLinuxシステムまたはVMで実行したい場合は、TPAを deploy EDB Postgres Distributed directly to your own Linux hosts に使用することもできます

前提条件TPAのインストール#

TPAを使用してPGDを展開する前に、TPAをインストールする必要があります。続行する前に、 installation instructions in the Trusted Postgres Architect documentation に従ってください。

構成#

tpaexec configure コマンドは、選択したオプションに基づいて、クラスターを説明する単純なYAML構成ファイルを生成します。構成はすぐに使用できるようになっており、ニーズに合わせて変更できます。構成ファイルの編集は、クラスターの作成前と後の両方で、クラスターの構成を変更する通常の方法です。

構文は次のとおりです。

tpaexec configure <cluster_dir> --architecture <architecture_name> [options]

使用可能な構成オプションには次のものが含まれます。

:header: Flags,Description :widths: 10,30 :align: left :class: longtable#

--architecture

必須。 EDB Postgres分散展開の場合は`PGD-Always-ON`に設定します。

–-postgresql <version> <br/> or <br/> --edb-postgres-advanced <version> <br/> or <br/> --edb-postgres-extended <version>

必須。使用するPostgresのディストリビューションとバージョンを指定します。詳細については、 Cluster configuration: Postgres flavour and version を参照してください。

--redwood or --no-redwood

`--edb-postgres-advanced`フラグが存在する場合に必要です。 Oracleデータベース互換性機能が必要かどうかを指定します。

--location-names l1 l2 l3

必須。 PGDを展開する場所の名前を指定します。

--data-nodes-per-location N

ロケーションごとのデータノードの数を指定します。デフォルト3です。

--add-witness-node-per-location

ロケーションごとのデータノードが偶数の場合、監視ノードを追加してローカルコンセンサスを可能にします。 2つのデータノードの場所でデフォルトで有効になっています。

--add-proxy-nodes-per-location

PGDプロキシをデータノードから分離するかどうか、および構成する数。デフォルトでは、データノードごとに1つのプロキシが構成および共同ホストされます。

--pgd-proxy-routing globalIlocal

PGDプロキシルーティングがグローバルまたはローカルロケーションごとに処理されるかどうか。

--add-witness-only-location loc

クラスター場所の1つを監視専用として指定しますその場所にはデータノードが存在しません。

--enable-camo

各ロケーションにCAMOペアを設定します。ロケーションごとに2つのデータノードでのみ動作します。

PGD-Always-ON のTPAドキュメントには、より多くの構成オプションがリストされています。

例

[tpa]$ tpaexec configure ~/clusters/speedy \
         --architecture PGD-Always-ON \
         --platform aws \
         --edb-postgres-advanced 15 \
         --redwood \
         --location-names eu-west-1 eu-north-1 eu-central-1 \
         --data-nodes-per-location 3 \
         --pgd-proxy-routing global

最初の引数は、クラスターディレクトリたとえば、speedy または~/clusters/speedy である必要があります。すべてのクラスターは、~/clusters などの共通のディレクトリに保持することをお勧めします。アーキテクチャを選択するには、次の引数が--architecture であり、その後にオプションが続く必要があります。

このコマンドは、 ~/clusters/speedy という名前のディレクトリを作成し、 PGD-Always-ONアーキテクチャのレイアウトに従っているconfig.yml という名前の構成ファイルを生成します。 tpaexec configure --architecture PGD-Always-ON --help コマンドを使用して、このアーキテクチャの構成オプションでサポートされている値を確認できます。

この例では、オプションは次を選択します。

  • AWS展開 --platform aws

  • EDB Postgres Advanced Serverバージョン15およびOracle互換性--edb-postgres-advanced 15 および--redwood

  • 3か所 --location-names eu-west-1 eu-north-1 eu-central-1

  • 各ロケーションに3つのデータノード --data-nodes-per-location 3

  • グローバル --pgd-proxy-routing global のプロキシルーティングポリシー

一般的な構成オプション#

その他の構成オプションには次のものが含まれます。

所有者#

すべてのクラスターは、プロビジョニングされたリソースの責任者まで直接追跡できる必要があります。

デフォルトでは、クラスターはtpaexec provision を実行しているユーザーのログイン名が所有するものとしてタグ付けされます。この名前が個人を識別しない場合たとえば、 postgres 、ec2-user 、 --owner SomeId を指定して識別可能な所有者を設定する必要があります。

イニシャル、「名、姓」、またはあなたを一意に識別するテキストを使用できます。

プラットフォームオプション#

--platform のデフォルト値はaws であり、これは、PGD-Always-ONアーキテクチャでサポートされているプラットフォームです。

--region を指定して、アクセスがあり、必要な数のインスタンスを作成できる既存のAWSリージョンを指定します。デフォルトのリージョンはeu-west-1です。

AWSの有効なインスタンスタイプで--instance-type を指定します。デフォルトはt3.microです。

サブネットの選択#

デフォルトでは、各クラスターには、10.33/16の下のランダムな/28サブネットが割り当てられます。ただし、アーキテクチャによっては、1つ以上のサブネットが存在し、各サブネットは/24から/29の間の任意の場所にあります。

特定のサブネットを使用するには、 --subnet を指定します --subnet 192.0.2.128/27 など

ディスク領域#

ルートボリュームのサイズをGB単位で設定するには、 --root-volume-size を指定します、例、 --root-volume-size 64 。デフォルトは16GBです。インスタンスの作成に使用されるイメージによっては、ルートボリュームの最小サイズが存在する場合があります。

個別のPostgresおよびBarmanボリュームをサポートするアーキテクチャの場合

  • --postgres-volume-size を指定して、PostgresボリュームのサイズをGB単位で設定します。デフォルトは16GBです。

  • --barman-volume-size を指定して、 BarmanボリュームのサイズをGB単位で設定します。デフォルトは32GBです。

ディストリビューション#

--os または--distribution を指定して、クラスターのインスタンスで使用するOSを指定します。値は大文字と小文字が区別されます。

選択したプラットフォームにより、使用可能なディストリビューションとデフォルトで使用されるディストリビューションが決まります。詳細については、 tpaexec info platforms/<platformname> を参照してください。

通常、 Debian 、RedHat 、およびUbuntu を使用して、Postgresおよびその他のソフトウェアがプリインストールされているTPAイメージを選択できます展開時間を削減します。代わりにストック分布画像を使用するには、値に-minimal を追加しますたとえば、--distribution Debian-minimal 。

リポジトリ#

TPAを使用してPDG 5以降を展開する場合、TPAはEDB Repos 2.0からリポジトリを選択します。すべてのソフトウェアはこれらのリポジトリから取得しています。

EDB Repos 2.0 を使用するには、

tpaexecを実行する前にexport EDB_SUBSCRIPTION_TOKEN=xxx を使用する必要があります。サブスクリプショントークンは、 the web interface から取得できます。

オプションで、 --edb-repositories repository … を使用して、各インスタンスにインストールするデフォルトのリポジトリに加えて、EDBリポジトリを指定します。

ソフトウェアバージョン#

デフォルトでは、TPAはPostgresの最新メジャーバージョンを使用します。 --postgres-version を指定して以前にサポートされているメジャーバージョンをインストールするか、

リポジトリの構成 で説明しているフラグのいずれかを使用してバージョンとディストリビューションの両方を指定します。

デフォルトでは、TPAはすべてのパッケージの最新バージョンをインストールします。これは、通常、望ましい動作です。ただし、一部のテストシナリオでは、特定のパッケージバージョンを選択する必要がある場合があります。例

- -postgres-package-version 10.4-2.pgdg90+1
- -repmgr-package-version 4.0.5-1.pgdg90+1
- -barman-package-version 2.4-1.pgdg90+1
- -pglogical-package-version 2.2.0*
- -bdr-package-version 3.0.2*
- -pgbouncer-package-version 1.8*

さらにパッケージをインストールするには、 --extra-packages または--extra-postgres-packages を指定します。前者は、システムパッケージとともにインストールするパッケージをリストします。後者は、Postgresパッケージとともに後でインストールするパッケージをリストしています。前者のリストでPostgresに依存するパッケージを記載すると、Postgresがまだインストールされていないため、インストールは失敗します。引数は変更せずにインストールのためにパッケージマネージャーに渡されます。

--extra-optional-packages オプションは--extra-packages と同様に動作しますが、名前付けたパッケージをインストールできない場合、これはエラーではありません。

ホスト名#

デフォルトでは、tpaexec configure は、数十の名前の事前承認リストから必要な数のホスト名をランダムに選択します。これは、ほとんどのクラスターに十分です。

--hostnames-from を指定して、提供されたリストで使用可能なより多くの名前が必要な場合など、別のリストから名前を選択します。ファイルには、1行に1つのホスト名を含める必要があります。

--hostnames-pattern を指定して、ホスト名をegrep-syntaxパターンに一致するものに制限します。これを行う場合、パターンが有効なホスト名[a-zA-Z0-9-]のみと一致し、十分な数のホスト名を検出することを確認する必要があります。

ロケーション#

デフォルトでは、tpaexec configure は、選択したアーキテクチャが使用する場所にfirst、secondなどの名前を使用します。

--location-names を指定して、各場所にもっと意味のある名前を提供します。

プロビジョニング#

tpaexec provision コマンドは、クラスターに必要なインスタンスとその他のリソースを作成します。プロセスの詳細は、クラスターの構成中に選択したアーキテクチャPGD-Always-ONなどとプラットフォームAWSなどによって異なります。

たとえば、必要な特権を持つAWSアクセスが与えられると、TPAはEC2インスタンス、VPC、サブネット、ルーティングテーブル、インターネットゲートウェイ、セキュリティグループ、EBSボリューム、Elastic IPなどをプロビジョニングします。

bare プラットフォームを選択し、接続の詳細を提供することにより、既存のサーバーをプロビジョニングすることもできます。これらはベアメタルサーバーであるか、クラウドプラットフォームで別途プロビジョニングされたサーバーであるかにかかわらず、TPAによって作成されたかのように使用できます。

単一のプラットフォームに制限されません。必要に応じて、クラスターを複数のリージョンのいくつかのAWSインスタンスと一部のオンプレミスサーバーまたは他のデータセンターのサーバーに分散できます。

プロビジョニングステージの最後に、基本的なオペレーティングシステムがインストールされた必要な数のインスタンスができます。TPAは、SSHルートにsudoを使用してアクセスできます。

Deploy#

tpaexec deploy コマンドは、プロビジョニングされたサーバーにPostgresおよびその他のソフトウェアをインストールおよび構成します。 TPAはサーバーを作成できますが、SSHとsudoアクセスが利用できる限り、誰が作成したかは関係ありません。これには、レプリケーション、バックアップなどの設定が含まれます。

展開ステージの最後に、 EDB Postgres Distributedが稼働しています。

テスト#

tpaexec test コマンドは、展開されたクラスターに対してさまざまなアーキテクチャとプラットフォーム固有のテストを実行して、予想通りに動作することを確認します。

テスト段階の最後に、完全に機能するクラスターが完成します。

詳細については、 Trusted Postgres ArchitectTPAのインストール を参照してください。