4OSS/OpenStackでWeb/https(443)をロードバランスする / はじめの一歩

富士通が運用する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やロードバランサーのバージョンが異なるためネットワークやルーター、ロードバランサーの設定方法が異なります。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2016/01/aws-lb-52.png

構築方針

  • ロードバランサーは 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での操作が必要です。

 

使用するもの

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2018/09/openstack-1.jpg

 

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のネットワークなどの基本設定を行ないます。

 

Webサーバーの設定

https://www.mubit.co.jp/sub/products/cloud/img2/poweredBlue-logo-3.png

この例では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 サーバーへインストール&利用が出来ます。

B870-LBC1 (  Web サーバーNo1 )

 

B870-LBC2( Web サーバーNo2 )

 

ポイント

  • 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サーバー証明書をインストールします。

 Let’s Encryptのインストール&セットアップ方法

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からの操作

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 超簡単 Fujitsu Cloud Service for OSS (4OSS)を初期設定する

4OSS  リモートコンソールの利用設定

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSS上のサーバーへパスワードログインをする

4OSS  Ansibleでの操作

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Ansibleで4OSSのNetWork構築やサーバー設定を行なう

4OSS  メモリスワップの追加

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSのLinuxサーバーにmemory swap を設定する

4OSS  Webサーバーを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE 870 の構築

4OSS  SSLクライアント認証Webを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE Private CA の構築

4OSS  ワンタイムパスワード認証Webを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif Powered BLUE 870/OTPの構築

4OSS  Webをロードバランスする

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでWeb/https (443) をロードバランスする

4OSS  SSLクライアント認証&リバースプロキシ

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでクライアント認証後に既存Webへリバースプロキシ転送する

4OSS  ロードバランサ&SSLクライアント認証&リバースプロキシ

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 4OSSでロードバランサー配下でクライアント認証後に既存Webへリバースプロキシ転送する

4OSS 多要素認証&リバースプロキシ対応のWebを構築

https://www.mubit.co.jp/sub/products/ca/img2/arrow-finger.gif 多要素認証&リバースプロキシ対応のWebサーバーを構築

 

富士通マーケットプレース

Fujitsu MetaArc Marketplace / Fujitsu Cloud Service for OSS (4OSS)

Fujitsu Cloud Service for OSSのマーケットプレイス