Using TPAexec

TPAexecを使用して、 EDB Postgres分散クラスターを構成、プロビジョニング、デプロイします。

構成する

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

構文は次のとおりです。

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

必要な構成オプションは次のとおりです。

Flags

Description

--architecture

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

--layout

必須。サポートされている 4 つのアーキテクチャーのいずれかを指定します。Bronze、Silver、Gold、および Platinum詳細については、 :ref:`Choosing your architecture<Choosing your architecture>`を参照してください。

--harp-consensus-protocol

必須。レイアウトがブロンズまたはシルバーの場合は、 bdr を使用します。レイアウトがゴールドまたはプラチナの場合は、 etcd を使用します。

例:

[tpa]$ tpaexec configure ~/clusters/speedy \
         --architecture BDR-Always-ON \
         --layout gold \
         --harp-consensus-protocol etcd \

最初の引数は、 speedy または~/clusters/speedy などのクラスターディレクトリである必要があります(クラスターの名前はどちらの場合もspeedy です)。すべてのクラスターを ~/clusters などの共通ディレクトリに保持することをお勧めします。アーキテクチャを選択するための次の引数は--architecture であり、その後に--layout が続きます。

このコマンドは、 ~/clusters/speedy という名前のディレクトリを作成し、 BDR-Always-ONアーキテクチャとgoldレイアウトのレイアウトに従うconfig.yml という名前の構成ファイルを生成します。 tpcaexec info コマンドを使用して、configureコマンドの実行時に指定した内容に基づいて、構成オプションでサポートされている値を確認できます。

一般的な構成オプション

その他の構成オプションは次のとおりです。

所有者

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

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

イニシャル、「姓」、またはその他のあなたを一意に識別するものを使用できます。

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

--platform のデフォルト値はaws です。 BDR-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 。

または、 --subnet-pattern を指定して、指定されたパターンに一致するランダムサブネット(アーキテクチャに必要な数)を生成します。たとえば、--subnet-pattern 192.0.x.x 。

ディスク領域

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

個別のpostgresとbarmanのボリュームをサポートするアーキテクチャの場合:

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

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

配布

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

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

通常、「Debian」、「RedHat」、および「Ubuntu」を使用して、Postgresおよびその他のソフトウェアがプリインストールされているTPAイメージを選択できます(展開時間を短縮します)。代わりに在庫分布画像を使用するには、値に「-minimal」を追加します(例、--distribution Debian-minimal )。

2ndQuadrantリポジトリ

デフォルトでは、TPAexecは2ndQuadrantパブリックリポジトリをインストールし、アーキテクチャに必要な製品リポジトリを追加します。

--2Q-repositories source/name/release … を指定して、 2ndQuadrantパブリックリポジトリに加えて各インスタンスにインストールする2ndQuadrantリポジトリの完全なリストを指定します。

これを行う場合、tpaexecを実行する前にTPA_2Q_SUBSCRIPTION_TOKEN=xxxをエクスポートする必要があります。

EnterpriseDB customer portal からサブスクリプショントークンを取得できます(

サポート>ソフトウェアサブスクリプション>追加 )。

ソフトウェアバージョン

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

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

- -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 を指定して、各場所に意味のある名前を付けます。

Commit At Most Once

--enable-camo を指定して、各リージョンのBDRプライマリインスタンスのペアを互いのCommit At Most Once(CAMO)パートナーに設定します。詳細については、 Commit At Most Once (CAMO) を参照してください。

規定

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

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

「ベア」プラットフォームを選択し、接続の詳細を指定することにより、既存のサーバーを「プロビジョニング」することもできます。ベアメタルサーバーでも、クラウドプラットフォームで個別にプロビジョニングされたサーバーでも、まるでTPAexecで作成されたかのように使用できます。

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

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

展開する

tpaexec deploy コマンドは、プロビジョニングされたサーバー(TPAexecによって作成された場合とそうでない場合があります。ただし、SSHおよびsudoアクセスが利用できる限り、誰が作成したかは関係ありません)にインストールして構成します。これには、レプリケーション、バックアップなどが含まれます。

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

テスト

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

テスト段階が完了すると、完全に機能するクラスターができます。

詳細については、 TPAexec を参照してください。