Deploying EDB Postgres Distributed using Trusted Postgres Architect

自己管理設定でEDB Postgres Distributedを展開する標準的な方法は、EDBの展開ツール: 信頼できるPostgresアーキテクト (TPA)を使用することです。これは、セルフホストとクラウド(EC2)の両方の物理マシンと仮想マシンに適用されます。

無料トライアルアカウントと

信頼できるPostgresアーキテクト (TPA)から deploy directly to your own bare metal servers を使用することもできます。

前提条件: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> or --edb-postgres-advanced <version> or --edb-postgres-extended <version>

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

--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

ロケーションごとに偶数のデータノードの場合、witnessノードを追加してローカルコンセンサスを可能にします。 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 である必要があります。 (クラスターの名前はどちらの場合も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 を指定して識別可能な所有者を設定する必要があります。

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

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

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

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

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

サブネット選択

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

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

ディスクスペース

  • -root-volume-sizeを指定して、ルートボリュームのサイズをGB単位で設定します。例、 –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を使用)。

展開する

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

展開段階の最後に、 EDB Postgres Distributedが稼働しています。

テスト

tpaexec testコマンドは、デプロイされたクラスターに対してさまざまなアーキテクチャおよびプラットフォーム固有のテストを実行し、期待どおりに動作していることを確認します。

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

詳細については、 信頼できるPostgresアーキテクト を参照してください。