FUJITSU Cloud Service K5
IaaS 設計・構築ガイド(デザインパターン・実装サンプル集)

外部負荷分散構成


要求事項

サービスの可用性や性能を考慮した構成をK5上で実現したいといった要求事項に対応するパターンです。

一般に、サーバは突如停止する可能性が 0 ではありません。 クラウドでも、設備等の物理的なトラブルや、
トラフィック増による性能劣化など、 何らかの理由でサービス継続ができない場合があります。

K5では、このようなサービス提供の機会損失を防ぎ、可用性や性能を向上させる負荷分散機能として、
ロードバランサーサービスを提供しています。



対応するK5デザインパターン概要

K5では、可用性向上と性能向上のための負荷分散機能として、ロードバランサーサービスを提供しています。
ロードバランサーサービスによる負荷分散の構成としては、以下の2構成が利用可能です。
これらの構成はともに、1つのAZ内の分散でも、複数のAZ間の分散でも可能です。

外部負荷分散構成負荷分散を外部ネットワークに配置し、インターネットからのアクセスを、
外部ネットワークに接続された内部ネットワークの仮想サーバへの通信を負荷分散します
内部負荷分散構成負荷分散を内部ネットワークに配置し、内部ネットワークの仮想サーバから、
内部ネットワークの仮想サーバへ通信を負荷分散します
この構成では、IPSecVPNや構内接続等のセキュアな接続を併用すると、
社内イントラネット環境から負荷分散構成を利用したシステムが利用可能です

以下では、外部負荷分散構成について記載します。



構造 (イメージ図)



実装サンプル

外部負荷分散に対応した構成を配備する手順を示します。

 (1) セキュリティグループ



 (2) 負荷分散対象の仮想サーバ配備



 (3) ロードバランサー の配備

  • K5ポータルにログインしIaaSポータルを選択します。
  • 「ネットワーク」⇒「ロードバランサー」画面で、「+」ボタンをクリックします。
  • 「ロードバランサー作成」画面で、以下の項目を入力し、「作成」ボタンをクリックします。
タブ項目
必須
設定値
内容
ロード
バランサー
定義
ロードバランサー名
必須"demo-lb"30文字以下、半角英数字と "-" が使用可能です。
タイプ選択"public"ロードバランサーのタイプを選択してください。
 - public:
インターネットからアクセス可能なグローバルIPアドレスとFQDNが付与されます。
 - internal:
内部からアクセス可能なプライベートIPアドレスとFQDNが付与されます。
グレード選択"Standard"ロードバランサーのグレードを選択してください。
グレードごとに、AZ内のサブネットごとに作成されるロードバランサーの数がかわります。
 - Standard:
標準性能版
 - Middle:
中間性能版
 - High:
高性能版
リスナー
ロードバランサー
プロトコル
必須"HTTP"ロードバランサーが受け付けるプロトコルを選択してください。
 - HTTP
 - HTTPS
 - TCP
 - SSL
ロードバランサー
ポート
必須"80"ロードバランサーが受け付けるポート番号を入力してください。
仮想サーバ
プロトコル
必須"HTTP"仮想サーバがロードバランサーからのアクセスを受け付けるプロトコルを選択してください。
 - HTTP
 - HTTPS
 - TCP
 - SSL
仮想サーバの
ポート
必須"81"仮想サーバがロードバランサーからのアクセスを受け付けるポート番号を入力してください。
証明書必須-証明書は、ロードバランサープロトコルが "HTTPS" の場合は、
証明書の選択が必須となります。
証明書のインストールは API で行います。ポータルでは行えません。
サブネット
設定
サブネット必須"demo-subnet"ロードバランサーを配備する内部ネットワークを選択して、
「追加」ボタンをクリックしてください。
セキュリティ
グループ
設定
セキュリティ
グループ
必須"SG_LB"セキュリティグループの "SG_LB" や、その他必要なセキュリティグループを選択して、
「追加」ボタンをクリックしてください。
  • ロードバランサー "demo-lb" が作成されます。"demo-lb" の状態が InService になれば、作成完了です。

