エンハンスドロードバランサ

[更新: 2019年10月10日]

アプライアンス「エンハンスドロードバランサ」の仕様詳細や利用方法についての説明ページです。

概要

「エンハンスドロードバランサ」は、大規模構成向けのHTTP/HTTPS専用ロードバランサアプライアンスです。お客様が構築したスイッチに接続しDSR型のロードバランサとして機能する ロードバランサ アプライアンスや、DNSが応答するIPアドレスにより実サーバへのアクセス分散を行う GSLB と異なり、さくらのクラウドのグローバルネットワークに設置するプロキシ型のロードバランサとして動作します。大規模・高性能・高機能なロードバランサが求められる環境に適した機能です。

参考

エンハンスドロードバランサと、GSLBロードバランサ の違いについては、よくある質問と回答の 4種類のロードバランサアプライアンスの違いは何ですか? を参照ください。

主な機能

  • HTTPおよびHTTPSに特化したプロキシ型のロードバランサです。
  • SSL証明書を設定することでHTTPSの負荷を実サーバからロードバランサ側にオフロードすることが可能です。SNIに対応し、1つのエンハンスドロードバランサに4つのSSL証明書を設定できます。
  • Let’s Encryptが発行する無料SSLを使用する場合、証明書のインストールや更新作業を自動で行うことができます。
  • ロードバランシング先となる実サーバはさくらのクラウドの他、 さくらのVPS専用サーバ など、さくらインターネットがお客様向けに提供するグローバルIPアドレスを指定できます(さくらのレンタルサーバなど共用型サービスは除きます)。
  • 設定した条件に沿って実サーバのヘルスチェックを実施し、一定期間応答に失敗した実サーバは振り分け先から除外し可用性を高めます。
  • 仮想IPアドレス(VIP)を監視し、DoS攻撃などにより応答しなくなった場合に自動的にVIPアドレスを変更するVIPフェイルオーバ機能を有効にできます。
  • ソーリーサーバ設定機能により、障害やメンテナンス時に一時的にクライアントに情報提供するサーバを設定可能です(実サーバと同様、さくらのVPSや専用サーバなどの弊社提供サービスのサーバを指定可能です。レンタルサーバなど共用型サービスは指定できません)。
  • 実サーバの状態や負荷状況などの稼働状況が、コントロールパネル上のグラフなどで分かりやすく表示されます。
  • 負荷状況に応じて随時プラン変更することが可能となり、負荷の高い時間帯や臨時のイベントの際だけよりハイスペックなプランに変更するなど、柔軟で低コストな運用が可能です。
  • カスタムレスポンスヘッダ設定機能により、エンハンスドロードバランサがクライアント側に送出するHTTPヘッダを自由に設定できます。

仕様

エンハンスドロードバランサの仕様は以下の通りです。

ネットワーク構成方式 プロキシ方式
ロードバランシングが可能なプロトコル HTTP, HTTPS, WebSocket(ws,wss)
※IPv6接続には非対応となります
HTTPS接続時に対応する暗号化プロトコル TLS 1.2, TLS 1.3
HTTP/2接続 対応(HTTPS使用時にデフォルトで有効)
ロードバランサの冗長化 標準で複数台構成による冗長化対応済み
仮想IPアドレス(VIP)、ポート番号 1台ごとにグローバルIPアドレス1個付属(追加不可)/待受ポート2個設定可
設定可能な最大実サーバ数 40台
振り分けアルゴリズム least connection
セッション維持機能 対応(クッキー方式)
※詳しくは セッション維持機能 の項目を参照ください
ヘルスチェック判定 ・サーバダウン判定のチェック回数: 3回連続タイムアウト(httpの場合は"200"以外のステータスコード)でダウン判定
 (タイムアウト判定は「チェック間隔」で指定した秒数と同値)
