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. セキュリティ強化: データの一貫性と可用性を維持するために重要です。
関連記事: