PostgreSQLでもレプリケーション機能がいろいろなところで使われるようになってきた最近ですが、以前から気になっていたこととして、「L4のロードバランサでPostgreSQLの負荷分散ができないのだろうか?」という素朴な疑問がありました。
ずっと試してみたいと思っていたのですが、ようやく今回 HAProxy を用いることで動作させることができましたので、その方法を簡単にご紹介します。
■「L4のロードバランサ」とは
「L4(Layer4)ロードバランス」とはTCP層におけるロードバランスのことです。L4のロードバランサは、アプリケーションごとのセッションの内容には関係なく、TCP層の情報だけを使ってロードバランスを行います。ネットワークのロードバランスには、L4以外にもL7のロードロードバランサもあり、L7のロードバランサの場合には、例えばHTTP/HTTPSのロードバランサであれば、HTTPのセッションの内容まで見て、Cookieを挿入したり参照したりして、ロードバランスの挙動を制御したりします。
L4とL7のロードバランサ違いについては、以下のページの「Layer-4 と Layer-7 のロードバランサの違い」の項目を参照してください。