さくらのクラウド ネットワーク入門 9. エンハンスドロードバランサで複数ゾーンの負荷分散を実現

公開:最終更新日:

ロードバランサーとは、一般にサーバーリソースの負荷分散を実現するネットワーク機器です。このネットワーク入門の第7回で「ロードバランサ」アプライアンスを解説するときに紹介したように、さくらのクラウドでは3種類のロードバランサーを提供しています。

  • ロードバランサ … TCPで動作する。ルータ+スイッチもしくはスイッチで構成したネットワーク内に設置するため、設置したゾーン内にのみ有効
  • エンハンスドロードバランサ … HTTP(S)に特化しており、さくらのグローバルネットワーク上で動作するためゾーンやサービスをまたいで有効
  • GSLB(グローバルサーバロードバランサ) … DNSベースで動作し、リージョンやゾーンをまたいだ負荷分散目的で使用できる

今回は、このうち「エンハンスドロードバランサ」アプライアンスを解説します。ゾーンをまたいだ利用が可能なので、さくらのクラウドの複数のゾーンでWebサーバーを立ち上げて負荷分散を設定してみます。

エンハンスドロードバランサとは?

「エンハンスドロードバランサ」は、大規模なHTTP/HTTPSサービスに適したロードバランサーアプライアンスです。下記のマニュアルにもあるように、さくらインターネットのグローバルネットワークに設置するプロキシー型のロードバランサーとして動作し、大規模・高性能・高機能な負荷分散が求められる環境に適した機能です。

👉 エンハンスドロードバランサ | さくらのクラウド マニュアル

第7回で紹介した「ロードバランサ」アプライアンスと異なり、「エンハンスドロードバランサ」はさくらインターネット全体のグローバルオブジェクトとして存在します。このためゾーンやリージョンに依存せず、HTTP(S)リクエストを振り分けることができます。高い可用性が求められるシステムは複数ゾーン・複数リージョンで構成することが多くなるため、「ロードバランサ」ではなく「エンハンスドロードバランサ」の利用が推奨されます。

それでは、さっそく複数のゾーンでWebサーバーを立ち上げるところから設定を始めていきましょう。なお、この記事で紹介するのは「エンハンスドロードバランサ」が提供する機能の一部になります。機能や仕様の全体は先に掲載したマニュアルに詳しく掲載されています。

設定1. 2つのゾーンでWebサーバーを起動する

「エンハンスドロードバランサ」アプライアンスの特徴を試すため、複数のゾーンでWebサーバーを立ち上げましょう。1台を「東京第1ゾーン」、もう1台を「石狩第3ゾーン」に配置します。第7回で使用した環境を再利用してもかまいませんし、これまでネットワーク入門で解説した方法で「サーバ」を共有セグメントに配置してもいいでしょう。さくらのクラウドのゾーンについては下記のマニュアルを参照してください。

👉 リージョン・ゾーン | さくらのクラウド マニュアル

Webサーバーを起動するには、第7回と同じUbuntuの環境ならば「サーバ」上で以下のコマンドを実行すると、nginx(Webサーバー)を起動できます。

sudo apt update
sudo apt install -y nginx
sudo systemctl start nginx
sudo vi /var/www/html/index.nginx-debian.html

上記の最後でデフォルトのHTMLファイルを編集していますが、ここでブラウザに表示されるテキストに「A」と「B」を付けて、次のようにどちらかを区別できるようにしておきます。

それぞれの「サーバ」に割り当てられたIPアドレスを記録しておきましょう。ここでは以下のIPアドレスで起動されているとします。

ゾーンIPアドレス
東京第127.133.155.228
石狩第3133.125.238.37

設定2. エンハンスドロードバランサを起動する

「エンハンスドロードバランサ」アプライアンスを起動します。さくらのクラウドのコントロールパネルで、左のメニューから「グローバル」を開き「エンハンスドLB」を選択します。

右上の「+追加」をクリックして「エンハンスドLB追加」画面を開きます。東京と石狩という複数のリージョンで冗長構成をとる場合、「設置先リージョン」としてはエニーキャストモードを推奨します。

これによりロードバランサーがそれぞれのリージョンで動作し、仮想化されたIPが提供されます。アクセスしてきたWebクライアントからより近い実ロードバランサーに接続が振り分けられるようになり、レイテンシーが向上します。

次に性能上限を指定します。

TLS処理を「エンハンスドロードバランサ」に行わせる場合、予想される秒間アクセス数(正確にはコネクション数)の約10倍を指定します。TLSの終端処理をWebサーバーに代わって行うため、ネゴシエーションや暗号処理などの負荷を考慮する必要があるためです。

その他の値はすべてデフォルトのままで、右下の「作成」をクリックします。ここで紹介していない設定項目は、今後公開する記事で解説していきます。

設定3. 待ち受けポートを設定する

「エンハンスドロードバランサ」のリソースが追加できたら、次に「待ち受けポート」タブをクリックします。

ここではひとまず最もシンプルに「http」の「80」でポートを設定して「追加」します。

そのあと必ず画面右上の「反映」をクリックしてください。

設定4. 2カ所のWebサーバーを登録する

続いて「実サーバ」タブを開き、先ほど起動した東京と石狩のWebサーバーを登録します。

東京第1ゾーンのWebサーバーでは上記のように選択・入力して「追加」をクリックします。

同様に2台とも登録が完了したら、画面右上の「反映」をクリックします。

エンハンスドロードバランサにアクセスしてみよう

ひと通りの設定ができたので、いよいよロードバランサーにアクセスして負荷が分散されているかテストしてみましょう。

「エンハンスドロードバランサ」に割り当てられたIPアドレスは「情報」タブで確認できます。

上記で設定したエニーキャストモードのように「エンハンスドロードバランサ」自体が冗長化されるケースもあるため、接続先としては「現在のVIP」欄に表示されるIPアドレスにアクセスしてみましょう。

先ほど設定した「from A」もしくは「from B」どちらかが表示されればアクセスは成功です。複数のWebクライアントからアクセスしてみて、AとBに通信が分散されていることを確認してください。

関連リンク

本記事ではさくらのクラウドの下記のマニュアルを参照しています。

亀田治伸
制作者

クラウド事業本部

亀田治伸

兵庫県伊丹市出身、米国州立南イリノイ大学卒業。認証系独立ASP、 動画・音楽配信システム構築、決済代行事業者、外資クラウドエバンジェリスト数社を経て現職。得意領域は、認証、暗号、ネットワークを中心としたセキュリティ、 映像配信、開発手法に見る組織論、クラウドアーキテクチャ、プレゼンテーション。