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

[更新: 2021年7月29日]

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

概要

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

参考

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

主な機能

  • HTTPおよびHTTPSに特化したプロキシ型のロードバランサです(TCPでのロードバランシングも可能ですが、Let’s Encrypt証明書設定やレスポンスヘッダ設定などのL7関連機能はご利用いただけません)。
  • SSL証明書を設定することでHTTPSの負荷を実サーバからロードバランサ側にオフロードすることが可能です。SNIに対応し、1つのエンハンスドロードバランサに20枚のSSL証明書を設定できます。
  • Let’s Encryptが発行する無料SSLを使用する場合、証明書のインストールや更新作業を自動で行うことができます。
  • ロードバランシング先となる実サーバはさくらのクラウドの他、 さくらのVPS専用サーバ など、さくらインターネットがお客様向けに提供するグローバルIPアドレスを指定できます(さくらのレンタルサーバなど共用型サービスは除きます)。
  • 設定した条件に沿って実サーバのヘルスチェックを実施し、一定期間応答に失敗した実サーバは振り分け先から除外し可用性を高めます。
  • 仮想IPアドレス(VIP)を監視し、DoS攻撃などにより応答しなくなった場合に自動的にVIPアドレスを変更する VIPフェイルオーバ機能 が利用できます。
  • ソーリーサーバ設定機能により、障害やメンテナンス時に一時的にクライアントに情報提供するサーバを設定可能です(さくらのVPSや専用サーバ、レンタルサーバなどの弊社提供サービスのサーバを指定可能です)。
  • 実サーバの状態や負荷状況などの稼働状況が、コントロールパネル上のグラフなどで分かりやすく表示されます。
  • 負荷状況に応じて随時プラン変更することが可能となり、負荷の高い時間帯や臨時のイベントの際だけよりハイスペックなプランに変更するなど、柔軟で低コストな運用が可能です。
  • カスタムレスポンスヘッダ設定機能 により、エンハンスドロードバランサがクライアント側に送出するHTTPヘッダを自由に設定できます。
  • セッション維持機能 により、クライアントと通信する実サーバを固定化することができます。
  • ルール機能 により、クライアントがリクエスト時に送出するヘッダやパスの情報によって、ロードバランシング先の実サーバを変更したり、指定したURLにリダイレクト、また固定のレスポンスを返すことができます。
  • GZIP圧縮機能により、 特定のタイプのコンテンツ を自動的に圧縮し、コンテンツのダウンロードに掛かる時間を短縮できます。
  • Syslogサーバのホストとポートを指定することで、 アクセスログをSyslog経由で取得する ことができます。
  • 前段に ウェブアクセラレータ を設置(ウェブアクセラレータのオリジンサーバとしてエンハンスドロードバランサを指定)する構成に対応します。
  • 設置先リージョンを「自動(エニーキャスト)」に設定することで、東京/石狩でのリージョン間冗長が確保され、さらにクライアントの接続も各リージョンから近いロードバランサが自動的に選択されることでレスポンスタイムの短縮も期待できます。

仕様

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

ネットワーク構成方式 プロキシ方式
ロードバランシングが可能なプロトコル HTTP, HTTPS, WebSocket(ws,wss), TCP
※IPv6接続には非対応となります
※TCP利用時はL7関連機能は使用できません
HTTPS接続時に対応する暗号化プロトコル TLS 1.2, TLS 1.3
HTTP/2接続 対応(HTTPS使用時にデフォルトで有効)
ロードバランサの冗長化 ・標準で複数台構成による拠点内冗長化に対応済み
自動(エニーキャスト) 選択時は拠点内冗長化に加え東京/石狩リージョン間での冗長化に対応
仮想IPアドレス(VIP)、ポート番号 1台ごとにグローバルIPアドレス1個付属(追加不可)/待受ポート2個設定可
設定可能な最大実サーバ数 40台
設定可能なカスタムレスポンスヘッダ 待受ポートごとに最大10個
ルール機能で設定可能なルール数 最大20ルール
振り分けアルゴリズム least connection
セッション維持機能 対応(クッキー方式)
※詳しくは セッション維持機能 の項目を参照ください
GZIP圧縮対象コンテンツタイプ text/html text/plain text/plain text/css text/javascript application/x-javascript
application/javascript application/json text/js text/xml application/xml
application/xml+rss image/svg+xml
※クライアントが圧縮されたコンテンツをサポートしている場合のみ圧縮されます。
※実サーバ上ですでにコンテンツが圧縮されているされている際には、再度圧縮はしません。
ヘルスチェック判定 ・サーバダウン判定のチェック回数: 3回連続タイムアウト(httpの場合は"200"番台または"300"番台以外のステータスコード)でダウン判定
 (タイムアウト判定は「チェック間隔」で指定した秒数と同値)