・サーバアップ判定のチェック回数: 2回連続で成功した場合にアップ状態に遷移
※タイムアウトはTCP監視においてはTCPコネクション確立までの時間、http監視においてはhttpレスポンス受信までの時間となります
設定可能なSSL証明書の形式 PEM形式, RSA 1024/2048bit, ECDSA secp256r1, 公開鍵, 中間証明書, 秘密鍵
ワイルドカード証明書の設定 可能(ワイルドカードに合致する全てのホスト名でHTTPS接続が可能となります)
※ホスト名ごとに振り分け先実サーバを設定する機能はありません
実サーバへのプロキシ時の付加ヘッダ 以下のHTTPヘッダを付加します。
X-Real-IP : アクセス元IPアドレス
X-Forwarded-For : アクセス元IPアドレス
X-Forwarded-Proto : 終端プロトコル("http"もしくは"https")
SSLセッションチケット 対応

料金

料金については サービスサイト をご確認ください。

重要

エンハンスドロードバランサは許容する秒間アクセス数(CPS)ごとにプランを用意しており、プラン名がそのままhttpでの秒間アクセス数の上限を表します。httpsの場合はプラン名に表示されるCPS値の10分の1の性能となります(例: 1,000CPSプランではHTTPの場合1,000CPS上限、HTTPSの場合100CPS上限)。

※各プランの上限値を越える秒間あたりの新規接続が発生した場合、処理中の接続が完了するまでは接続待機状態となり、クライアントからの再送が行われるまで接続に時間がかかる状態となります。クライアント側へは即時にエラーとして接続を拒否することはありません。 アクティビティグラフ よりセッション数を確認できますので、契約中のプランを超過するセッションが発生する場合は無停止で操作可能な プラン変更 を検討ください。

新規作成

エンハンスドロードバランサの新規作成や作成済みエンハンスドロードバランサの管理は、コントロールパネル左側のメニュー「グローバル」以下にある「エンハンスドLB」を選択して行います。作成済みのエンハンスドロードバランサはリストに表示され、それをダブルクリックすることで該当のエンハンスドロードバランサの管理を行うことができます。

注釈

エンハンスドロードバランサはゾーンに依存しないグローバルリソースとなります。そのため、コントロールパネル左上の選択中のゾーンに関わらず、ログイン中のアカウントがさくらのクラウド上に作成したすべてのエンハンスドロードバランサが表示されます。

新規に作成する場合は右上の「作成」ボタンをクリックします。

新規作成画面が表示されます。

各フォームには以下の情報を入力します。

設置先リージョン(*) エンハンスドロードバランサの設置先リージョンを選択します。
VIPアドレスが選択したリージョン内のネットワークから払い出されたものとなり、外部からの接続先や実サーバへのプロキシ元も該当のリージョンとなります。
お客様環境のBCP・DR計画、実サーバの設置地点などにより選択してください。
※作成後は設置先リージョンを変更することはできません。
性能上限(*) 作成するエンハンスドロードバランサの性能上限となるCPS(Connection per second;1秒あたりの接続可能数)を表示される5種類から選択します。
それぞれの性能上限値により価格が異なり、ラジオボタンを選択するたびに画面上部の料金表の表示が変化します。
※表記の性能上限値はhttp使用時です。https使用時はhttp使用時の10分の1程度の性能となります。
VIPフェイルオーバ VIPフェイルオーバ機能を有効にする場合にチェックを入れます。
※詳しくは VIPフェイルオーバ機能 の項目を参照ください。
セッション維持 セッション維持機能を有効にする場合にチェックを入れます。
※詳しくは セッション維持機能 の項目を参照ください。
実サーバ通信タイムアウト(秒) エンハンスドロードバランサが実サーバからの応答を待つ時間を10秒~600秒の範囲で指定します(デフォルト値は10秒)。
指定した時間まで無通信状態が継続した場合はクライアント側にHTTPステータスコード504(Gateway Timeout)を返答します。
※本設定値は実サーバのヘルスチェック判定には影響しません。判定条件については 仕様表 の「ヘルスチェック判定」の項目を参照ください
監視方法(*) 実サーバの死活監視の方法を"http"または"tcp"から選択します。
Hostヘッダ
※監視方式に"http"を選択した場合のみ表示
フォームに入力されている場合、実サーバの監視時のhttpリクエストヘッダ"Host: "に、入力した文字列を付与してリクエストします。
パス(*)
※監視方式に"http"を選択した場合のみ表示
実サーバの監視時にGETリクエストするパスを入力します。
チェック間隔(秒) (*) 実サーバの死活監視を行う間隔を10秒~60秒の範囲で指定します。
ソーリーサーバ バランシング先が全てダウン状態となった場合に表示するホストを設定します。
ラジオボタンで"入力"(任意のホストのIPアドレス・ポート番号を入力)または"サーバから選択"(ログイン中のアカウントで作成済みのサーバから選択)のいずれかの方式で指定することができます。
名前 / 説明 / タグ / アイコン サーバやディスク、他のアプライアンスと同様に、わかりやすい名前設定やタグ、 アイコン 機能による分類が可能です。

