sql >> データベース >  >> RDS >> PostgreSQL

WordPressの単一エンドポイントで高可用性PostgreSQLをデプロイする方法

    WordPressは、Webサイト、ブログ、またはアプリケーションの作成に使用できるオープンソースソフトウェアです。 WordPressのインストールに追加する多くのデザインと機能/プラグインがあります。 WordPressは無料のソフトウェアですが、要件に応じて、WordPressを改善するための多くの商用プラグインがあります。

    WordPressを使用すると、コンテンツを簡単に管理でき、非常に柔軟です。下書きを作成し、公開をスケジュールし、投稿の改訂を確認します。コンテンツを公開または非公開にし、パスワードで投稿とページを保護します。

    WordPressを実行するには、少なくともPHPバージョン5.2.4以降、MySQLバージョン5.0以降(またはMariaDB)、およびApacheまたはNginxが必要です。これらのバージョンの一部はEOLに達しており、サイトがセキュリティの脆弱性にさらされる可能性があるため、環境に応じて利用可能な最新バージョンをインストールする必要があります。

    ご覧のとおり、現在、WordPressはMySQLおよびMariaDBデータベースエンジンのみをサポートしています。 WPPGはPG4WPプラグインに基づくプラグインであり、PostgreSQLデータベースをバックエンドとしてWordPressをインストールして使用する可能性を提供します。これは、MySQL固有の関数への呼び出しを、それらを他のデータベース関数にマップする一般的な呼び出しに置き換え、必要に応じてその場でSQLクエリを書き換えることによって機能します。

    このブログでは、WordPress 5.1.1とHAProxyを備えた1つのアプリケーションサーバー、同じサーバーに1.5.18、2つのPostgreSQL 11データベースノード(マスタースタンバイ)をインストールします。すべてのオペレーティングシステムはCentOS7になります。データベースとロードバランサーのデプロイには、ClusterControlシステムを使用します。

    これが基本的な環境です。ここに表示されているように、高可用性機能を追加することで改善できます。それでは、始めましょう。

    データベースの展開

    まず、PostgreSQLデータベースをインストールする必要があります。このため、ClusterControlがインストールされていることを前提としています。

    ClusterControlから展開を実行するには、[展開]オプションを選択し、表示される指示に従います。

    PostgreSQLを選択するときは、SSHでサーバーに接続するためのユーザー、キー、またはパスワードとポートを指定する必要があります。また、新しいクラスターの名前と、ClusterControlに対応するソフトウェアと構成をインストールさせる場合も必要です。

    SSHアクセス情報を設定した後、データベースユーザー、バージョン、およびdatadir(オプション)を定義する必要があります。使用するリポジトリを指定することもできます。

    次のステップでは、作成するクラスターにサーバーを追加する必要があります。

    サーバーを追加するときに、IPまたはホスト名を入力できます。

    最後のステップで、レプリケーションを同期にするか非同期にするかを選択できます。

    ClusterControlアクティビティモニターから新しいクラスターの作成ステータスを監視できます。

    タスクが完了すると、ClusterControlのメイン画面にクラスターが表示されます。

    クラスタを作成したら、ロードバランサ(HAProxy)や新しいレプリカの追加など、いくつかのタスクを実行できます。

    データベースインフラストラクチャ全体のClusterControlSingleコンソールClusterControlのその他の新機能を確認するClusterControlを無料でインストール

    ロードバランサーの導入

    ロードバランサーの展開(この場合はHAProxy)を実行するには、クラスターアクションで[ロードバランサーの追加]オプションを選択し、要求された情報を入力します。

    IP /名前、ポート、ポリシー、および使用するノードを追加するだけで済みます。デフォルトでは、HAProxyは2つの異なるポート(1つは読み取り/書き込み、もう1つは読み取り専用)を使用してClusterControlによって構成されます。読み取り/書き込みポートでは、マスターのみがUPです。障害が発生した場合、ClusterControlは最も高度なスレーブをプロモートし、HAProxy構成を変更して、新しいマスターを有効にし、古いマスターを無効にします。このようにして、障害が発生した場合の自動フェイルオーバーが可能になります。

    前の手順に従った場合、次のトポロジが必要になります。

    したがって、HAProxyを使用してアプリケーションサーバーに単一のエンドポイントを作成します。これで、アプリケーションでこのエンドポイントをローカルホスト接続として使用できます。

    WordPressのインストール

    アプリケーションサーバーにWordPressをインストールし、ローカルHAProxyポート3307を使用してPostgreSQLデータベースに接続するように構成しましょう。

    まず、必要なパッケージをアプリケーションサーバーにインストールします。

    $ yum install httpd php php-mysql php-pgsql postgresql
    $ systemctl start httpd && systemctl enable httpd

    最新のWordPressバージョンをダウンロードして、Apacheドキュメントルートに移動します。

    $ wget https://wordpress.org/latest.tar.gz
    $ tar zxf latest.tar.gz
    $ mv wordpress /var/www/html/

    WPPGプラグインをダウンロードして、wordpressプラグインディレクトリに移動します。

    $ wget https://downloads.wordpress.org/plugin/wppg.1.0.1.zip
    $ unzip wppg.1.0.1.zip
    $ mv wppg /var/www/html/wordpress/wp-content/plugins/

    db.phpファイルをwp-contentディレクトリにコピーします。次に、それを編集して、「PG4WP_ROOT」パスを変更します。

    $ cp /var/www/html/wordpress/wp-content/plugins/wppg/pg4wp/db.php /var/www/html/wordpress/wp-content/
    $ vi /var/www/html/wordpress/wp-content/db.php
    define( 'PG4WP_ROOT', ABSPATH.'wp-content/plugins/wppg/pg4wp');

    wp-config.phpの名前を変更し、データベース情報を変更します。

    $ mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
    $ vi /var/www/html/wordpress/wp-config.php
    define( 'DB_NAME', 'wordpressdb' );
    define( 'DB_USER', 'wordpress' );
    define( 'DB_PASSWORD', 'wpPassword' );
    define( 'DB_HOST', 'localhost:3307' );

    次に、PostgreSQLデータベースにデータベースとアプリケーションユーザーを作成する必要があります。マスターノード:

    $ postgres=# CREATE DATABASE wordpressdb;
    CREATE DATABASE
    $ postgres=# CREATE USER wordpress WITH PASSWORD 'wpPassword';
    CREATE ROLE
    $ postgres=# GRANT ALL PRIVILEGES ON DATABASE wordpressdb TO wordpress;
    GRANT

    そして、pg_hba.confファイルを編集して、アプリケーションサーバーからの接続を許可します。

    $ Vi /var/lib/pgsql/11/data/pg_hba.conf
    host  all  all  192.168.100.153/24  md5
    $ systemctl reload postgresql-11

    アプリケーションサーバーからアクセスできることを確認してください:

    $ psql -hlocalhost -p3307 -Uwordpress wordpressdb
    Password for user wordpress:
    psql (9.2.24, server 11.2)
    WARNING: psql version 9.2, server version 11.0.
             Some psql features might not work.
    Type "help" for help.
    wordpressdb=>

    次に、Webブラウザでinstall.phpに移動します。この場合、アプリケーションサーバーのIPアドレスは192.168.100.153であるため、次の場所に移動します。

    http://192.168.100.153/wordpress/wp-admin/install.php

    管理セクションにアクセスするためのサイトタイトル、ユーザー名、パスワード、および電子メールアドレスを追加します。

    最後に、[プラグイン]-> [インストール済みプラグイン]に移動し、WPPGプラグインをアクティブ化します。

    結論

    これで、単一のエンドポイントを使用してPostgreSQLでWordPressを実行できるようになりました。 ClusterControlでクラスターアクティビティを監視して、さまざまなメトリック、ダッシュボード、または多くのパフォーマンスと管理機能を確認できます。

    PostgreSQLでWordPressを実装する方法はいくつかあります。別のプラグインを使用するか、通常どおりWordPressをインストールして後でプラグインを追加することもできますが、いずれの場合も、前述のように、PostgreSQLはWordPressで正式にサポートされていないため、必要に応じて徹底的なテストプロセスを実行する必要があります。このトポロジを本番環境で使用してください。


    1. SQL Serverトランザクションログ—パート1

    2. SELECT *[columnAを除く]FROM tableAを使用して列を除外しますか?

    3. OracleDatabaseのPL/SQLストアドプロシージャとは

    4. OracleでのOptimisticLockingの実装