・サーバアップ判定のチェック回数: 2回連続で成功した場合にアップ状態に遷移
※タイムアウトはTCP監視においてはTCPコネクション確立までの時間、http監視においてはhttpレスポンス受信までの時間となります。
※httpの場合は対象パスに対しHEADメソッドで応答確認を行います。
設定可能なSSL証明書の形式 PEM形式, RSA 1024/2048bit, ECDSA secp256r1, 公開鍵, 中間証明書, 秘密鍵
SNI(Server Name Indication)機能 対応
設定可能なSSL証明書の枚数 20枚(プライマリ1枚+オプショナル19枚)
ワイルドカード証明書の設定 可能(ワイルドカードに合致する全てのホスト名でHTTPS接続が可能となります)
※ホスト名ごとに振り分け先実サーバを設定する機能はありません
付加するHTTPヘッダ 実サーバへのプロキシ時に以下のHTTPヘッダを付加します。
X-Forwarded-For : リクエスト元IPアドレス
X-Forwarded-Proto : 終端プロトコル("http"もしくは"https")
X-Real-IP : リクエスト元IPアドレス
X-Original-For : エンハンスドロードバランサ受信時のX-Forwarded-Forヘッダの値(ヘッダが含まれていなかった場合は値部は空欄)
X-Original-Proto : エンハンスドロードバランサ受信時のX-Forwarded-Protoヘッダの値(ヘッダが含まれていなかった場合は値部は空欄)
X-Original-Real-IP : エンハンスドロードバランサ受信時のX-Real-IPヘッダの値(ヘッダが含まれていなかった場合は値部は空欄)
※リクエスト時の条件により各ヘッダの内容が変化します。詳しくは こちら の項目を参照ください。
Via : リクエストのループを防ぐため付加されます
※Viaヘッダについては こちら も参照してください。
SSLセッションチケット 対応

エンハンスドロードバランサへのリクエスト状況により内容が変化するHTTPヘッダ

エンハンスドロードバランサの前段に ウェブアクセラレータ を使用する場合など、エンハンスドロードバランサへ接続した際のリクエストヘッダに X-Forwarded-For , X-Forwarded-Proto , X-Real-IP いずれかがすでにセットされている場合、実サーバへのプロキシ時のリクエストヘッダは以下のように書き換えられます。

  書き換え内容
X-Forwarded-For X-Forwarded-For → リクエスト元(前段プロキシなど)のIPアドレスに書き換え
X-Original-For → リクエスト時の X-Forwarded-For の値をセット
X-Forwarded-Proto X-Forwarded-Proto → リクエスト元(前段プロキシなど)接続時のプロトコル("http"もしくは"https")に書き換え
X-Original-Proto → リクエスト時の X-Forwarded-Proto の値をセット
X-Real-IP X-Real-IP → リクエスト元(前段プロキシなど)のIPアドレスに書き換え
X-Original-Real-IP → リクエスト時の X-Real-IP の値をセット

注意

・これら3種のヘッダのいずれかが含まれていた場合は上記のルールでヘッダの書き換え/追加ヘッダへの値のコピーが行われて実サーバに送出されます。受信されなかった場合は値が空欄で追加ヘッダを送信します。
・アクセス元がすでに X-Original-For , X-Original-Proto , X-Real-IP いずれかのヘッダを送出していた場合は元の内容は破棄され、上記ルールでこれらヘッダの上書きが行われます。

例として、これらの条件での動作となる ウェブアクセラレータ を組み合わせた場合、以下のような設定を行うことでウェブアクセラレータ側での接続クライアント情報を取得することができます。

  1. ウェブアクセラレータのオリジンガード機能を有効にし、エンハンスドロードバランサ配下の実サーバにてリクエストのバリデーションを行う
  2. ウェブアクセラレータが付与する X-Real-IP の値が X-Original-Real-IP ヘッダにセットされるので、エンハンスドロードバランサ配下の実サーバにて本来のアクセス元IPアドレスとしてこのヘッダを参照する

X-Real-IP は詐称が可能なため、1.によりウェブアクセラレータからのリクエストであることを検証することで、 X-Original-Real-IP ヘッダの信頼性が担保されます