※上記表の項目 "サブネット設定" について

  • サブネットを選択する際、複数のサブネットを選択可能です。
    複数サブネットを選択した場合、それぞれのサブネットにロードバランサーが作成されます。

  • サブネットを選択する際、AZ1 のサブネットと AZ2 のサブネットを選択すると、
    マルチAZ環境での負荷分散構成とすることが可能です。



 (4) 負荷分散対象の仮想サーバの追加

  • 「ネットワーク」⇒「ロードバランサー」画面で、作成したロードバランサー "demo-lb" の「アクション」メニューから、
    「仮想サーバ」⇒「追加」をクリックします。
  • 「仮想サーバ追加」画面で、負荷分散させる仮想サーバを選択し、「追加」ボタンをクリックします。
  • ロードバランサー "demo-lb" の状態が InService になれば、追加完了です。



 (5) 負荷分散対象の仮想サーバのヘルスチェック情報設定

  • 「ネットワーク」⇒「ロードバランサー」画面で、作成したロードバランサー "demo-lb" の「アクション」メニューから、
    「ヘルスチェック情報設定」をクリックします。
  • 「ヘルスチェック情報設定」画面で、負荷分散対象の仮想サーバのヘルスチェック情報を入力し、
    「設定」ボタンをクリックします。
項目
必須
設定値
内容
復旧と判断するヘルスチェック連続成功回数
必須"3"適宜設定してください。
ヘルスチェック実施時間間隔(秒)必須"5"適宜設定してください。
プロトコル必須"HTTP"仮想サーバをチェックするプロトコルを選択してください。
 - HTTP
 - HTTPS
 - TCP
 - SSL
ポート必須"81"適宜設定してください。
URL必須"/index.html"適宜設定してください。
※プロトコルが "HTTP" または "HTTPS" の場合は必須です。
ヘルスチェック応答のタイムアウト時間(秒)必須"5"適宜設定してください。
故障と判断するヘルスチェック連続失敗回数必須"2"適宜設定してください。
  • ロードバランサー "demo-lb" の状態が InService になれば、設定完了です。



 (6) セッション維持のポリシー作成
   リスナーが "HTTP" または "HTTPS" で、セッションの維持を行う場合は、
   セッション維持のポリシーを作成して設定します。

  • 「ネットワーク」⇒「ロードバランサー」画面で、作成したロードバランサー "demo-lb" の「アクション」メニューから、
    「ポリシー」⇒「セッション維持ポリシー作成」をクリックします。
  • 「セッション維持のポリシー作成」画面で、セッション維持のポリシー情報を入力し、
    「作成」ボタンをクリックします。
項目
必須
設定値
内容
ポリシー名
必須"demo-session-policy"適宜設定してください。
セッションを維持する最大時間(秒)
必須"3600"適宜設定してください。



 (7) SorryServerのポリシー作成
   負荷分散対象の仮想サーバがすべてダウンした場合には、リダイレクト先を設定して画面を飛ばすことが可能です。
   画面を飛ばす場合は、SorryServerポリシーを作成して設定します。

  • 「ネットワーク」⇒「ロードバランサー」画面で、作成したロードバランサー "demo-lb" の「アクション」メニューから、
    「ポリシー」⇒「SorryServerポリシー作成」をクリックします。
  • 「SorryServerへリダイレクトするためのポリシー作成」画面で、リダイレクト先のサーバ情報を入力し、
    「作成」ボタンをクリックします。
項目
必須
設定値
内容
ポリシー名称
必須"demo-sorry-policy"適宜設定してください。
リダイレクト先の Location の URI
必須"http://www.****.com/Sorry.html"適宜設定してください。



 (8) ポリシーの登録
   セッション維持ポリシー、SorryServerポリシーをロードバランサーに登録します。

  • 「ネットワーク」⇒「ロードバランサー」画面で、作成したロードバランサー "demo-lb" の「アクション」メニューから、
    「ポリシー」⇒「ポリシー登録/解除」をクリックします。
  • 「ポリシー登録/解除」画面で、セッション維持のポリシー情報とSorryServerポリシー情報を選択し、
    「設定」ボタンをクリックします。
