サービスの可用性や性能を考慮した構成をFUJITSU Cloud Service for OSS(以下FJCS for OSS)上で実現したいといった要求事項に対応するパターンです。
一般に、サーバは突如停止する可能性が ゼロ ではありません。
クラウドでも、設備等の物理的なトラブルや、
トラフィック増による性能劣化など、
何らかの理由でサービス継続ができない場合があります。
FJCS for OSSでは、このようなサービス提供の機会損失を防ぎ、可用性や性能を向上させる負荷分散機能として、
ロードバランサーサービスを提供しています。
なお、本章で説明するロードバランサーは、西日本第3 /東日本第3 リージョン向けの提供機能
および操作画面になっています。
東日本/西日本第1,2リージョンの場合は、内部負荷分散構成パターンを参照して下さい。
FJCS for OSSでは、可用性向上と性能向上のための負荷分散機能として、ロードバランサーサービスを提供しています。
ロードバランサーサービスによる負荷分散の構成としては、以下の2構成が利用可能です。
外部負荷分散構成 | 負荷分散を外部ネットワークに配置し、インターネットからのアクセスを、 外部ネットワークに接続された内部ネットワークの仮想サーバへの通信を負荷分散します |
---|---|
内部負荷分散構成 | 負荷分散を内部ネットワークに配置し、内部ネットワークの仮想サーバから、 内部ネットワークの仮想サーバへ通信を負荷分散します この構成では、IPSecVPNや構内接続等のセキュアな接続を併用すると、 社内イントラネット環境から負荷分散構成を利用したシステムが利用可能です |
以下では、内部負荷分散構成について記載します。
内部負荷分散に対応した構成を配備する手順を示します。
(1) セキュリティグループ
(2) 負荷分散対象の仮想サーバ配備
(3) ロードバランサー の配備
項目 | 内容 |
---|---|
1.ロードバランサー作成 | 負荷分散対象の仮想サーバが接続されているサブネットに、ロードバランサーを作成 配備先となるサブネットIDを指定 |
2.負荷分散条件(リスナー)を作成 | 負荷分散の対象となるトラフィックの条件を定義 設定先となるロードバランサーのIDを指定 |
3.負荷分散条件(プール)を指定 | 負荷分散の対象となったトラフィックを、どのような条件に基づいて負荷分散対象の仮想サーバへ振り分けるかを定義 設定先となるリスナーのIDを指定 |
4.負荷分散対象(メンバー)を登録 | 負荷分散対象となる仮想サーバをプールに登録 登録先となるプールのIDを指定 |
5.異常監視(ヘルスモニター)を設定 | 負荷分散対象の仮想サーバに対する、ヘルスチェック条件をプールに登録 監視対象となるプールのIDを指定 |
項目 | 設定値 | 内容 |
---|---|---|
$LOADBALANCER | "loadbarancer1" | ロードバランサー名(プロジェクト内で一意となっている必要があります。) |
$TENANT_ID | (プロジェクトID) | プロジェクトID |
$VIP_SUBNET_ID | (サブネットID) | サブネットID |
$VIP_ADDRESS | (仮想IPアドレス) | ロードバランサーに割り当てる仮想IPアドレス(プライベートIP) |
(2) ロードバランサー確認
(1) ロードバランサー作成APIの実行結果を参照し"provisioning_status": "ACTIVE"になっていることを確認してください。
項目 | 内容 |
---|---|
$LOADBALANCER_ID | ロードバランサー作成APIの実行結果を参照しロードバランサーIDを指定する。 |
項目 | 設定値 | 内容 |
---|---|---|
$TENANT_ID | (プロジェクトID) | プロジェクトID |
$LOADBALANCER_ID | (ロードバランサーID) | ロードバランサーID |
$PROTOCOL | "HTTP" | フロントエンド側とバックエンド側の通信プロトコル(HTTP/TERMINATED_HTTPS/HTTPS/TCP)を指定します。 |
$PROTOCOL_PORT | "80" | ロードバランサーがリクエストを待ち受けるポート番号 |
$LISTENER | "listener1" | リスナー名(ロードバランサー内で一意) |
設定値 | フロントエンド | バックエンド |
---|---|---|
HTTP | HTTP | HTTP |
TERMINATED_HTTPS | HTTPS | HTTP |
HTTPS | HTTPS | HTTPS |
TCP | TCP | TCP |
項目 | 設定値 | 内容 |
---|---|---|
$POOL | "pool1" | プール名 |
$LB_ALGORITHM | "ROUND_ROBIN" | 仮想サーバに対する負荷分散のアルゴリズムです。 -ROUND_ROBIN トラフィックを均等に仮想サーバへ振り分けます。 -LEAST_CONNECTIONS コネクション数が少ない仮想サーバへ優先してトラフィックを振り分けます。 -SOURCE_IP 特定の送信元IPアドレスからのトラフィックを、特定の仮想サーバに振り分けます。リスナーに設定したバックエンドの通信プロトコルと同じプロトコルを指定してください。 |
$TENANT_ID | (プロジェクトID) | プロジェクトID |
$PROTOCOL | "HTTP" | 負荷分散先の仮想サーバとの通信プロトコルです。 リスナーに設定したバックエンドの通信プロトコルと同じプロトコルを指定してください。 |
$LISTENER_ID | (リスナーID) | リスナーID指定 |
項目 | 設定値 | 内容 |
---|---|---|
$POOL_ID | (プールID) | プールID |
$ADDRESS | (仮想サーバIPアドレス) | 分散対象の仮想サーバIPアドレス |
$PROTOCOL_PORT | "80" | プロトコルポート |
$TENANT_ID | (プロジェクトID) | プロジェクトID |
$SUBNET_ID | (サブネットID) | サブネットID |
(2) プールメンバーリスト表示
項目 | 内容 |
---|---|
$POOL_ID | プール作成APIの実行結果を参照しプールIDを指定する |
項目 | 設定値 | 内容 |
---|---|---|
$TENANT_ID | (プロジェクトID) | プロジェクトID |
$POOL_ID | (プールID) | プールID |
$DELAY | "10" | メンバーへプローブを送る時間間隔(秒単位) |
$HTTP_METHOD | "GET" | ヘルスチェックの実行に使用するHTTPリクエストメソッドです。 |
$MAX_RETRIES | "5" | メンバーのステータスをINACTIVEに変更するまでのリトライ回数(1-10) |
$TIMEOUT | "60" | 接続がタイムアウトするまでの最大待ち時間。delayより低い値を指定する必要があります。 |
$TYPE | "HTTP" | 負荷分散対象の仮想サーバを監視する方式です。 HTTP/HTTPS/PING/TCP |
$URL_PATH | "/index.html" | バックエンドのアクセスURL。デフォルトは「/」 |
ロードバランサーサービスを利用した場合のメリット・効果は以下の通りです。
特にありません。