さくらのクラウド GSLBで常に1つのIPアドレスだけ返すようにする方法

さくらのクラウドで利用できるロードバランサの一つに、GSLBというものがあります。

これはトラフィックを裏側のインスタンスなどに再分配するのではなく、インターネットと直接接続された(グローバルIPを持っている)複数のインスタンスに割り当てられたIPを返却してクライアントにランダムなインスタンスへアクセスさせるIPアドレスベースのロードバランサです。

さくらのクラウド上では通常のトラフィック分配を行うロードバランサと比較して安価で、仕組みもシンプルでわかりやすく、そしてリージョンにまたがって運用することができる点はメリットです。

さてこのさくらのクラウドのGSLBですが、デフォルトの設定のままで複数インスタンスを登録すると、

;; ANSWER SECTION:
lbtest.example.com. 29 IN CNAME  site-XXXXXXXXXXXX.gslb3.sakura.ne.jp.
site-XXXXXXXXXXXX.gslb3.sakura.ne.jp. 9 IN A    1台目のサーバーIP
site-XXXXXXXXXXXX.gslb3.sakura.ne.jp. 9 IN A    2台目のサーバーIP

さくらのクラウドのDNSサーバーからは上記のように、登録したインスタンスの全IPアドレスが 一度に 返されてしまいます。

この場合、どのインスタンスへつなげに行くのかの挙動がクライアント側任せになってしまい、クライアント側の実装によってはどちらかの特定の インスタンス につなげ続ける”偏り”が発生してしまう可能性があります。

負荷をなるべく均等に分配したい場合は、これでは困ってしまいます。

このGSLB機能には、実は詳細設定があり、各インスタンスのIPの出力比率を偏らせることができます。

通常、重みをつけて運用してしまうと、IPの出力が非均等になってしまいますが、すべてのインスタンスの重みの値を同一にしておけば、均等の確率でいずれかのインスタンスのIPが出力されます。

GSLBの設定画面の右上のメニューから”監視・応答方法の変更”をクリックします。

すると下記のような画面が出てきます。

赤枠で囲った”重み付け応答を”有効”に変更します。

この状態でもう一度DNSの設定値を確認してみると

;; ANSWER SECTION:
lbtest.example.com. 21 IN CNAME  site-XXXXXXXXXXXX.gslb3.sakura.ne.jp.
site-XXXXXXXXXXXX.gslb3.sakura.ne.jp. 1 IN A    サーバー1のIP
;; ANSWER SECTION:
lbtest.example.com. 29 IN CNAME  site-XXXXXXXXXXXX.gslb3.sakura.ne.jp.
site-XXXXXXXXXXXX.gslb3.sakura.ne.jp. 1 IN A    サーバー2のIP

このようにインスタンスのいずれか1つのIPのみ応答されるようになります。

これなら余分なIPアドレスが同時に配信されることがないので、より均等にアクセスを振り分けることができそうです。

なお、一部のChrone系などのWebブラウザでは、DNSサーバーで設定されているTTL(キャッシュの有効期限)よりも長くDNSの値を保持しようとするようなので、注意が必要です。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG