富士通が運用するOpenStackのクラウド基盤「Fujitsu Cloud Service for OSS」略称 4OSS (旧名称 K5)を利用して、https/443 のロードバランスを行なう際の設定例です。一般的なOpenStackでも、同様の構成でロードバランサー/LBaaSとWebの運用が出来ます。
Client — ( 443 ) — ロードバランサ — ( 443 ) — Web Server
OpenStack/4OSSでのSSL通信はロードバランサー / LBaas v2 をスルーさせて、WebサーバーまでSSLの通信を行う場合の設定例です。Webサーバーの負荷分散や冗長構成での運用が出来ます。この設定は、4OSSで運用するゾーンは jp-east-3 / jp-west-3 に対応しています( OpenStack / Ocata )。それ以外のゾーンは、OpenStackやロードバランサーのバージョンが異なるためネットワークやルーター、ロードバランサーの設定方法が異なります。
構築方針
- ロードバランサーは OpenStack のLBaaS v2を利用
- 終端のWebサーバーまでの全経路でSSL通信
- ロードバランサー/LBaaS v2は SSL / TCP ( 443 )をスルーさせる設定
- ロードバランサー/LBaaS v2には、SSLサーバー証明書の登録は不要
- SSLのサーバー証明書は、Webサーバー側にインストール
- ロードバランサー/LBaaS v2とWebサーバーは同一ネットワークへ配置
- 設定はGUIから行なう
*ロードバランサー/LBaaS v2でSSLをターミネートさせる場合には、ロードバランサーにSSLサーバー証明書を登録します。ロードバランサーへのSSLサーバー証明書の登録は、APIでの操作が必要です。
使用するもの
- Fujitsu Cloud Service for OSS (4OSS)
- OpenStackのロードバランサー / LBaaS
- Powered BLUE Web サーバー 2台 ( B870 )
- SSLサーバー証明書
network構成例 (最終形)
- LAN 10.0.5.0 / 24
- ルーター / ゲートウェイ IP=10.0.5.1
- ロードバランサー IP=10.0.5.2 / IP=133.162.67.28 / LM-master-web.mubit.com
- Web No1 / B870-LBM1 IP=10.0.5.22 / IP=133.162.67.25 / B870-LBC1.mubit.com
- Web No2 / B870-LBM2 IP=10.0.5.27 / IP=133.162.67.30 / B870-LBC2.mubit.com
- 運用するゾーン east-3 or west-3
ロードバランサー1台とWebサーバー2台には、それぞれ固定IPも割り当てます。
設定&構築
今回は4OSSのGUIからの操作で構築します。尚OpenStack 標準のGUI / Horizonからの操作やAPI , Ansibleでの構築も可能です。
Networkの設定
OpenStack / 4OSSのネットワークなどの基本設定を行ないます。
- 4OSS/OpenStack上にNetworkなどを初期設定します
Webサーバーの設定
この例ではWebサーバーとしては、Powered BLUE Web サーバーを利用します。一般的なWebサーバーを利用することも出来ます。
4OSS/OpenStack上に2台のPowered BLUE Web サーバーをセットアップします。
- Web No1 / B870-LBM1 / B870-LBC1.mubit.com / IP=10.0.5.22 / IP=133.162.67.25
- Web No2 / B870-LBM2 / B870-LBC2.mubit.com / IP=10.0.5.27 / IP=133.162.67.30
WebサーバーへのグローバルIPのアサイン
- Web No1 / B870-LBM1 / B870-LBC1.mubit.com / IP=10.0.5.22 / IP=133.162.67.25
- Web No2 / B870-LBM2 / B870-LBC2.mubit.com / IP=10.0.5.27 / IP=133.162.67.30
Webサーバーの設定
それぞれのWebサーバーへホームページのデータを入れます。Powered BLUE サーバーは、ベースOSとして CentOS 7.x / RedHat 7.x (64bit) で動作します。CentOS / RedHat 対応のアプリケーションをインストール&運用することも出来ます。WordPress や Let’s Encrypt などは、フリープラグインにより簡単にPowered BLUE サーバーへインストール&利用が出来ます。
ポイント
- 2台のWebサーバーに、同一のSSLサーバー証明書を入れます
- SSLサーバー証明書は、自己証明書やLet’s Encrypt、パブリックなサーバー証明書を登録出来ます
自己証明書の場合
同一のSSLのサーバー証明書を作成します(1台目のhttpsサーバー)
- 「自己署名デジタル証明書の作成」 または「署名リクエストの作成」 で作成します
自己署名デジタル証明書の作成の場合
- 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします
パブリックなSSLサーバー証明書を利用の場合
- 署名リクエスト(CSR)で作成の場合
- 必要事項を記入して、「署名リクエストの作成」 ボタンを押します
- 作成された 「署名リクエスト」 ファイルを保存
- この「署名リクエスト」ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付
公的機関で発行された、SSLサーバー証明書を「インポート」します
サーバー証明書&秘密鍵のエクスポート(1台目のhttpsサーバー)
- 1台目のWebサーバーに登録されている、「サーバー証明書&秘密鍵」が含まれているssl-certificate.txtを「エクスポート」して、2台目のWebサーバーにインポートします
サーバー証明書&秘密鍵のインポート(2台目以降のhttpsサーバー)
- 1台目のWebサーバーから取り出した「証明書&秘密鍵」が含まれている「ssl-certificate.txt」を2台目以降のWebサーバーへインポート
- 1台目のサーバー証明書と秘密鍵のコピーが2台目にインストールされます
Let’s Encryptの場合
Let’s Encryptは、無償で利用できる公的なSSLサーバー証明書です。Powered BLUE 870 へはフリープラグインを利用して、1台目のWebサーバーへSSLサーバー証明書をインストールします。
2台目のWebサーバーへのSSLサーバー証明書のインストールは、上記の「パブリックなSSLサーバー証明書を利用の場合」と同様の操作方法で、1台目から「SSLサーバー証明書と秘密鍵」をエクスポート&2台目へ「SSLサーバー証明書と秘密鍵」をインストールします。
ロードバランサー ( LBaas v2) の作成
- ロードバランサ名の設定 (例 LB-master-1 IP=10.0.5.2 )
- ロードバランサのプロトコル選択(例 プロトコル TCP / ポート443 )
- 負荷分散するWebサーバーの設定
負荷分散設定
分散プロトコルの設定
- リスナー名 例 lb-https
- プロトコル HTTPS-HTTPS
- フロントエンドポート 443 (ロードバランサーの受信側ポート)
- 最大接続数 例 2000
負荷分散設定
- プール名 例 https-pool
- 分散アルゴリズム 例 ラウンドロビン
- セッション維持ポリシー 例 SOURCE_IP (httpsの場合には、この選択のみ可能)
- バックエンドプロトコル 例 HTTPS
- バックエンドポート 例 443
分散先のターゲットWebサーバーの指定
- 1台目 Webサーバー B870-LBM1 / 仮想Webサイト名 B870-LBC1 ( IP=10.0.5.22 )
- 2台目 Webサーバー B870-LBM2 / 仮想Webサイト名 B870-LBC2 ( IP=10.0.5.27 )
ヘルスモニタの設定
- チェック方式 例 HTTPS
ヘルスモニターのチェック方式には、 「TCP」または「HTTPS」を指定する必要があります。
ロードバランサーへグローバルIPアドレスの設定
- ロードバランサー IP=10.0.5.2 / IP=133.162.67.28 / LM-master-web.mubit.com
ロードバランサー NUAGE:VIP IP=10.0.5.2 へグローバル IP=133.162.67.28 をアサインします
グーローバルIPのアサイン状況
- ロードバランサー IP=10.0.5.2 / IP=133.162.67.28 / LM-master-web.mubit.com
- Web No1 / B870-LBM1 / IP=10.0.5.22 / IP=133.162.67.25 / B870-LBC1.mubit.com
- Web No2 / B870-LBM2 / IP=10.0.5.27 / IP=133.162.67.30 / B870-LBC2.mubit.com
ロードバランサーにグローバルIPをアサインしても、ロードバランサーの名称は空白のままです。
DNSへの登録
- IP=133.162.67.28 / LM-master-web.mubit.com (ロードバランサー名)
2台の Web Server へのアクセスは、ロードバランサー名のAレコードで行います
Webサーバー側の設定
1台目 B870-LBC1.mubit.com の設定
ロードバランサーにアサインのサーバーのAレコード名 LM-master-web.mubit.comでアクセス出来るように 1台目の B870-LBC1.mubit.com に
- ウェブサーバーの別名 LM-master-web.mubit.com を指定
- URLのリライトを無効設定 ( URLが書き換わらないようにします )
2台目 B870-LBC2.mubit.com の設定
ロードバランサーにアサインのサーバーのAレコード名 LM-master-web.mubit.comでアクセス出来るように 2台目の B870-LBC2.mubit.com に
- ウェブサーバーの別名 LM-master-web.mubit.com を指定
- URLのリライトを無効設定 ( URLが書き換わらないようにします )
Aレコードでのアクセス
https://LM-master-web.mubit.com/
1台目 B870-LBC1 へ ( URLは書き換わっていません )
https://LM-master-web.mubit.com/
2台目 B870-LBC2 へ ( URLは書き換わっていません )
デモサーバー
Powered BLUEの デモサーバー
4OSS GUIからの操作
超簡単 Fujitsu Cloud Service for OSS (4OSS)を初期設定する
4OSS リモートコンソールの利用設定
4OSS Ansibleでの操作
Ansibleで4OSSのNetWork構築やサーバー設定を行なう
4OSS メモリスワップの追加
4OSSのLinuxサーバーにmemory swap を設定する
4OSS Webサーバーを構築
4OSS SSLクライアント認証Webを構築
4OSS ワンタイムパスワード認証Webを構築
4OSS Webをロードバランスする
4OSSでWeb/https (443) をロードバランスする
4OSS SSLクライアント認証&リバースプロキシ
4OSSでクライアント認証後に既存Webへリバースプロキシ転送する
4OSS ロードバランサ&SSLクライアント認証&リバースプロキシ
4OSSでロードバランサー配下でクライアント認証後に既存Webへリバースプロキシ転送する
4OSS 多要素認証&リバースプロキシ対応のWebを構築
富士通マーケットプレース
Fujitsu MetaArc Marketplace / Fujitsu Cloud Service for OSS (4OSS)
Fujitsu Cloud Service for OSSのマーケットプレイス