ヒント

ウェブアクセラレータ は大阪と東京に設置されるため、設置先リージョンは「東京」、さらにリージョン間冗長による耐障害性を向上させたい場合は自動(エニーキャスト)を選択することを推奨します。

エニーキャストについて

新規作成時の「設置先」リージョンでは、それぞれ設置先が固定となる「東京」・「石狩」のほか、リージョンに依存しない「自動(エニーキャスト)」を選択することが可能です。

注意

設置先リージョンが東京/石狩固定を選択した場合とは料金が異なります。

エニーキャストでは設置先リージョン固定と比べ、以下のような特徴があります。

  • リージョン間で冗長化されます。あるリージョン内のエンハンスドロードバランサに障害が発生した場合、自動的に他の健全なリージョンに設置されたエンハンスドロードバランサが応答し、可用性を高めます。
  • 接続するクライアントへの応答は、自動的にネットワーク的に近いリージョンのエンハンスドロードバランサが選択されます。これにより設置先リージョン固定の場合よりクライアントへのレスポンスタイムがより短縮されます。

料金

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

重要

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

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

新規作成

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

注釈

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

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

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

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

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

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

作成されたエンハンスドロードバランサの情報確認

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

重要

VIPやプロキシ元ネットワークなど、DNS参照先をエンハンスドロードバランサに設定したり実サーバの接続制限設定する際に必要となる情報がこの画面に表示されます。作成完了後に必ずご確認ください。

画面内に表示されるエンハンスドロードバランサに特有の項目は以下の通りです。

現在のVIP ロードバランサに現在割り当てられているVIP(Virtual IP addres; 仮想IPアドレス)です。
クライアント側がこのIPアドレスに接続することにより実サーバのコンテンツが応答されます。
VIPフェイルオーバ機能 が有効になっている場合はフェイルオーバ発生時にVIPが変化します
プロキシ元ネットワーク エンハンスドロードバランサが実サーバに接続したりヘルスチェックを実行する際のソースとなるネットワーク範囲です。
※実サーバ側でエンハンスドロードバランサ以外の接続を拒否するなどの制限を実施する場合はこのネットワーク帯域を許可するようにしてください
セッション維持 セッション維持機能 の有効/無効状態を表示します。
監視方式/チェック間隔 ヘルスチェックに使用する際の監視方法とチェック間隔を表示します。
※変更する場合は 「監視方法の変更」ボタンより設定変更 します。

設定

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

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

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

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

プロキシ方式 プロキシするプロトコルをhttp/https/tcpより選択します。
HTTPSへのリダイレクト
※プロキシ方式に"http"を選択時のみ表示
「有効」を選択すると、クライアントがHTTPに接続した際にHTTPSへリダイレクトします。
HTTP/2のサポート
※プロキシ方式に"https"を選択時のみ表示
「有効」を選択すると、HTTP/2での接続に対応します。
SSLポリシー
※プロキシ方式に"https"を選択時のみ表示
https通信をする際のクライアントとサーバ間での暗号の組み合わせのポリシーを指定します。
サポートしているポリシーについては こちら を参照してください。
待受ポート番号 待ち受けるポート番号を指定します。

重要

・プロキシ方式の設定において「tcp」と「http」または「https」を同時に設定することはできません。
・httpsを選択した場合はSSL証明書の設定が必須となります。
・エンハンスドロードバランサと実サーバ間はプロキシ方式の選択によらず、常にhttpでの通信となります。
・実サーバにエンハンスドロードバランサ以外からの接続を許可したくない場合は、実サーバ側で接続元をエンハンスドロードバランサ情報のプロキシ元ネットワークに表示されるネットワークのみに制限する設定を行ってください。

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

注釈

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

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

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

注意

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

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

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

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

注釈

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

ルール

クライアントがリクエスト時に送出するホストヘッダ、パスの情報や任意のリクエストヘッダから、あらかじめ設定したルールとアクションに従ってロードバランシング先の実サーバを指定したり、任意のURLにリダイレクト、または固定のレスポンスを返すことができます。

注意

ルール機能により実サーバを指定するためには、あらかじめ 実サーバ へのサーバグループ設定が必要です。

「ルール」タブをクリックすると登録済みのルールリストが表示されます。追加するには「追加」ボタンをクリックします。

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

アクションのラジオボタンを押すことで、各アクションごとの入力フォームに切り替わります

