ロードバランサ¶
[更新: 2024年7月18日]
アプライアンス「ロードバランサ」についての全般的な情報です。
概要¶
「ロードバランサ」機能は、仮想的なアプライアンス機器として動作するロードバランサを提供するサービスです。コントロールパネルからの操作で、クラウド上に構築済みの環境へ素早く容易にロードバランシング環境を導入することが可能となります。
処理性能ごとに「標準プラン」と「ハイスペックプラン」、さらに冗長化の有無で「シングル構成」と「冗長構成」が選択可能です。
参考
ロードバランサと、 エンハンスドロードバランサ 、 GSLB 、 Netwiser の違いについては、よくある質問と回答の 4種類のロードバランサアプライアンスの違いは何ですか? を参照ください。
仕様¶
「ロードバランサ」機能で提供するロードバランサの仕様は以下の通りです。
全般的な仕様¶
構成 | DSR(Direct Server Return)方式 |
---|---|
対応プロトコル | TCP |
ロードバランサの冗長化 | VRRPを用いた冗長化に対応 |
仮想IPアドレス(VIP)、ポート番号 | 最大20個まで |
設定可能な実サーバ数 | ロードバランサ1台あたり最大40台 |
振り分けアルゴリズム | least connection(変更不可) |
セッション維持機能 | なし |
サーバダウン判定 | 2018年7月以降に作成されたロードバランサ ・サーバダウン判定のチェックのリトライ回数: 1-5回の範囲で変更可能 ・ ヘルスチェックのタイムアウト: 1-30秒の範囲で変更可能 ※ ヘルスチェックに失敗した際、5秒間隔で指定した回数リトライし、全て失敗するとダウンとなります ・サーバアップ判定のチェック回数: 1回 2018年6月以前に作成されたロードバランサ ・サーバダウン判定のチェック回数: 1回(タイムアウト: 3秒) ※ ヘルスチェックに失敗すると即座にダウンとなります ・サーバアップ判定のチェック回数: 1回 |
性能目安(最大値) | 標準プラン 送信トラフィック: 100Mbps 受信トラフィック: 100Mbps コネクション数(セッション数): 4,000コネクション 毎秒接続数: 100cps程度 ハイスペックプラン 送信トラフィック: 1Gbps 受信トラフィック: 500Mbps コネクション数(セッション数): 10,000コネクション 毎秒接続数: 3,000cps程度 |
※いずれも最大値の目安となります。必ずしもこの性能値を保証するものではありません。
仮想IPアドレス登録¶
仮想IPアドレス追加画面では以下の項目が設定可能です。
VIPアドレス | ロードバランサが受け持つ仮想IPアドレスを設定します。 |
---|---|
ポート番号 | 仮想IPアドレスで着信を受けるポート番号を設定します。 設定値は1~65535の整数値となります。 |
チェック間隔(秒) | 実サーバのヘルスチェックを実行する間隔を設定します。 設定値は10以上の整数値となります。 |
ソーリーサーバ | バランシング先が全てダウン状態となった場合に誘導する先を設定します。 |
※設定の追加、変更後は「反映」ボタンをクリックし、設定内容をロードバランサに反映する操作が必要です
※ソーリーサーバの設定は必須項目ではありません
※ソーリーサーバはお客様にて作成していただく必要があります(サーバ料金別途)
実サーバ登録¶
仮想IPアドレスごとのロードバランシング先となる実サーバの追加画面では以下の項目が設定可能です。
IPアドレス | ロードバランシング先のサーバのIPアドレスを設定します。 |
---|---|
監視方法 | IPアドレス、ポート番号で指定したロードバランシング先のサーバの監視方法を 「http」、「https」、「ping」、「tcp」より設定します。 「http」、「https」を指定すると追加設定項目が表示され、監視対象のパスと 正常時に返答されるレスポンスコードの設定ができます |
サーバダウン判定のリトライ回数 | ヘルスチェックに失敗したあとダウン判定するまでのリトライ回数。1-5回の範囲で指定できます |
ヘルスチェックのタイムアウト(秒) | ヘルスチェックの接続タイムアウト。1-30秒の範囲で設定してください |
※「サーバダウン判定のリトライ回数」および「ヘルスチェックのタイムアウト(秒)」は 2018年7月以降に作成された
ロードバランサで、監視方法に「http」「https」「tcp」を指定した際に表示されます。
※設定の追加、変更後は「反映」ボタンをクリックし、設定内容をロードバランサに反映する操作が必要です
構成例¶
「ルータ+スイッチ」と、「スイッチ」それぞれで構成されたネットワークへロードバランサを導入する例です。 さくらのクラウドで提供するロードバランサはDSR方式で動作するため、負荷分散させたいサーバ群が接続されるスイッチに並列して追加接続する構成となります。
ルータ+スイッチを組み合わせたWebサーバの負荷分散¶
ルータ+スイッチ機能で割り当てられたIPアドレスブロックが設定されている複数のWebサーバを、冗長構成のロードバランサで負荷分散する場合の例です。
想定するネットワークの情報は次の通りです。
IPアドレス帯域 | 203.0.113.0/28 |
---|---|
ゲートウェイ | 203.0.113.1 |
冗長構成ロードバランサ1(※1) | 203.0.113.4 |
冗長構成ロードバランサ2(※2) | 203.0.113.5 |
Webサーバ1 | 203.0.113.6 |
Webサーバ2 | 203.0.113.7 |
ロードバランサ仮想IPアドレス | 203.0.113.8 |
※1: コントロールパネルのロードバランサ情報画面では「IPv4アドレス #1」と表記
※2: コントロールパネルのロードバランサ情報画面では「IPv4アドレス #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 |
ソーリーサーバを設定した場合の動き¶
仮想IPアドレス追加画面では、「ソーリーサーバ」欄にロードバランサ配下に設置された任意のサーバのIPアドレスを指定することで、実サーバが全てダウンした場合に応答するサーバを設定することができます。
注意
実サーバに登録されたサーバをソーリーサーバに設定することはできません。
ロードバランサが設定された全ての実サーバでダウンを検知するとソーリーサーバが応答します。高負荷やサーバ障害などで実サーバが正常に機能しなくなった場合にメンテナンス画面を表示する動作を行いたい場合などに便利です。
導入設定¶
この項目では、先に上げた「ルータ+スイッチを組み合わせたWebサーバの負荷分散」の構成を例として設定を進めます。
1. ルータ+スイッチまたはスイッチの作成¶
さくらのクラウド環境内へロードバランサを導入する場合、必ず「ルータ+スイッチ」または「スイッチ」で構成されたネットワークが必要となります。これらの機能についての詳しい情報はオンラインマニュアルを参照してください。
2. 実サーバのネットワーク設定¶
DSR構成でのロードバランシング動作が行われるように、実サーバ側でのネットワーク設定が必要となります。設定手順や設定項目については、一般的なDSR構成ロードバランサ導入時と同様です。これらの設定を実サーバすべてに適用します。
CentOS7系の手順¶
sysctl.confの設定追加¶
ループバックアドレスに設定した仮想IPアドレスでARPリクエストに応答しないようにカーネルパラメータを設定します。/etc/sysctl.confファイルに以下の2行の設定を追記します。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
追記後、sysctl.confの設定内容を反映します。
# sysctl -p
ループバックアドレスの追加¶
新たにlo:0デバイスを作成し、仮想IPアドレス(今回の構成例では203.0.113.8)を設定します。/etc/sysconfig/network-scripts/ifcfg-lo:0ファイルを新規に作成し、以下の内容を記載します。
DEVICE=lo:0
IPADDR=203.0.113.8
NETMASK=255.255.255.255
作成後、lo:0デバイスを有効化します。
# ifup lo:0
ipコマンドで設定が有効化されていることを確認します。
# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 203.0.113.8/32 brd 203.0.113.8 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
CentOS8系 (AlmaLinux 8系/Stream 8系など含む)の手順¶
CentOS8系ではファイルの直接編集によるネットワーク設定は推奨されておらず、nmcliコマンドを使用して設定を行います
sysctl.confの設定追加¶
ループバックアドレスに設定した仮想IPアドレスでARPリクエストに応答しないようにカーネルパラメータを設定します。/etc/sysctl.confファイルに以下の2行の設定を追記します。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
追記後、sysctl.confの設定内容を反映します。
# sysctl -p
ダミーインターフェースの設定¶
ダミーのインターフェイスを作成し、仮想IPアドレス(今回の構成例では203.0.113.8)を設定します。
# nmcli connection add type dummy ifname dummy0 ipv4.method manual ipv4.addresses 203.0.113.8/32 ipv6.method ignore
設定がされていることを確認します。
# ip addr show
Ubuntu系の手順¶
sysctl.confの設定追加¶
ループバックアドレスに設定した仮想IPアドレスでARPリクエストに応答しないようにカーネルパラメータを設定します。/etc/sysctl.confファイルに以下の2行の設定を追記します。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
追記後、sysctl.confの設定内容を反映します。
# sysctl -p
また、/etc/netplan/01-netcfg.yaml に以下の内容を追記します。IPアドレスはロードバランサの仮想IPアドレスを指定します。
lo:
match:
name: lo
addresses:
- 203.0.113.8/32
追記後、01-netcfg.yamlの設定内容を反映します。
# netplan apply
Windows Server2016/2019の手順¶
注意
管理者権限を持つアカウントでの操作が必要です。
最初にループバックアダプタを追加します。「hdwwiz」を検索するなどで「ハードウェアの追加ウィザード」を起動します。
ウィザードが起動したことを確認し、「次へ」をクリックします。
インストール方法の選択画面が表示されるので「一覧から選択したハードウェアをインストールする」を選択し「次へ」をクリックします。
インストールするハードウェアの選択画面が表示されるので「ネットワーク アダプター」を選択し「次へ」をクリックします。
ハードウェアのモデル選択画面が表示されるので、左の製造元リストから「Microsoft」を選択後、右のモデルリストから「Microsoft KM-TEST Loopback Adapter」を選択し「次へ」をクリックします。
インストールするハードウェアを確認し「次へ」をクリックします。
インストールするされたことを確認し「完了」をクリックしてウィザードを終了します。
コントロールパネルから「ネットワークとインターネット」→「ネットワークと共有センター」を選択します。この画面左側の「アダプターの設定の変更」をクリックします。
ウィザードで追加したMicrosoft KM-TEST Loopback Adapterのハードウェアを右クリックし「プロパティ」を選択します。
リストから「インターネット プロトコル バージョン 4(TCP/IPv4)」を選択し「プロパティ」をクリックします。
「次のIPアドレスを使う」のラジオボタンを選択し、IPアドレス欄に仮想IPアドレス、サブネットマスクに「255.255.255.255」を入力し「OK」ボタンをクリックします。
合わせてコマンドプロンプトにてnetshの設定が必要です。例えばインターネット向けインターフェース名が「イーサネット」、ループバックインターフェース名が「イーサネット 2」の場合は以下のように実行します。
netsh interface ipv4 set interface イーサネット weakhostreceive=enabled
netsh interface ipv4 set interface "イーサネット 2" weakhostreceive=enabled
netsh interface ipv4 set interface "イーサネット 2" weakhostsend=enabled
3. コントロールパネルからの設定¶
ロードバランシング先となる各サーバの設定完了後、コントロールパネルからロードバランサの追加設定を行います。
現在のネットワークの確認¶
現在のネットワーク構成を確認します。左メニューの「マップ」ボタンをクリックし、スイッチとサーバの接続マップを表示します。構成例1のロードバランサ追加前の状態(Webサーバが2台スイッチに接続されている状態)である事が確認できます。
ロードバランサの追加¶
スイッチにロードバランサを追加します。画面上部のメニューより「アプライアンス」をクリックするとロードバランサ一覧画面が表示されるので、この画面左上の「追加」ボタンをクリックして作成を開始します。
構成例1の通り以下の内容を入力・選択します。想定されるWebトラフィックより、今回は「標準プラン」のロードバランサを使用することとします。
接続先スイッチ | ロードバランサを接続したいスイッチ |
---|---|
冗長化 | はい |
プラン | 標準プラン |
VRID | 1 (ネットワーク内に設置するロードバランサは1台のみのためデフォルトのまま) |
IPv4アドレス #1 | 203.0.113.4 |
IPv4アドレス #2 | 203.0.113.5 |
ネットマスク | 28 |
ゲートウェイ | 203.0.113.1 |
こちらの情報を元に、コントロールパネル内の各項目に入力します。
警告
VRIDは同一ネットワーク上で一意である必要があります。VRIDは作成後変更できないため、同一ネットワーク上にVRRPが有効なアプライアンス(VPCルータ・ロードバランサ)や、VRRPを動かしている仮想サーバがある場合は、VRIDが重複しないようご注意ください。
各情報の入力後「作成」ボタンをクリックし、ロードバランサの作成を開始します(※)。作成後は、ロードバランサ一覧画面で該当のロードバランサをダブルクリックし、作成時に入力した内容に問題のない事を確認してください。
※作成後、ロードバランサが使用可能になるまで数分程度の時間がかかります。ロードバランサ一覧画面のステータス欄で「利用可能」の表示になったことを確認後にご利用ください。
・コピー中
・利用可能
ロードバランサの仮想IPアドレス設定¶
ロードバランサに仮想IPアドレスを設定します。ロードバランサ一覧画面で該当のロードバランサをダブルクリックし、「VIP設定」のタブをクリックします。
右下の「追加」ボタンをクリックすると仮想IPアドレス追加画面が表示されるので、各項目を入力します。
今回はWebサーバのロードバランシングとなるため、ポート番号には「80」を指定します。また、チェック間隔はデフォルト値の10秒としました(後述する実サーバのサービス稼動状態の監視間隔となります)。
VIPアドレス | 203.0.113.8 |
---|---|
ポート番号 | 80 |
チェック間隔(秒) | 10 |
入力後、「作成」ボタンをクリックすると仮想IPアドレスが設定されます。設定を有効にするために「反映」ボタンをクリックします。
「実サーバ」タブ画面のポップアップメニューに設定した仮想IPアドレスが新たに表示されます。
仮想IPアドレスへの実サーバ登録¶
これまで設定した仮想IPアドレスにロードバランシング対象となる実サーバを登録します。今回の構成例中の「Webサーバ#1(203.0.113.6)」の場合は以下の設定値となります。
IPアドレス | 203.0.113.6 |
---|---|
ポート番号 | 80 |
監視方法 | http |
パス | /index.html |
レスポンスコード | 200 |
監視方法は他にping、tcpが選択できますが、今回はWebサーバのロードバランシングとなるためhttpによる監視を選択します。これにより、指定したパス・レスポンスコードによるヘルスチェックが行えるため、Webサーバの冗長化をする場合により確実な監視となります。
前項で確認した仮想IPアドレスタブ画面で「追加」ボタンをクリックして実サーバ追加画面を表示し、項目を入力します。
同様に、「Webサーバ#2」についても実サーバとして登録します。登録が完了したら「反映」ボタンをクリックします。
全ての実サーバ登録後のリストは以下のようになります。
設定内容の反映¶
これまで行ってきた設定はロードバランサ側に即時反映されない仕様となっています。設定の追加や変更を行った後は、必ず「反映」ボタンをクリックしてください。「反映」ボタン押下後はすぐに設定が有効となります。
ロードバランサの動作状況の確認¶
「実サーバ」タブより、設定した各仮想IPアドレス配下で動作する実サーバの動作状況を確認できます。
ステータス | 指定した監視方法により、実サーバでのレスポンスが正常であれば「UP」、異常があれば「DOWN」が表示されます。 |
---|---|
コネクション数 | ロードバランサーがハンドリングしているEstablish状態のtcpコネクション数の現在値が表示されます。通常、ロードバランシング対象サーバに均等に割り振られます。 |
導入後の管理¶
設定の変更¶
VIP設定や、各VIPへの実サーバ設定画面では、リスト右側のアイコンを使用して設定内容の編集や設定の削除が行えます。
設定追加時と同様の画面が表示され、設定値を変更することができます。 | |
---|---|
設定を削除します。 |
設定変更後は、必ず画面の「反映」ボタンをクリックし、ロードバランサ側に設定内容を反映させてください。
警告
実サーバのステータスが DOWN の時にヘルスチェックを変更すると、ヘルスチェックが UP に戻らないなど正常に動作しない場合があります。実サーバの有効/無効の切り替えを行うことで動作が改善します。
ロードバランサの削除¶
削除前にロードバランサをシャットダウンする必要があります。「電源操作」メニューからのシャットダウン操作後、電源が「DOWN」状態になったことを確認し、削除ボタンをクリックします。