外部負荷分散構成#
本構成はFJcloud-O 東日本/西日本リージョン3向けとなります。
要求事項#
オンプレ同様、クラウドでもシステムの可用性を考慮した設計を行う必要があります。
本パターンでは以下の要求事項に対応します。
- FJcloud-Oの外部負荷分散機能を使用し、サービスの可用性や性能を考慮した構成を実現したい
対応するデザインパターン概要#
FJcloud-Oでは、サービス提供の機会損失を防ぎ、可用性や性能を向上させる負荷分散機能として、ロードバランサーサービスを提供しています。
ロードバランサーサービスによる負荷分散の構成としては、以下の2構成が利用可能です。
構成 | 説明 |
---|---|
外部負荷分散構成 | インターネットからのアクセスを、外部ネットワークに接続された内部ネットワークの仮想サーバを経由し負荷分散します。 |
内部負荷分散構成 | 内部ネットワークの仮想サーバから、内部ネットワークの仮想サーバへ通信を負荷分散します。 この構成では、IPSecVPNやDEX等のセキュアな接続を併用すると、社内イントラネット環境から負荷分散構成を利用したシステムが利用可能です。 |
本パターンでは、ロードバランサーサービスを使用した外部負荷分散構成について記載します。
構造 (イメージ図)#
実装サンプル#
外部負荷分散に対応した構成を配備する手順を示します。
1.仮想ネットワーク作成#
- ここでは仮想ネットワークを作成します。
詳細は、インターネット接続パターン に記載の内容を参照してください。 - IaaSポータル画面から「ネットワーク>仮想ネットワーク」を選択し、「仮想ネットワーク一覧」画面で、画面右上の「+」ボタンをクリックし、以下の要領で項目を入力します。
(1) 仮想ネットワーク#
仮想ネットワーク名 | 管理状態 |
---|---|
east3-CDP-NW40 | UP |
(2) サブネット#
サブネット作成 | サブネット名 | 仮想ネットワークアドレス | ゲートウェイ | ゲートウェイIP |
---|---|---|---|---|
あり | east3-CDP-SN40 | 192.168.40.0/24 | あり | 192.168.40.1 |
(3) サブネット詳細#
DHCP | IPアドレス割当プール | DNSサーバ | 追加のルート設定 Destination |
追加のルート設定 Nexthop |
備考 |
---|---|---|---|---|---|
有効 | - | 8.8.8.8 | - | - | DNSサーバは必要に応じて設定 |
2.仮想ルータ作成#
- ここでは仮想ルータを作成します。詳細は、インターネット接続パターン に記載の内容を参照してください。
- IaaSポータル画面から「ネットワーク>仮想ルータ」を選択し、「仮想ルータ一覧」画面で、画面右上の「+」ボタンをクリックし、以下の要領で項目を入力します。
仮想ルータ名 | サブネット | IPアドレス | 外部仮想ネットワーク |
---|---|---|---|
east3-CDP-RT40 | east3-CDP-SN40 | 192.168.40.1 | fip-net |
3.セキュリティグループ設定#
- ここではセキュリティグループを作成します。詳細は、セキュリティグループ活用 に記載の内容を参照してください。
- IaaSポータル画面から「ネットワーク>セキュリティーグループ」を選択し、「セキュリティーグループ一覧」画面で、画面右上の「+」ボタンをクリックします。
(1)セキュリティグループ名#
ロードバランサーは、利用者がセキュリティグループを設定することができません。
ここでは仮想サーバに設定するセキュリティグループを作成します。
セキュリティグループ名 |
---|
SG-40 |
(2) ルール追加#
ロードバランサ―からのアクセス許可は、ロードバランサ―と仮想サーバの所属するサブネットのCIDRでしか指定できません。
その他、ロードバランサー以外に許可したい通信に応じて適宜設定してください。
ルール | 方向 | オープンポート | ポート | 接続先 | CIDR |
---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 81 | CIDR | 192.168.40.0/24 |
- Webサーバで待ち受けするポート番号は、アクセス制御の多重化 の観点でロードバランサーが待ち受けするポート番号とは別のポート番号にすることを推奨します。本設定では、"81"で設定しています。
4.仮想サーバ作成#
-
ここでは仮想サーバを作成します。詳細は、インターネット接続パターン に記載の内容を参照してください。
-
IaaSポータル画面から「コンピュート>仮想サーバ」を選択し、「仮想サーバ一覧」画面で、画面右上の「+」ボタンをクリックし、以下の要領で項目を入力します。
(1)仮想サーバ#
仮想サーバ名 | 仮想サーバタイプ | 仮想サーバのブートソース | イメージ | デバイスサイズ (GB) |
デバイス名 |
---|---|---|---|---|---|
east3-CDP-SV04 | P3-1 | イメージ | パブリックイメージ [Hourly] Red Hat Enterprise Linux 8.x 64bit (English) |
40 | /dev/vda |
east3-CDP-SV05 | P3-1 | イメージ | パブリックイメージ [Hourly] Red Hat Enterprise Linux 8.x 64bit (English) |
40 | /dev/vda |
(2) 仮想ネットワーク#
仮想サーバ名 | 選択済み仮想ネットワーク |
---|---|
east3-CDP-SV04 | east3-CDP-NW40 |
east3-CDP-SV05 | east3-CDP-NW40 |
(3) アクセスとセキュリティ#
仮想サーバ名 | キーペア | セキュリティグループ |
---|---|---|
east3-CDP-SV04 | (キーペア を選択) | SG_40 |
east3-CDP-SV05 | (キーペア を選択) | SG_40 |
5.ロードバランサー作成#
- ここではロードバランサーを作成します。IaaSポータル画面から「ロードバランサー」を選択し、「ロードバランサー一覧」画面で、画面右上の「+」ボタンをクリック。
以下の項目を入力します。
(1)ロードバランサ―#
ロードバランサ―名 | 説明 | 管理状態 | プライベートIPアドレス | サブネット |
---|---|---|---|---|
CDP-LB01 | - | Up | 192.168.40.2 | east3-CDP-SN40 |
(2)負荷分散設定#
- 「ロードバランサー一覧」画面で、作成したロードバランサーの「アクション>負荷分散設定」をクリック。以下の項目を入力します。
- 分散情報(1/2)
リスナー名 | 説明 | 管理状態 | プロトコル | フロントエンドポート | 最大接続数 | SSL証明書URL |
---|---|---|---|---|---|---|
CDP-LB-listener | - | Up | HTTP-HTTP | 80 | 2000 | - |
- 分散情報(2/2)
プール名 | 説明 | 負荷分散アルゴリズム | セッション維持ポリシー | バックエンドプロトコル | バックエンドポート |
---|---|---|---|---|---|
CDP-LB01-pool | - | ROUND-ROBIN | HTTP-COOKIE | HTTP | 81 |
- サーバ選択
仮想サーバ名 | ポート |
---|---|
「CDP-SV04」をチェック | 仮想サーバとロードバランサーの所属するサブネットのポートを選択。 正しく選択しているか、ポート選択後に「プライベートIPアドレス」欄で確認してください。 |
「CDP-SV05」をチェック | 同上 |
- ヘルスモニター
チェック方式 | 管理状態 | チェック間隔(秒) | タイムアウト(秒) | 異常検出しきい値(回) | HTTPメソッド | チェックパス | 想定する応答コード |
---|---|---|---|---|---|---|---|
HTTP | Up | 60 | 30 | 5 | GET | - | 200 |
Note
ロードバランサー作成後、IaaSポータル画面から「ネットワーク>仮想ネットワーク」を選択し、「仮想ネットワーク一覧」画面で、該当仮想ネットワークを選択後の「仮想ネットワーク詳細」画面の「ポート」項でロードバランサーのポートを参照すると、「状態」「管理状態」がDownと表示されますが、動作に影響はありません。
6.ファイアーウォール作成#
- ここではファイアーウォールを作成します。
(1)ポリシー#
- IaaSポータル画面から「ネットワーク>ファイアーウォール」を選択し、「ファイアーウォール」画面で、画面右上の「ポリシー一覧」ボタンをクリックします。
- 「ファイアーウォールポリシー一覧」画面で、画面右上の「+」ボタンをクリック。以下の項目を入力します。
ロードバランサ―名 |
---|
CDP-LB01 |
(2)ルール#
- IaaSポータル画面から「ネットワーク>ファイアーウォール」を選択し、「ファイアーウォール」画面で、画面右上の「ルール一覧」ボタンをクリックをクリック。
- 「ファイアーウォールルール一覧」画面で、画面右上の「+」ボタンをクリック。以下の項目を入力します。
- 送信元IPアドレスは、アクセスを許可するクライアント側のグローバルIPアドレスを入力してください。
ルール名 | allow/deny | プロトコル | 送信元IPアドレス | 送信元ポート | 宛先IPアドレス | 宛先ポート |
---|---|---|---|---|---|---|
TCP‗RT40_IN_allow | allow | tcp | XXX.XXX.XXX.XXX | - | 192.168.40.2 | 80 |
(3)ポリシーにルールを挿入#
- 設定項目(json)
項目 | 設定値例 | 内容 |
---|---|---|
$FIREWALL_POLICY_ID | "a0c1e11c-08e9-42c5-8e16-aaa77b49a640" | ファイアーウォールポリシーのID 「ファイアーウォールポリシー詳細」画面でポリシーIDを確認 |
$FIREWALL_RULE_ID | "a901a239-8dc0-4684-8168-da7cdedccbea" | ファイアーウォールルールのID 「ファイアーウォールルール詳細」画面でルールIDを確認 |
- 実行API
curl -Ss $NETWORK/v2.0/fw/firewall_policies/$FIREWALL_POLICY_ID/insert_rule -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"firewall_rule_id": "'$FIREWALL_RULE_ID'" , "insert_after": "", "insert_before": "" }' | jq .
(4)ファイアーウォール#
- IaaSポータル画面から「ネットワーク>ファイアーウォール」を選択し、「ファイアーウォール」画面で、画面右上の「+」ボタンをクリック。以下の項目を入力します。
ファイアーウォール名 | ポリシー名 | 仮想ルータ名 |
---|---|---|
FW_RT40 | policy_RT40 | east3-CDP-RT40 |
7.グローバルIP確保#
- ここではグローバルIPを確保し、割り当てをします。
(1)グローバルIP確保#
- IaaSポータル画面から「ネットワーク>グローバルIP」を選択し、「グローバルIP一覧」画面で、画面右上の「+」ボタンをクリック。以下の項目を選択します。
グローバルIPプール |
---|
fip-net |
(2)グローバルIP割り当て#
- IaaSポータル画面から「ネットワーク>グローバルIP」を選択し、「グローバルIP一覧」画面で、「グローバルIP確保」で確保したグローバルIPアドレスでアクション>割当を選択します。
グローバルIPアドレス割当ポート |
---|
ロードバランサーのプライベートIP(192.168.40.2)を名称に含むポートを選択 |
メリット・効果#
ロードバランサーサービスを利用した場合のメリット・効果は以下の通りです。
- 複数台の仮想サーバによる可用性向上/性能向上
注意事項#
- 本パターンは2019年2月時点のFJcloud-O 東日本/西日本リージョン3にて動作検証しています。