※「*」は必須項目です
※ソーリーサーバはすべての実サーバがダウン判定される、または無効状態となった時に応答するサーバです。ダウン時やメンテナンス時にクライアントに告知する場合に便利です。
※監視方法がhttpの場合、応答するhttpステータスコードが"200"の場合のみ正常と判定します。それ以外のステータスコードの場合は異常判定されます。
※実サーバへの監視は「情報」タブに表示されるVIPアドレスから行われます。実サーバ側では必要に応じてアクセス制限を解除するなどエンハンスドロードバランサ側に対して正常な応答が行えるように設定してください。

作成が完了するとエンハンスドロードバランサ管理画面のリストに追加され、ダブルクリックで詳細な情報を確認することができます。

設定

新規作成時に指定した情報以外の実サーバの登録や待ち受けポートの設定、https使用時の証明書の登録などはこの画面で進めていきます。

注釈

新規作成時に指定した「名前」・「説明」・「タグ」・「アイコン」などの基本項目は「情報」タブ内右下の「編集」ボタン、監視方法やチェック間隔、ソーリーサーバ設定は上部に表示される「監視方法の変更」ボタン、セッション維持機能の有効/無効の切り替えと実サーバ通信タイムアウト時間設定を変更する場合は「設定変更」ボタンより操作することができます。

待ち受けプロトコル・ポート設定

エンハンスドロードバランサが待ち受けるプロトコルとポート番号を設定します。「待受ポート」タブをクリックすると設定済みのポートが表示されます。新たに追加する場合は「追加」ボタンをクリックします。

設定ダイアログボックスが表示されるのでフォームを入力します。いずれも必須項目となります。

プロキシ方式 プロキシするプロトコルをhttpまたはhttpsより選択します。
HTTPSへのリダイレクト
※プロキシ方式に"http"を選択時のみ表示
「有効」を選択すると、クライアントがHTTPに接続した際にHTTPSへリダイレクトします。
HTTP/2のサポート
※プロキシ方式に"https"を選択時のみ表示
「有効」を選択すると、HTTP/2での接続に対応します。
待受ポート番号 待ち受けるポート番号を指定します。

重要

httpsを選択した場合はSSL証明書の設定が必須となります。また、エンハンスドロードバランサと実サーバ間はプロキシ方式の選択によらず、常にhttpでの通信となります。実サーバがエンハンスドロードバランサ以外からの接続を許可したくない場合は、エンハンスドロードバランサ情報に表示されるプロキシ元ネットワークに表示されるネットワークのみに制限するなどの対策を行うことを推奨します。

設定後、右上の「反映」ボタンをクリックしてアプライアンス側に変更点を保存することで動作に反映されます。

注釈

登録リストは右側の鉛筆アイコン pencil で編集、削除アイコン cross で削除が行えます。編集や削除作業を行った後も反映ボタンをクリックし変更値をロードバランサ側に保存する必要があります。

カスタムレスポンスヘッダ

ロードバランサがクライアントに応答する際に送出するHTTPヘッダを自由に追加できます。ブラウザ内のキャッシュを制御する Cache-Control 、HTTPS接続を強制するHSTSの Strict-Transport-Security などを、追加した待ち受けポートごとに設定することができます。

注意

ロードバランサがデフォルトで送出するHTTPヘッダと同一のHTTPヘッダを設定した場合、設定した方のHTTPヘッダで上書きされます。

対象のエンハンスドロードバランサを選択し、「レスポンスヘッダ」タブをクリックすると、追加済みの待ち受けポートごとに設定中のカスタムレスポンスヘッダのリストが表示されます。新たに追加したい場合は「追加」ボタンをクリックします。

表示されるダイアログボックスで、レスポンスヘッダとその値を入力します。

