概要
最新版の PostgreSQL と Pgbouncer を組み合わせて使ってみました
インストール方法から紹介します
環境
- Ubuntu 18.04
- PostgreSQL 13.1
- pgbouncer 1.15.0
Linuxbrew のインストール
最新版の PostgreSQL と Pgbouncer を使うので Linuxbrew 経由でそれぞれインストールします
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> /home/vagrant/.profile
PostgreSQL のインストール
brew install postgresql
Pgbouncer のインストール
brew install pgbouncer
pbbouncer 経由でアクセスさせるデータベースを定義する
pbbouncer 経由でアクセス可能なデータベースを定義します
デフォルトではどのデータベースにもアクセスできません
後述する test データベースにアクセスできるようにしましょう
* vim /home/linuxbrew/.linuxbrew/etc/pgbouncer.ini
[databases]
test = host=localhost port=5432 dbname=test
userlist.txt へユーザを追加
デフォルトだと pgbouncer へのアクセスは userlist.txt に記載されているユーザのみアクセスできます
今回は vagrant ユーザを使うので vagrant を追記します
パスワードはないので 2 つ目の文字列は空で設定します
* vim /home/linuxbrew/.linuxbrew/etc/userlist.txt
"vagrant" ""
PostgreSQL 起動
pg_ctl -D /home/linuxbrew/.linuxbrew/var/postgres start
Pgbouncer の起動
pgbouncer -d -q /home/linuxbrew/.linuxbrew/etc/pgbouncer.init
動作確認
- psql postgres
postgres のプロンプトに変更します
* create database test;
* \connect test
* create table users (name varchar(40), age integer);
* \dt
* insert into users values ('hawk', 10);
* insert into users values ('snowlog', 20);
テーブルが作成できたらアクセスできるか確認します
* psql test -p 5432
これに Pgbouncer 経由でアクセスしてみます
* psql test -p 6432
test データベースのプロンプトに変更します
テーブルの一覧や select 文が発行できることを確認しましょう
* \dt
* select * from users
最後に
PostgreSQL に pgbouncer 経由でアクセスする方法を紹介しました
今回はホワイトリスト形式の ACL くらいしか設定しませんでしたが他にもプーリングの機能や PostgreSQL へのメトリックなども取得できます
大規模な接続になればなるほど必要になるツールになるかなと思います
0 件のコメント:
コメントを投稿