GSLBとロードバランサの併用によるサーバ負荷分散のスケールアウト – 「さくらのクラウド入門」(10)

こんにちは、さくらインターネット クラウドチームの大喜多です。

さくらのクラウドのロードバランサは、標準とハイスペックの2つのプランが用意されていますが、極めて高トラフィックなWebサービス等の場合、ハイスペックプランよりもさらに処理性能の高いプランのご要望をいただくことがあります。そのような場合にGSLBとロードバランサを併用してスケールアウトする方法をご紹介します。

性能目安(最大値) 標準プラン 送信トラフィック: 100Mbps
受信トラフィック: 100Mbps
セッション数: 4,000セッション
毎秒接続数: 100cps程度
ハイスペックプラン 送信トラフィック: 1Gbps
受信トラフィック: 500Mbps
セッション数: 10,000セッション
毎秒接続数: 3,000cps程度

※いずれも最大値の目安となります。必ずしもこの性能値を保証するものではありません。

複数ロードバランサによるスケールアウト構成

さくらのクラウドのロードバランサは、ロードバランサ1台あたり、負荷分散対象のサーバは最大40台まで設定可能です。

一方、GSLBは負荷分散対象のIPアドレスを6つまで設定可能ですので、サーバ台数を最大とする構成ですと以下の図のように合計240台のサーバに負荷分散を行う構成が構築できます。

実際にはサーバ1台毎の処理能力とロードバランサのスペックとの兼ね合いで、1台のロードバランサに収容するサーバの台数や、GSLBにて分散するロードバランサの台数を調整して最適化を図っていくことになります。

GSLB+ロードバランサ併用構成の構築手順

ここでは、ロードバランサを2台用意し、各ロードバランサの負荷分散対象としてそれぞれ2台づつのサーバを用意し、GSLBにて2台のロードバランサに負荷分散を行う構成を構築し、手順をご説明してまいります。

※これよりも規模が大きくなった場合でも、基本的な手順に差はありません。

1. ルータ+スイッチの作成

さくらのクラウド コントロールパネルにて、左メニューの「スイッチ」をクリックし、「追加」をクリックします。

名前は「ルータ+スイッチ01」とします。「ルータ」項目にて「はい」のラジオボタンをクリックし、右下の「作成」をクリックします。(本記事ではルータ+スイッチのパラメータはデフォルト値を採用します)。

2. ロードバランサの作成

左メニューの「ロードバランサ」をクリックし、「追加」をクリックします。

接続先スイッチに、先ほど作成した「ルータ+スイッチ01」を選択します。今回はハイエンドな環境を想定した解説記事ですので、ロードバランサは選択可能な最高のスペックとします。「ルータ」項目にて「はい」のラジオボタンをクリックし、「プラン」項目にて「ハイスペック」のラジオボタンをクリックします。ここではIPアドレスはデフォルト値を採用します(割り当てられたIPアドレスのうち、利用可能な2つのIPアドレスが自動で選択されます)。最後に右下の「作成」をクリックします。

「作成」ボタンをクリックした後、実際にロードバランサが利用可能になるまでには少々時間がかかります。そこで、先にロードバランス対象のサーバを作成していきます。

3. サーバの作成

左メニューの「サーバ」をクリックし、「追加」をクリックします。

サーバ作成画面についての詳細な説明は省き、設定が必要な項目のみご説明します。

アーカイブはCentOS7.x系の最新版を選択します。

「スイッチに接続」のラジオボタンをクリックし、先ほど作成した「ルータ+スイッチ01」を選択します。

ルータ+スイッチに割り当てられたIPアドレスは/28の範囲のうち、ユーザが利用可能なIPアドレスは11個になります。本記事では、以下の表の通りに割り当てていきます。

1 ロードバランサのIP#1
2 ロードバランサのIP#2
3 VIP
4 サーバのIP#1
5 サーバのIP#2
6 未使用
7 未使用
8 未使用
9 未使用
10 未使用
11 未使用

赤枠で囲ったIPアドレスの部分は表の4番、サーバのIP#1を選択します。(2台目のサーバを作成する際には、表の5番、サーバのIP#2を選択します)

「Shell」のラジオボタンをクリックし、配置するスタートアップスクリプトに「lb-dsr」を選択します。ロードバランサのVIPは、表の3番、VIPを入力します。

※lb-dsrは、さくらのクラウドのロードバランサで採用しているDSR方式に対応するためのサーバ設定を行うスタートアップスクリプトです。

今回は合計4台のサーバを作成しますので、web01~web04というように連番で名前を設定します。今回は1台目なので、web01とします。
最後に右下の「作成」ボタンをクリックします。

4. ロードバランサの設定

左メニューの「ロードバランサ」をクリックし、対象のロードバランサの行をダブルクリックします。

「VIP設定」のタブをクリックし、右下の「追加」をクリックします。

VIPアドレスには、表の3番、VIPを入力します。ポート番号は「80」、チェック間隔は「10」とします。最後に右下の「作成」ボタンをクリックします。

VIPのタブが表示されるので、クリックします。右下の「追加」をクリックし、webサーバのIPアドレスを登録していきます。

IPアドレスの部分は表の4番、サーバのIP#1を入力します。(2台目のサーバを追加する際には、表の5番、サーバのIP#2を入力します)

実サーバのIPアドレス2つの登録が完了したら、右上の「反映」をクリックします。

この後1.から4.までの手順を繰り返し、以下のようにルータ+スイッチ/ロードバランサ/サーバ2台のセットを2つ作成します。

5. GSLBの設定

左メニューの「GSLB」をクリックし、「追加」をクリックします。

GSLBの設定は、以下の画像の通り設定し、画面下にスクロールして右下の「作成」をクリックします。

左メニューの「GSLB」をクリックし、対象のGSLBの行をダブルクリックします。

「実サーバ」タブをクリックし、右下の「追加」をクリックします。

「IPアドレス」には、ロードバランサに設定したVIPを入力します。最後に「作成」をクリックします。この操作を2回繰り返し、2つのVIPを登録します。

VIP2つの登録が完了したら、右上の「反映」をクリックします。

6. DNSの設定

GSLBの詳細画面に「FQDN」という項目があります。実際にはwww.sacloud.jpのようなドメインでアクセスし、GSLBのFQDNに転送され、GSLBとロードバランサを経由して各Webサーバにリクエストがいくように設定をします。

お使いのDNSサーバで、www.sacloud.jpというCNAMEレコードを作成し、FQDNにGSLBのFQDNを指定します。以下の画像は、さくらのクラウドDNSでCNAMEレコードを追加している様子です。登録後、右上の「反映」をクリックします。

7. 動作確認

各WebサーバにApacheやnginx等のWebサーバをインストールし、起動させます。その後、WebブラウザにてCNAMEレコードを作成したドメイン名(本記事ではww.sacloud.jp)にアクセスし、正しく表示されることを確認します。

まとめ

いかがでしたでしょうか。このようにクラウドであれば、拡張したいときに拡張することができるため、厳密なサイジングや機材調達が省略でき、誰でもスケーラブルなインフラを構築することができます。是非ご参考になさってください。