3月よりベータ版としてユーザの皆様に公開させていただきました「ロードバランサ」機能ですが、このたび4月1日より正式版としてサービス提供を開始させていただくこととなりました。
ベータ版の操作については3月12日に初版公開しました記事にてお知らせしましたが、正式版ではお客様よりフィードバックいただいた不具合修正や機能追加を行っています。本記事ではその仕様を反映して追記・変更を行い、改めて操作手順をお知らせします。
なお、後日オンラインマニュアルにもロードバランサの操作マニュアルとして追加を予定しています。
1. 概要
「ロードバランサ」機能は、さくらのクラウド環境内において仮想的なアプライアンス機器として動作するロードバランサを提供するサービスです。そのため、コントロールパネルからの操作で、クラウド環境内に構築済みのお客様環境へ素早く容易にロードバランシング環境を導入することが可能となります。
提供するロードバランサの価格は下記の通りです。
月額料金 | 日割料金 | |
ロードバランサ(冗長なし) | 2,500円 | 126円 |
ロードバランサ(冗長あり) | 5,000円 | 252円 |
また、主な仕様は次の通りです。
構成 | DSR(Direct Server Return)方式(*1) |
ロードバランサの冗長化 | VRRPを用いた冗長化に対応 |
仮想IPアドレス(VIP)、ポート番号 | 最大4個まで |
実サーバ数 | 1VIPにつき10個まで |
性能目安 | 100Mbps、4000セッション、100cps程度 |
(*1) 「ルータ+スイッチ」または「スイッチ」を使用して構築されたネットワーク内にのみ設置ができます(共用セグメントへの設置はできません)。
2. 構成例
今回は構成例として、
- ルータ+スイッチを組み合わせたWebサーバの負荷分散
- スイッチを組み合わせたデータベースサーバの負荷分散
を挙げてみます。実サーバへの設定方法は次の項目で解説します。
例1: Webサーバの負荷分散
ルータ+スイッチ機能で割り当てられたお客様独自のIPアドレス帯域に接続されている複数のWebサーバを、冗長構成のロードバランサで負荷分散する場合の例です。
想定するネットワークの情報は次のとおりです。(以下の各IPアドレスは弊社テスト環境の帯域を使用しています。お客様環境のIPアドレスに読み替えてください。)
IPアドレス帯域 | 133.242.38.160/28 |
ゲートウェイ | 133.242.38.161 |
冗長構成ロードバランサ1(※1) | 133.242.38.164 |
冗長構成ロードバランサ2(※2) | 133.242.38.165 |
Webサーバ1 | 133.242.38.166 |
Webサーバ2 | 133.242.38.167 |
ロードバランサ仮想IPアドレス | 133.242.38.168 |
※1: コントロールパネルのロードバランサ情報画面では「IPv4アドレス #1」と表記
※2: コントロールパネルのロードバランサ情報画面では「IPv4アドレス #2」と表記
例2: データベースの負荷分散
スイッチ機能でプライベートネットワーク環境を作成し、ロードバランサでWebサーバのバックエンドとなるデータベースサーバの負荷分散する場合の例です。
IPアドレス帯域 | 192.168.1.0/24 |
Webサーバ(プライベートネットワーク側) | 192.168.1.1 |
ロードバランサ | 192.168.1.2 |
DBサーバ1 | 192.168.1.3 |
DBサーバ2 | 192.168.1.4 |
ロードバランサ仮想IPアドレス | 192.168.1.10 |
3. 導入設定
この項目では、先に上げた構成例1のネットワーク構成を例として設定を進めます。
ルータ+スイッチまたはスイッチの作成
さくらのクラウド環境内へロードバランサを導入する場合、必ず「ルータ+スイッチ」または「スイッチ」で構成されたネットワークが必要となります。これらの機能についての詳しい情報はオンラインマニュアルを参照してください。
実サーバのネットワーク設定
DSR構成でのロードバランシング動作が行われるように、実サーバ側でのネットワーク設定が必要となります。設定手順や設定項目については、一般的なDSR構成ロードバランサ導入時と同様です。今回は例としてCentOS6.3での設定を行います。これらの設定を実サーバすべてに適用します。
sysctl.confの設定追加
ループバックアドレスに設定した仮想IPアドレスでARPリクエストに応答しないよう、カーネルパラメータを設定します。
# vi /etc/sysctl.conf
以下の設定を追記してください。
net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
sysctl.confの設定内容を反映します。
# sysctl -p
ループバックアドレスの追加
新たにlo:0デバイスを作成し、仮想IPアドレス(今回の構成例では133.242.38.163)を設定します。
# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
以下の内容を記載してください。
DEVICE=lo:0 IPADDR=133.242.38.168 NETMASK=255.255.255.255
ファイル作成後、ネットワーク設定を反映します。
# ifup lo:0
4. コントロールパネルの操作方法
では実際に、構成例1のネットワーク構成でロードバランサを導入するためのコントロールパネル操作手順を説明します。
現在のネットワークの確認
現在のネットワーク構成を確認します。コントロールパネル上部のメニュー「ネットワーク」をクリックすると作成済みのスイッチ一覧が表示されるので、ロードバランサを追加したいスイッチ名をダブルクリックします。構成例1のロードバランサ追加前の状態(Webサーバが2台スイッチに接続されている状態)である事が確認できます。
また、「マップ」タブをクリックし、スイッチとサーバの接続マップを確認することもできます。
ロードバランサの追加
それではこのスイッチの配下にロードバランサを追加します。画面上部のメニューより「アプライアンス」をクリックするとロードバランサ一覧画面が表示されるので、この画面右上の「追加」ボタンをクリックして作成を開始します。
作成画面では、構成例1の通り以下の内容を入力・選択します。
- 接続先スイッチ: ロードバランサを接続したいスイッチ
- 冗長化: はい
- VRID: 1 (ネットワーク内に設置するロードバランサは1台のみのためデフォルトのまま)
- IPv4アドレス #1: 133.242.38.164
- IPv4アドレス #2: 133.242.38.165
- ネットマスク: 28
- ゲートウェイ: 133.242.38.161
各情報の入力後、右上の「作成」ボタンをクリックし、ロードバランサの作成を開始します(使用可能になるまで数分程度の時間がかかります)。作成後は、ロードバランサ一覧画面で該当のロードバランサをダブルクリックし、作成時に入力した内容に問題のない事を確認してください。
ロードバランサの仮想IPアドレス設定
ロードバランサに仮想IPアドレスを設定します。ロードバランサ一覧画面で該当のロードバランサをダブルクリックし、「VIP設定」のタブをクリックします。
右下の「追加」ボタンをクリックすると仮想IPアドレス追加画面が表示されるので、各項目を入力します。
- VIPアドレス: 仮想IPアドレス
- ポート番号: 80
- チェック間隔(秒): 10(後述する実サーバのサービス稼動状態の監視間隔となります)
入力後、「作成」ボタンをクリックすると仮想IPアドレスが設定されます。スイッチ詳細画面では、作成した仮想IPアドレスのタブが新たに表示されます。
仮想IPアドレスへの実サーバ登録
これまで設定した仮想IPアドレスにロードバランシング対象となる実サーバを登録します。前項で確認した仮想IPアドレスの画面右下の「追加」ボタンをクリックし、実サーバ追加画面を表示します。
- IPアドレス: 133.242.38.166 (Webサーバ#1のIPアドレス)
- ポート番号: 80
- 監視方法: http
- パス: /index.html
- レスポンスコード: 200
監視方法は他にping、tcpが選択できますが、httpを選択することで指定したパス・レスポンスコードによる死活監視が行えるため、Webサーバの冗長化をする場合により確実な監視となります。構成例1では他に133.242.38.167の実サーバがあるので、こちらも同様に登録します。全ての実サーバ登録後のリストは以下のようになります。
設定内容の反映
これまで行ってきた設定はロードバランサ側に即時反映されない仕様となっています。設定の追加や変更を行った後は、必ず「反映」ボタンをクリックしてください。「反映」ボタン押下後はすぐに設定が有効となります。
ロードバランサの動作状況の確認
ロードバランサの動作開始後は、コントロールパネルより動作状況の確認が可能です。
実サーバの動作状況
仮想IPアドレスとして設定したIPアドレス名のタブより、その配下で動作する実サーバの動作状況を確認できます。
- ステータス: 指定した監視方法により、実サーバでのレスポンスが正常であれば「UP」、異常があれば「DOWN」が表示されます
- コネクション数: ロードバランサーがハンドリングしているEstablish状態のtcpコネクション数の現在値が表示されます
アクティビティモニタ
ロードバランサのトラフィックグラフが表示されます。特定の時間を拡大するなど、操作は通常のサーバのアクティビティモニタと同様に行えます。