入力値がリストに追加された事を確認後、画面上部の「反映」ボタンをクリックし、エンハンスドロードバランサに設定変更を反映します。反映ボタン押下後より、クライアント側にカスタムレスポンスヘッダが応答されるようになります。

注釈

登録済みのカスタムレスポンスヘッダは、リスト右側に表示される鉛筆アイコンで内容の編集、削除アイコンで削除することができます(変更後は新規追加時と同様に「反映」ボタンのクリックが必要です)。

実サーバ登録

ロードバランシング先である実サーバを登録します。「実サーバ」タブをクリックすると登録済みの実サーバのリストが表示されます。追加するには「追加」ボタンをクリックします。

設定ダイアログボックスが表示されるのでフォームを入力します。

IPアドレス 実サーバのIPアドレスを指定します。
ポート番号 実サーバに接続する際のポート番号を指定します。
有効/無効 登録した実サーバを有効にするかどうかを指定します。

※「IPアドレス」と「ポート番号」は必須項目です。「有効/無効」については、反映操作時に設定値を有効化したい場合は「有効」を、リストへの登録のみ行い現在の段階では有効化しておきたくない場合は「無効」を選択します。

設定後、右上の「反映」ボタンをクリックしてアプライアンス側に変更点を保存することで動作に反映されます。

注釈

登録リストは右側の鉛筆アイコン pencil で編集、削除アイコン cross で削除が行えます。編集や削除作業を行った後も反映ボタンをクリックし変更値をロードバランサ側に保存する必要があります。

SSL証明書の設定

待ち受けポートのプロキシ方式にhttpsを設定した場合、画面上部に「SSL証明書の設定」ボタンが追加で表示されます。このメニューより各項目を選択することでSSL関連の設定操作を行います。

注釈

Let’s Encrypt関連機能については Let’s Encrypt証明書自動インストール・更新機能 の項目を参照ください。

「追加/変更」

SSL証明書の初期登録や登録済み証明書の更新、登録された証明書の削除を行うことができます。

設定 フォームに入力したSSL証明書を登録する場合は「有効」、登録済みのSSL証明書を削除し無効化する場合は「無効」を選択します。
※「無効」を選択した場合は以下の入力フォームが非表示となります。
SSL証明書 証明書を入力します。
中間証明書 SSL証明書に中間証明書が付属する場合はこのフォームに入力します。
秘密鍵 SSL証明書の秘密鍵を入力します。

フォームに入力後、「更新」ボタンをクリックすることで「設定」で選択した操作が実行されます。また、SSL証明書が登録されると「情報」タブ画面で「SSL証明書有効期限」の項目が追加表示され、登録された証明書の有効期限を確認することができます。

注意

「設定」の項目で「無効」を選択した場合、保存されていたSSL証明書情報は削除され復旧することはできません。また、プライマリ証明書が設定された状態で Let’s Encrypt証明書自動インストール・更新機能 を有効にした場合は上書きされます。操作の際は十分ご注意ください。

エンハンスドロードバランサはSNIに対応しており、プライマリ証明書に加えて3枚の証明書を追加設定することができます。追加画面右上の「SSL証明書を追加する」ボタンをクリックすることにより、オプショナル #1~#3までのタブが追加され、それぞれにSSL証明書を設定することが可能です。

「証明書の有効期限監視追加(シンプル監視)」

シンプル監視 サービスのSSL証明書有効期限アラート設定画面に移動し、設定したSSL証明書に対する有効期限アラートを簡単に設定することができます。詳しくは SSL証明書有効期限アラート 機能のページを参照ください。

プラン変更

新規作成時に指定した性能上限値を作成後に変更することができます。変更したいエンハンスドロードバランサを選択し、右上の「プラン変更」をクリックします。

表示されたダイアログボックス内で、変更したい性能上限値を選択します。

セッション維持機能

クライアントのブラウザに対して接続ごとに一意な文字列のCookieをセットすることで、クライアントと通信する実サーバを固定化する機能です。継続的にサーバ側との双方向通信が必要となるWebアプリケーションなどで、実サーバ群が個別のクライアント追跡のための情報を共有する必要が無くなり、開発やシステムの簡略化に役立ちます。

クッキー仕様

