2026年7月14日

2026年7月14日

WordPressのGaleraクラスタでDB冗長化する方法

はじめに

WordPressサイトが高負荷や障害に耐えうるよう、データベースの冗長化は重要です。Galeraクラスタを使用することで、MySQLデータベースに対するリアルタイム同期とフェイルオーバー機能を提供します。

症状・背景

このテーマが必要になる主な場面:

  • データ損失が起こった場合
  • サイトの高可用性を確保したい時
  • 複数サイトで同一データベースを使用している場合

手順・設定方法

ステップ1: Galeraクラスタの初期セットアップ

# MySQLリポジトリを追加
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/mysql-5.7 -y
sudo apt update

# MySQL Galeraのインストール
sudo apt install galera-3 mysql-client-core-5.7 mysql-server-core-5.7 mariadb-galera-server -y

ステップ2: クラスタ初期化と設定ファイル編集

# wsrep_cluster_nameを設定
sudo nano /etc/mysql/conf.d/wsrep.cnf
# 以下のように記述(適切な値に変更)
wsrep_cluster_name = "mygaleracluster"

# wsrep_node_addressの設定
sudo nano /etc/mysql/conf.d/galera.cnf
# 各ノードに対して異なるIPアドレスを指定
wsrep_node_address = <ノードのIP>

# galera初期クラスタシード設定
sudo nano /var/lib/mysql/grastate.dat
# initial cluster stateを"donor|primary"に設定

ステップ3: Galeraクラスタの起動と確認

# MySQLサービスを開始
systemctl start mysql.service

# Galeraクラスタ状態を確認
mysql -e "SHOW STATUS LIKE 'wsrep%';"

# WordPressデータベースを作成
sudo mysql -u root -p <パスワード> -e "CREATE DATABASE wordpress;"

ステップ4: フェイルオーバーと監視の設定

# galera仲裁を設定
sudo nano /etc/mysql/conf.d/wsrep.cnf
# wsrep_provider_optionsを追加(適切な値に変更)
wsrep_provider_options="gcache.size=128M;pc.bootstrap=true"

# モニタリングスクリプトを作成
sudo nano /usr/local/bin/check_galera.sh

注意事項

  • <実践的な注意点1>: Galeraクラスタの初期化は慎重に行うべきです。
  • <実践的な注意点2>: 各ノードの設定を完全に同期させておくことが重要です。
  • <セキュリティ上の注意>: フェイルオーバー時にデータの一貫性が保たれるようにするため、適切な監視とバックアップが必要です。
  • <パフォーマンス/運用上の注意>: Galeraクラスタは複数ノード間で同期を行うため、ネットワーク帯域の問題に気をつける必要があります。

まとめ

1. Galeraクラスタ導入: WordPressサイトの高可用性を向上させるために必要です。

2. データベース冗長化: データ損失リスクを最小限に抑えることができます。

3. フェイルオーバー設定: システムのダウンタイムを短縮します。

4. モニタリングと監視: 状態を適切に把握し、迅速な対応が可能になります。

5. セキュリティ強化: データの一貫性と可用性を維持するために重要です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