ホストヘッダ(※) クライアントがリクエスト時に送出する Host: ヘッダの条件を入力します。
パス(※) クライアントがGETやPOSTでリクエストするパスの条件を入力します。
リクエストヘッダ名 クライアントがリクエスト時に送出する任意のヘッダ名を入力します。
リクエストヘッダ値 リクエストヘッダ名で指定されるリクエストヘッダの値の条件を入力します。
リクエストヘッダ値 大/小文字 リクエストヘッダ値の条件にて大文字・小文字を区別をするか選びます。
リクエストヘッダ値 条件 リクエストヘッダ値の条件に一致した際にルールを適用するのか、一致しなかった際にルールを適用するのかを選びます。
アクション 「実サーバへの転送」「リダイレクト」「固定レスポンス」から選択します。
サーバグループ 条件が合致した場合に応答するサーバグループを指定します。
※「実サーバへの転送」アクションを選択した際に表示されます

※0文字以上の文字列を表す * と 任意の1文字を表す ? の2種類のワイルドカードが使用可能です。
※「ホストヘッダ」「パス」「リクエストヘッダ」から複数の条件が入力されていた場合はAND条件での評価となります。

「リダイレクト」アクションを選択した際

リダイレクト先URL 条件が合致した場合にリダイレクトするURLを指定します。
※リクエストの情報を %{key} 記法を使うことで参照することができます|br|※%{host} リクエストのあったホスト|br|※%{path} リクエストのあったURLのパス(1文字目の「/」削除)|br|※%{has_query} リクエストにクエリストリングが存在している場合は「?」なければ空文字|br|※%{query} クエリストリング(1文字目の「?」は含まず)
ステータスコード リダイレクトのレスポンスを行う際のステータスコードを選択します

「固定レスポンス」アクションを選択した際

ステータスコード レスポンスを行う際のステータスコードを選択します
コンテンツタイプ レスポンスを行う際の Content-Type ヘッダを指定します
コンテンツボディ レスポンスのボディを入力します

固定レスポンスには「Cache-Control: private, no-store」ヘッダが付加されます

注釈

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

「ルール」タブ内で表示される設定済みルールのうち、複数ルールにマッチする場合は最初にマッチしたルールが適用されます。ルールの順番はリスト右側の drug アイコンをドラッグすることで変更できます。

注意

いずれのルールにもマッチしないリクエストかつサーバグループが未指定の実サーバがひとつもない場合や、マッチしたサーバグループが全てダウン状態の場合はソーリーサーバの応答となります(ソーリーサーバの設定も無い場合は503ステータスが返答されます)。
また、ルールはエンハンスドロードバランサ内で共通です。待受ポートごとにルールを設定することはできません。

実サーバ登録

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

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

IPアドレス 実サーバを指定します。
ラジオボタンの選択により、IPアドレスの直接入力または作成済みサーバから指定することができます。
ポート番号 実サーバに接続する際のポート番号を指定します。
有効/無効 登録した実サーバを有効にするかどうかを指定します。
サーバグループ 任意のグループ名を設定することで、同一のグループ名となる実サーバをグループ化できます。
※現在 ルール機能 で利用する場合のみ必要となります。

注釈

・「IPアドレス」と「ポート番号」は必須項目です。「有効/無効」については、反映操作時に設定した実サーバを有効化したい場合は「有効」を、リストへの登録のみ行い現段階では無効にしておく場合は「無効」を選択します。
・サーバグループには英小文字と数字で構成された1~10文字の文字列が指定できます(例外的に 0 および default の文字列はサーバグループに指定することはできません)。

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

注釈

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

SSL証明書の設定

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

注釈

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

「追加/変更」

SSL証明書の初期登録や登録済み証明書の更新、登録された証明書の削除を行うことができます。この項目を選択すると登録済みの証明書の一覧が表示されます。新たな証明書を追加する場合は右下の「追加」ボタンをクリックします。

証明書の入力フォームが表示されるので、以下の項目を入力します。

SSL証明書(*) 証明書を入力します。
中間証明書 SSL証明書に中間証明書が付属する場合はこのフォームに入力します。
秘密鍵(*) SSL証明書の秘密鍵を入力します。

(*): 必須項目

注意

パスフレーズが設定されているSSL証明書の秘密鍵はエンハンスドロードバランサでは使用できません。パスフレーズを解除してから入力してください。

フォームに入力後、「追加」ボタンをクリックすることでエンハンスドロードバランサに証明書が登録され、登録済み証明書一覧画面に表示されます。一覧画面では有効期限の確認や証明書の編集、削除の操作を行うことができます。