項目
必須
設定値
内容
ロードバランサーポート
必須"80"ロードバランサーが受け付けるポート番号を入力してください。
設定するセッション維持ポリシー
選択"demo-session-policy"適宜選択してください。
設定するSorryServerポリシー
選択"demo-sorry-policy"適宜選択してください。
  • ロードバランサー "demo-lb" の状態が InService になれば、設定完了です。



メリット・効果

ロードバランサーサービスを利用した場合のメリット・効果は以下の通りです。

  • 複数台の仮想サーバによる可用性向上/性能向上



注意事項

  • 本パターンは2017年6月時点のK5(IaaS)で動作検証しています。

  • 負荷分散機能で証明書を利用する場合は、APIで証明書を登録してください。

  • ロードバランサーは、ロードバランサーが作成された時に生成される 1つの FQDN でのみアクセス可能です。
    生成時にロードバランサーに割り当てられたIPアドレスは、メンテナンスにより変更される可能性があります。

  • ロードバランサーの名前解決は、インターネットで提供されている K5 の DNS で行います。
    インターネットに接続していない環境では、ロードバランサーの名前解決は出来ません。

  • ロードバランサーの設定変更後に次の変更を行う場合は、
    サービスの状態が InService になってから次の変更を行ってください。

  • ロードバランサーは、1つのサブネットに対してグレードごとに以下の個数のIPアドレスが必要です。
    必要な個数のIPアドレスを確保できる構成にしてください。
    なお、以下の個数は、それぞれのグレードで必要な最大数です。
    ロードバランサーのメンテナンスの際に必要な個数も含まれています。

※グレードごとに必要なIPアドレス数
 - Standard:
4個
 - Middle:
8個
 - High:
12個

  • K5のロードバランサーサービスでは、L4層の負荷分散とL7層の負荷分散(http/httpsのみ)が可能です。
    ただし、L7層の負荷分散では、Cookieを使ったセッション維持のみ可能です。
    アクセス先のURLに含まれるドメイン名やパス等に応じて負荷分散条件を設定する負荷分散はできません。



その他

ロードバランサーで構成可能なリスナーパターン

ロードバランサーのリスナーでは、以下のように、バックエンドの仮想サーバ側は待ち受けするプロトコルとポート番号が1つである必要があります。
フロントのロードバランサー側では、複数のプロトコルとポート番号の組み合わせが可能です。

パターンフロントエンド (ロードバランサー側)バックエンド (仮想サーバ側)
プロトコル設定例プロトコル設定例
1HTTPHTTP (80/tcp)HTTPHTTP (8080/tcp)
HTTPSHTTPS (443/tcp)
2HTTPHTTP (80/tcp)HTTPHTTP (8080/tcp)
HTTPHTTP (81/tcp)
3HTTPSHTTPS (443/tcp)HTTPHTTP (8080/tcp)
HTTPSHTTPS (444/tcp)
4HTTPSHTTPS (443/tcp)HTTPSHTTPS (443/tcp)
HTTPSHTTPS (444/tcp)
5TCPTCP (440/tcp)TCPTCP (443/tcp)
SSLSSL (443/tcp)
6TCPTCP (440/tcp)TCPTCP (443/tcp)
TCPTCP (441/tcp)
7SSLSSL (443/tcp)TCPTCP (443/tcp)
SSLSSL (444/tcp)
8SSLSSL (443/tcp)SSLSSL (443/tcp)
SSLSSL (444/tcp)



関連資料

  • FUJITSU Cloud Service K5 マニュアル
    http://jp.fujitsu.com/solutions/cloud/k5/document/
    • サービスご紹介資料
    • IaaS 機能説明書
    • IaaS サービスポータルユーザーズガイド
    • IaaS APIユーザーズガイド
    • IaaS APIリファレンスマニュアル
    • IaaS HEATテンプレート解説書

(2017年6月検証)