2026年9月28日

2026年9月28日

ProxySQLでMySQLのロードバランシングを設定する方法

はじめに

MySQLデータベースのスケーリングや高可用性を確保するためには、ロードバランシングが有効な手段となります。ProxySQLは、MySQLとそのクライアント間で通信を代理し、複数のMySQLサーバー間で負荷分散を行うツールです。この記事では、ProxySQLを使用してMySQLのロードバランシングを設定する方法について解説します。

症状・背景

  • 高負荷環境: MySQLデータベースが大量のクエリや大規模な読み書き操作を受け付けている場合
  • スケーリング: サーバーの追加や削除を行いながら、サービスを継続稼働させる必要がある場合
  • 高可用性: あるサーバーに依存せず、全体としてデータアクセスが可能なようにする必要がある場合

手順・設定方法

ステップ1: ProxySQLのインストール

# yumでProxySQLをインストール(CentOS/RHEL)
sudo yum install -y proxysql

# apt-getでProxySQLをインストール(Ubuntu/Debian)
sudo apt-get update && sudo apt-get install -y proxysql

ステップ2: ProxySQLの初期設定

# ProxySQLの起動
sudo systemctl start proxysql

# パラメータファイルの編集
sudo nano /etc/proxysql/admin.cnf

# 必要なパラメータを設定します。例:
mysql_users = {
  'user' = 'admin',
  'password' = 'admin_password'
}

mysql_servers = {
  { hostname = '127.0.0.1', port = 3306, weight = 50 }
}

ステップ3: ロードバランシングの設定

# ProxySQLの管理クライアントを使用して接続
mysql -h 127.0.0.1 -P 6032 -u admin -padmin_password

# サーバグループを作成します。
CREATE SERVER myservergroup COMMENT 'My Server Group' GROUP BY hostname PORT 3306 WEIGHT 50;

# ユーザグループを作成します(必要であれば)
CREATE USER GROUP myusergroup;

ステップ4: 実践/トラブルシュート/監視

# ProxySQLのステータスを確認します。
SHOW STATUS LIKE 'mysql_connected%';

# エラーログを確認します。
sudo tail -f /var/log/proxysql/admin.log

注意事項

  • セキュリティ上の注意: ProxySQLの管理者ユーザーは厳重に管理し、不正アクセス防止のために強力なパスワードを使用すること
  • パフォーマンス/運用上の注意: 代理サーバーであるProxySQL自体も負荷を受ける可能性があるため、適切なリソース配分を行うこと

まとめ

1. インストールと起動: ProxySQLのインストールから初期設定までの一連の手順

2. サーバグループの作成: MySQLサーバーをグループ化し、ロードバランシングする方法

3. ユーザグループの作成: ユーザーに対するアクセス制御を行うための設定

4. ステータス確認とトラブルシュート: ProxySQLの動作状況を監視する方法

5. 注意点: セキュリティとパフォーマンスに関する重要な考慮事項

関連記事:

お気軽にご相談ください

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