注釈

一覧画面右側の鉛筆アイコン pencil をクリックすることで証明書の内容変更、削除アイコン cross をクリックすることで削除ができます(設定変更後は「反映」ボタンのクリックが必要です)。

エンハンスドロードバランサはSNIに対応しており、プライマリ証明書に加えて19枚の証明書を追加設定することができます。

同じコモンネームの証明書が複数枚登録されていたり、マルチドメイン証明書やワイルドカード証明書があり、クライアントからのリクエストに利用できる証明書が複数ある場合、証明書リストにて上に表示される証明書から使われます。

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

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

新規作成時の設定項目の変更

新規作成時に設定した各項目は以下の手順で変更することができます。

注意

プラン変更、基本項目以外の設定変更後は「反映」ボタンをクリックしアプライアンス側に設定情報を反映させる操作が必要です。

プラン

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

重要

プラン変更機能は、内部的には「新たなプランのエンハンスドロードバランサ作成」→「設定情報の引き継ぎ」→「旧プランのエンハンスドロードバランサ削除」の一連の処理が自動的に行われる流れとなります。そのため、帯域変更後のエンハンスドロードバランサには新たなリソースIDが付与され、変更後プランでの課金が新たに発生します。1時間や1日といった課金単位内でプラン変更を繰り返すと料金が増大する場合がありますのでご注意ください。料金についての詳細は お支払いについて > 課金の仕組み のページを参照ください。

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

名前・説明などの基本項目

「情報」タブ内右下の「編集」ボタンをクリックします。

実サーバ通信タイムアウト時間

「設定変更」ボタンより操作することができます。

セッション維持機能 の有効/無効の切り替えも同じ画面より行えます。

監視方法・チェック間隔・ソーリーサーバ

上部に表示される「監視方法の変更」ボタンをクリックします。

セッション維持機能

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

クッキー仕様

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

設定

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

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

注意

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

Syslog経由でのアクセスログ取得

Syslogサーバのホストとポートを指定することで、エンハンスドLBへのアクセスのログ・ヘルスチェックのログをSyslog経由で取得することができます。

転送されるログに設定されるファシリティは local0 です。またタグには elb-{{リソースIDの数字}} が入ります。

注釈

・Syslogサーバはお客様にてご用意いただく必要がございます。 ・Syslogは「情報」タブに表示される「プロキシ元ネットワーク」のIPアドレスより送信されます。

ログ仕様

■ HTTP, HTTPSプロキシ方式のアクセスは次のデータを含むJSON型式で送られます

キー名 説明
resource_id リソースID
mode http もしくは https
client_ip 接続してきたクライアントのIPアドレス
client_port 接続してきたクライアントのポート番号
time HTTPのリクエスト行が届いた時間
frontend リクエストを受け付けるフロントエンドの設定名
backend リクエストを処理するバックエンドの設定名
upstream_server 実サーバのホストとポート
upstream_response_time 実サーバでレスポンスに要した時間(ミリ秒)
upstream_connect_time 実サーバへの接続に要した時間(ミリ秒)
session_duration TCP接続からレスポンスまでの時間(ミリ秒)
response_time リクエストが届いてからレスポンスまでの時間(ミリ秒)
fix_response_code ルール機能の固定レスポンスを使用した際のステータスコード
status_code レスポンスのステータスコード。ルール機能の固定レスポンスでは 503 と表示されます
size クライアントへ転送したバイト数
termination_state TCP切断時のステータス。詳しくは haproxyのドキュメント を確認してください。
vhost リクエストのHostヘッダ。256文字以上は省略されます
user_agent リクエストのUser-Agentヘッダ。256文字以上は省略されます
method リクエストのHTTPメソッド
uri リクエストのパス、クエリストリングがあれば付加されます。1000文字以上のURIは途中で省略されます
protocol HTTP/1.0もしくはHTTP/1.1。HTTP2の場合もHTTP/1.1と出力されます
ssl_version HTTPS接続時のTLSのバージョン
ssl_ciphers HTTPS接続時の暗号化アルゴリズム