クライアントのブラウザに対し、クッキー名 sac-elb-session でランダムな文字列からなるセッションIDを付与します。個別のブラウザが送出するクッキーにより、応答する実サーバが固定化されます。 ブラウザではウインドウを閉じることでクッキーが破棄されます。

設定

新規作成画面内の「セッション維持」の項目で「有効にする」のチェックボックスをチェックします。

また、作成後のエンハンスドロードバランサを選択し、上部に表示される「設定変更」ボタンをクリックして表示されるダイアログボックスで設定変更が可能です。

注意

応答すべき実サーバがダウン判定されている場合、別の実サーバとセッション維持するクッキーが新たに発行されます。

VIPフェイルオーバ機能

「VIPフェイルオーバ機能」は、クライアントがエンハンスドロードバランサに接続する際に使用する仮想IP(VIP)アドレスの応答を常時監視し、応答が無くなった場合に自動的に別のVIPアドレスに変更する機能です。これにより、DoS攻撃などによりサイトが応答しなくなる状態が継続することを防ぎ、より可用性を高めることが可能となります。

重要

VIPフェイルオーバ機能を有効にしてエンハンスドロードバランサを作成すると、クライアント側の接続点としてVIPアドレスに加えDNS名が併せて払い出され、その名前を正引きした際に返答するIPアドレスを変化させることによりVIPフェイルオーバが行われます。そのため、クライアント側が変更されたVIPアドレスに追従し正しくフェイルオーバを機能させるには、サービス用ホスト名を払い出されたDNS名に対しCNAME設定する必要があります。
また、VIPアドレスの無応答検知からフェイルオーバ動作までの目安時間は5分程度となります。

VIPフェイルオーバ機能を有効にする場合、新規作成画面の「VIPフェイルオーバ」の項目でチェックした状態で作成することで有効となります。

注意

エンハンスドロードバランサの作成完了後にVIPフェイルオーバ機能の有効/無効を切り替えることはできません。

作成完了後は「情報」タブから払い出されたDNS名を確認することができます。

このDNS名に対し、エンハンスドロードバランサを使用してロードバランシングさせたいサービス用ドメイン名をCNAME設定します。

参考

サービス用ドメイン名: secure.example.jp
払い出されたDNS名: site-abcdefg1234567.proxylb1.sakura.ne.jp
の場合の example.jp ゾーン レコード設定例:
secure CNAME site-abcdefg1234567.proxylb1.sakura.ne.jp.

VIPフェイルオーバ機能によりVIPアドレスが切り替わると、緊急連絡用メールアドレス に設定されたメールアドレス(未設定の場合は会員IDの登録メールアドレス)宛に、変更後のVIPアドレスや切り替わりが行われた時刻が以下のような文面でメール通知されます。

From: さくらのクラウド <noreply@sakura.ad.jp>
Subject: [エンハンスドロードバランサ] VIPフェイルオーバ発生のお知らせ

※ このメッセージは自動送信されています。

さくらのクラウドエンハンスドロードバランササービスです。
下記のご契約においてVIPの到達性がなくなったため
フェイルオーバ処理を実施しました。

リソースID:              1131000XXXXX
FQDN:                   site-XXXXXXX-proxylb1.sakura.ne.jp
旧VIP:                  163.43.XXX.XXX
新VIP:                  163.43.YYY.YYY
フェイルオーバ発生時刻:   2019-03-28 12:34:56 (JST)

上記の通りVIPが変更になっておりますので、念のためお客様にて
疎通のご確認をお願いします。

Let’s Encrypt証明書自動インストール・更新機能

HTTPS接続時に使用するSSL証明書として、認証局 Let’s Encrypt が発行する無料のSSL証明書を使用することができます。このオプションを使用する場合、証明書のインストールや秘密鍵の生成、定期的な証明書更新作業などが自動で行われます。

注意

本機能をご利用いただく際は、あらかじめ以下の条件を満たしている必要があります。
1. 待受ポートに「プロキシ方式: HTTP, 待受ポート番号: 80番」(※)および「プロキシ方式: HTTPS (待受ポート番号は任意)」が設定されていること
2. コモンネームとなるホスト名のAレコードがエンハンスドロードバランサのVIPになっていること( VIPフェイルオーバ機能 を有効にしている場合はCNAMEがエンハンスドロードバランサのFQDNに向いていること)

