クラウドで実現するBCP・DR~GSLB(広域負荷分散)を使ったデータセンター間負荷分散~
[更新: 2019年10月10日]
クラウドで実現するBCP・DR~データセンター間をセキュアに繋ぐブリッジ接続~ では、東京と石狩という2つの離れたデータセンター間でデータ同期を行い、耐障害性の高いインフラを構築する手順についてご説明しました。今回は「さくらのクラウド」のGSLB(広域負荷分散)を利用した、遠隔地間の負荷分散/冗長化の手法についてご説明します。
概要
東京と石狩のWebサーバーへのアクセスをGSLBを利用して分散します。

GSLBはグローバルIPアドレスを持つサーバであれば、ロケーションや事業者を問わず負荷分散が可能な機能です。作成および設定は「さくらのクラウド」のコントロールパネルからおこなえます。GSLBの仕様等の詳細につきましては、 GSLB(広域負荷分散アプライアンス) をご参照ください。
シンプルな負荷分散の手法として「DNSラウンドロビン」というものがあります。これは1つのFQDNに対して複数のIPアドレスを登録しておくことで、名前解決の際に複数のIPアドレスに分散されるというものです。DNSサーバへの設定のみで可能なため、特別なコストがかからずに複数サーバへの負荷分散が行えることが特徴です。しかしDNSラウンドロビンはその負荷分散の方式の特性上、以下の問題があります。GSLBを利用することで、それぞれの問題を解決することができます。
全てのサーバに対してリクエストを均等に割り振るため、サーバのスペックや負荷を考慮した分散ができない。
→GSLBには重み付けの機能がついているため、サーバスペックを考慮した負荷分散設定が可能。
障害を検知するしくみがないため、ダウンしているサーバに対してもリクエストを割り当ててしまう。
→GSLBには分散対象の実サーバの死活監視機能があり、ダウンしているサーバへはリクエストを割り当てない。
それでは実際にGSLBを用いた広域負荷分散の設定を行います。
GSLBの作成
左メニューの[GSLB]をクリックし、[追加]をクリックします。

[GSLB追加]画面でフォームに従い設定を行います。

監視方法 |
[http]を選択します |
Hostヘッダ |
今回は空欄とします |
パス |
/index.htmlとします |
レスポンスコード |
200とします |
チェック間隔 |
10とします |
重み付け応答 |
[有効]とします |
名前 |
「test」とします |
そのほかの項目は任意で入力してください。入力が完了したら右下の[作成]をクリックします。
GSLBの設定
先ほど作成したGSLBが一覧に表示されますので、行をダブルクリックして詳細画面を表示します。

詳細画面で[実サーバ]タブをクリックし、右下の[追加]ボタンをクリックします。

IPアドレスには東京・石狩の各WebサーバーのグローバルIPアドレスを入力します。[有効/無効]ラジオボタンは[有効]にチェックを入れ、重み値については未入力(デフォルト)とします。

以下の通り、東京Webサーバーと石狩WebサーバーのグローバルIPアドレスの追加が完了したら、右上の[反映]をクリックします。

DNSの設定
GSLB一覧画面の[test]行に、FQDNという記載があります。ここに記載されているFQDNにアクセスすることで、実サーバへの負荷分散が行われます。

CNAMEレコードを作成し、www.k26.jpにアクセスした際に、GSLBのFQDNへリダイレクトされるようにDNS設定を行います。下記は 「さくらのクラウド」のDNS機能 を使用した場合の設定例です。

注意事項として、GSLB一覧画面に表示されるFQDNは
site-xxxxxxxxxxxx.gslb3.sakura.ne.jp
といったように、末尾に.がついておりませんが、「さくらのクラウド」のDNSに登録する際は
site-xxxxxxxxxxxx.gslb3.sakura.ne.jp.
といったように、末尾に.を追記する必要があります。
※DNSサービスによっては、末尾の.が不要な場合があります。設定の際はお使いのDNSサービスの仕様をご確認ください。
動作確認
ブラウザでアクセスし、Webサイトが正常に表示されることを確認します。

また、digコマンドを使用して以下のようにDNSサーバへの問い合わせを複数回行うと、2つのIPアドレスに分散して応答している様子が確認できます。
$ dig www.k26.jp
※www.k26.jpの部分は、自分でGSLBに設定したFQDNに読み替えて実行してください。
いかがでしたでしょうか。このようにGSLBを利用することで、これまで高価なアプライアンスが必要だったデータセンター間の負荷分散を月額500円(税抜)という安価で行うことができます。是非ご活用ください。