{
  "resource_id": "113300002882",
  "mode": "https",
  "client_ip": "203.0.113.9",
  "client_port": 53952,
  "time": "[30/Jun/2021:10:35:01.049]",
  "frontend": "113300002882-203.0.113.100:443~",
  "backend": "113300002882-backend-group1",
  "upstream_server": "203.0.113.123:3000",
  "upstream_response_time": 6,
  "upstream_connect_time": 0,
  "session_duration": 15098,
  "response_time": 6,
  "fix_response_code": "-",
  "status_code": "200",
  "size": 1613,
  "termination_state": "--",
  "vhost": "log-test.example.com",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.114 Safari/537.36",
  "method": "GET",
  "uri": "/example/path/to",
  "protocol": "HTTP/1.1",
  "ssl_version": "TLSv1.3",
  "ssl_ciphers": "TLS_AES_128_GCM_SHA256"
}

■ TCPプロキシ方式の接続ログは次のデータを含むJSON型式で送られます

キー名 説明
resource_id リソースID
mode TCPプロキシ方式では tcp
client_ip 接続してきたクライアントのIPアドレス
client_port 接続してきたクライアントのポート番号
time 接続した時間
frontend リクエストを受け付けるフロントエンドの設定名
backend リクエストを処理するバックエンドの設定名
upstream_server 実サーバのホストとポート
upstream_connect_time 実サーバへの接続に要した時間(ミリ秒)
session_duration TCP接続を行っていた時間(ミリ秒)
size クライアントへ転送したバイト数
termination_state TCP切断時のステータス。詳しくは haproxyのドキュメント を確認してください。

{
  "resource_id": "113300015544",
  "mode": "tcp",
  "client_ip": "203.0.113.9",
  "client_port": 38018,
  "time": "[30/Jun/2021:10:03:17.931]",
  "frontend": "113300015544-203.0.113.128:80",
  "backend": "113300015544-backend-default",
  "upstream_server": "203.0.113.100:80",
  "upstream_connect_time": 2,
  "session_duration": 10005,
  "size": 326,
  "termination_state": "cD"
}

■ その他、ヘルスチェックやエラーログがテキスト形式で送信されます

Health check for server 113300002882-backend-group1/203.0.113.123:3000 succeeded, reason: Layer4 check passed, check duration: 3ms, status: 3/3 UP.

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 対応 (20件まで)
認証レベル DV(ドメイン認証)
証明書の自動更新間隔(※) 60日(更新間隔は固定。Let’s Encrypt発行証明書自体の有効期限は90日)
証明書の手動更新(※) 対応

ヒント

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

設定手順

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

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

マルチドメインに対応したSSL証明書を発行する際は「サブジェクト代替名」に追加したいホスト名を改行、スペースあるいはカンマ(,)区切りにて記入してください。サブジェクト代替名には最大20件のホスト名を記入できます。「サブジェクト代替名」は証明書発行後もホスト名の追加、削除、変更が可能です。

ヒント

Let’s Encryptの有効化後は、次回の14時30分頃に自動実行されるバッチ処理のタイミングで証明書が発行されます。有効化後すぐに証明書を発行したい場合は 証明書の手動更新 の手順を実施してください。

注意

「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: エンハンスドロードバランサの「実サーバ通信タイムアウト(秒)」の設定値と同一の設定値となります

https通信時のSSLポリシーについて

SSLポリシーとはhttps通信時に使用するクライアント、サーバ間でのプロトコルと暗号の組み合わせ(暗号スイート)の設定です。エンハンスドロードバランサでは以下の3つのSSLポリシーをサポートしています。

設定名 説明
TLS 1.2/1.3 互換設定 (2019/04) 接続の互換性が最も高く一般的な設定です。デフォルトで利用される設定になります
一部の古いクライアントでは推奨されない暗号スイートが使われる可能性があります。
TLS 1.2/1.3 セキュア設定 (2021/06) 幅広い互換性を保ちながら、現在は使用が推奨されない暗号が含まれない設定です。
Windows 7,8 のIE、2014年以前のmacOS・iOSのSafariなど
一部接続ができない可能性あります。
TLS 1.3 厳格設定 (2021/06) TLSv1.3 のみが使用され、推奨されない暗号の利用がない設定です。
最新のブラウザ、クライアントのみ接続ができます。TLS 1.3のみの通信に
限定する必要があるときにご利用ください。

SSLポリシーとサポートするプロトコルおよび暗号の詳細は下記の表を参考にしてください。

実サーバにnginxを利用した場合のGZIPの動作について

実サーバにnginxを利用している場合、エンハンスドロードバランサーが付与するViaヘッダにより、nginx上のGZIP機能が動作しません。

GZIP機能を有効にコンテンツを圧縮するためにはnginxの設定ファイルに

gzip_proxied any;

の追加をご検討ください。 詳しくは nginxのドキュメント にて確認できます。