※HTTP80番ポートは証明書管理を自動化するACMEプロトコル利用のため開放が必要となります(httpsリダイレクト機能は有効/無効どちらでも問題ありません)。

技術仕様

本機能の技術仕様は以下の通りです。基本的に認証局「Let’s Encrypt」が発行する証明書の仕様に準じた内容となります。

鍵形式/鍵長 RSA 2048bit
ワイルドカード 非対応
SAN 非対応
認証レベル DV(ドメイン認証)
証明書の自動更新間隔(※) 60日(更新間隔は固定。Let’s Encrypt発行証明書自体の有効期限は90日)
証明書の手動更新(※) 対応

ヒント

自動更新/手動更新時ともに証明書が更新された場合はメールにて通知されます

設定手順

設定対象のエンハンスドロードバランサを選択し、上部に表示されるメニュー「SSL証明書の設定」をクリックし、「Let’s Encryptの設定」を選択します。

表示されるダイアログボックスの「SSL証明書の自動生成」ラジオボタンで「有効」を選択すると、下部に「SSL証明書のCommon Name」入力欄が表示されます。ここで発行対象とするコモンネームを入力し、「同意して設定」ボタンをクリックします。

注意

「Let’s Encrypt」は弊社社外で提供されるサービスのため、さくらのクラウドで保証するサービス継続性や完全性の対象外となります。ダイアログボックス内に表示される情報を十分ご確認の上ご利用ください。「同意して設定」ボタンをクリックすることで諸条件に同意したものと見做されます。
また、Let’s Encrypt機能で自動設定される証明書はエンハンスドロードバランサのプライマリ証明書として扱われます。すでにプライマリ証明書が設定済みの場合は上書きされますのでご注意ください(オプショナル証明書には影響ありません)。

利用の停止

利用中のLet’s Encrypt証明書自動インストール・更新機能を停止する場合は、「SSL証明書の自動設定」画面のラジオボタンで「無効」を選択し「同意して設定」ボタンをクリックします。

証明書の手動更新

手動で証明書を更新する場合、「SSL証明書の設定」メニューより「Let’s Encryptの証明書更新」を選択します。

注釈

Let’s Encrypt証明書自動インストール・更新機能が有効の場合は自動的に証明書の更新作業が行われるため、通常は手動更新の必要はありません。

アクティビティグラフ

「アクティビティ」タブでは、エンハンスドロードバランサに対する外部からのコネクション数をグラフで確認することができます。

また、実サーバの登録や削除を行う「実サーバ」タブでは、個別の実サーバごとのコネクションを確認することができます。

参考情報

タイムアウト時間について

エンハンスドロードバランサのコネクションごとのタイムアウト時間の設定は以下の通りです。

注意

設定値が可変値で表示されている項目はエンハンスドロードバランサの設定状況に依存します。固定値で表示されている項目はお客様側で変更を行うことはできません。

項目 設定値
クライアントにデータを送信しackが返ってくるまで、またはクライアントからのデータ受信のタイムアウト時間 10~600秒(※1)
クライアントからの接続受付後、HTTPリクエストヘッダを受信し終わるまでのタイムアウト時間 10秒
HTTPキープアライブにおいて、クライアントにレスポンス送信後、新たなHTTPリクエストを受信し始めるまでのタイムアウト時間 10秒
実サーバにデータを送信しackが返ってくるまで、またはサーバからのデータ受信のタイムアウト時間 10~600秒(※1)
実サーバへのTCPコネクションが確立するまでのタイムアウト時間 10秒
実サーバへのコネクション確立に失敗した場合のリトライ回数(リトライ間隔は1秒) 3回
コネクション数が設定上限に達した際、処理がキューイングされる最大時間(経過後は503応答) 1分
実サーバのヘルスチェックの際に、TCPコネクションが確立してからレスポンスが返ってくるまでのタイムアウト時間 10秒
CONNECTメソッドやWebSocketへのアップグレードによりトンネルモードに移行した後、無通信状態を許容する時間 5分

注釈

※1: エンハンスドロードバランサの「実サーバ通信タイムアウト(秒)」の設定値と同一の設定値となります