マルチクラウド環境はディザスタリカバリプラン(DRP)に適したオプションですが、さまざまなクラウドプロバイダー間の接続を構成する必要があるため、時間のかかる作業になる可能性があります。次に、データベースクラスターを2つの異なる場所にデプロイして管理する必要があります。
このブログでは、現時点で最も人気のある2つのクラウドプロバイダーであるAWSとGoogleCloudでPostgreSQLのマルチクラウドデプロイを実行する方法を紹介します。このタスクでは、スケーリングやクラスター間レプリケーションなど、ClusterControlが提供できるいくつかの機能を使用します。
ClusterControlのインストールが実行されており、2つの異なるクラウドプロバイダーアカウントがすでに作成されていることを前提としています。
まず、メインのクラウドプロバイダーで環境を作成する必要があります。この場合、2つのPostgreSQLノードでAWSを使用します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542498.png)
ClusterControlサーバーからのSSHおよびPostgreSQLトラフィックが許可されていることを確認してください。セキュリティグループの編集:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542549.png)
次に、セカンダリクラウドプロバイダーに移動して、少なくとも1つの仮想マシンを作成しますそれがスレーブノードになります。 1つのPostgreSQLノードでGoogleCloudPlatformを使用します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542555.png)
また、ClusterControlからのSSHおよびPostgreSQLトラフィックを許可していることを確認してくださいサーバー:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542534.png)
この場合、ソースに制限のないトラフィックを許可しています、ただし、これは単なる例であり、実際には推奨されていません。
このタスクにはClusterControlを使用するため、インストールされていることを前提としています。
ClusterControlサーバーに移動し、[展開]オプションを選択します。すでにPostgreSQLインスタンスを実行している場合は、代わりに「既存のサーバー/データベースのインポート」を選択する必要があります。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542666.png)
PostgreSQLを選択するときは、ユーザー、キーまたはパスワード、およびポートを指定する必要がありますSSHでPostgreSQLノードに接続します。新しいクラスターの名前と、ClusterControlに対応するソフトウェアと構成をインストールさせる場合にも必要です。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542669.png)
この手順の詳細については、ClusterControlのユーザー要件を確認してください。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542755.png)
SSHアクセス情報を設定した後、データベースユーザーを定義する必要があります。 version、およびdatadir(オプション)。使用するリポジトリを指定することもできます。次のステップでは、作成するクラスターにサーバーを追加する必要があります。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542847.png)
サーバーを追加するときに、IPまたはホスト名を入力できます。このステップでは、ClusterControlに使用するネットワークに関する制限がないため、セカンダリクラウドプロバイダーに配置されたノードを追加することもできますが、より明確にするために、次のセクションで追加します。ここでの唯一の要件は、ノードへのSSHアクセスが必要です。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542809.png)
最後のステップで、レプリケーションを同期にするか、同期するかを選択できます。非同期。
ここにリモートノードを追加する場合は、非同期レプリケーションを使用することが重要です。使用しない場合、クラスターは遅延またはネットワークの問題の影響を受ける可能性があります。
ClusterControlアクティビティモニターで作成ステータスを監視できます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542984.png)
タスクが完了すると、新しいPostgreSQLクラスターがClusterControlのメイン画面。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214542938.png)
クラスターを作成したら、ロードバランサーやレプリケーションスレーブノードのデプロイ/インポートなど、いくつかのタスクを実行できます。
クラスターアクションに移動し、[レプリケーションスレーブの追加]を選択します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543034.png)
「新しいレプリケーションスレーブを追加」オプションを使用してみましょう。リモートノードは新規インストールです。そうでない場合は、代わりに[既存のレプリケーションスレーブのインポート]オプションを使用できます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543092.png)
ここでは、マスターサーバーを選択するだけで、IPアドレスを入力できます新しいスレーブサーバーとデータベースポート用。次に、ClusterControlにソフトウェアをインストールするかどうか、およびレプリケーションスレーブを同期にするか非同期にするかを選択できます。繰り返しになりますが、別のデータセンターにノードを追加する場合は、ネットワークパフォーマンスに関連する問題を回避するために、非同期レプリケーションを使用する必要があります。
このようにして、必要な数のレプリカを追加し、ClusterControlで実装できるロードバランサーを使用してそれらの間で読み取りトラフィックを分散できます。
ClusterControlアクティビティモニターでレプリケーションスレーブの作成を監視できます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543151.png)
トポロジビューセクションで最終的なトポロジを確認します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543182.png)
マルチクラウド環境で「レプリケーションスレーブの追加」オプションを使用する代わりに、ClusterControlクラスター間レプリケーション機能を使用してリモートクラスターを追加できます。現時点では、この機能にはPostgreSQLの制限があり、リモートノードを1つだけ持つことができるため、以前の方法と非常によく似ていますが、将来のリリースでその制限を取り除くよう取り組んでいます。
新しいスレーブクラスターを作成するには、ClusterControl->[クラスター]->[クラスターアクション]->[スレーブクラスターの作成]に移動します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543257.png)
スレーブクラスターは、現在のマスタークラスターからデータをストリーミングすることによって作成されます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543397.png)
このセクションでは、現在のクラスターのマスターノードを次の場所から選択する必要があります。データが複製されます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543396.png)
次の手順に進むときは、ユーザー、キー、またはを指定する必要がありますパスワード、およびSSHでサーバーに接続するためのポート。また、スレーブクラスターの名前と、ClusterControlに対応するソフトウェアと構成をインストールさせる場合も必要です。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543410.png)
SSHアクセス情報を設定した後、データベースのバージョンを定義する必要があります。 datadir、port、およびadminの資格情報。ストリーミングレプリケーションを使用するため、マスタークラスターで使用されているものと同じデータベースバージョンと資格情報を使用していることを確認してください。使用するリポジトリを指定することもできます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543410.png)
このステップでは、新しいスレーブクラスターのサーバーを追加する必要があります。このタスクでは、データベースノードのIPアドレスまたはホスト名の両方を入力できます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543489.png)
ClusterControlアクティビティモニターでスレーブクラスターの作成を監視できます。タスクが完了すると、ClusterControlのメイン画面にクラスターが表示されます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214543559.png)
これらのClusterControl機能を使用すると、PostgreSQLデータベース(およびさまざまなテクノロジー)のさまざまなクラウドプロバイダー間でレプリケーションをすばやくセットアップし、簡単で使いやすい方法でセットアップを管理できます。クラウドプロバイダー間の通信については、セキュリティ上の理由から、既知のソースからのトラフィックのみを制限する必要があります。つまり、クラウドプロバイダー1からクラウドプロバイダー2へ、またはその逆のトラフィックのみを制限する必要があります。