IBM Cloud CISの動作確認(4) -GLB編-

##目的
IBMCloud InternetServicesを活用して、CISを経由したWebサーバへのロードバランスを試す。
今回は、マルチAZ環境でCISのグローバルロードバランサ(GLB)の機能を利用する。
最終的にはTOK05およびTOK04配下にいるサーバまでアクセスできることを確認する。
<font color="Red">CISは30日間無料でお試しできる</font>ので是非やってみましょう

六部に分けて記載する予定です。

* 初期導入編:[IBM Cloud CISの動作確認(1) -初期導入編-](https://qiita.com/khoshina/items/e9b397f498330faefdd9)
* 証明書設定編:[IBM Cloud CISの動作確認(2) -証明書編-](https://qiita.com/khoshina/items/d29a936d72930f34fcf5)
* 動作確認編:[IBM Cloud CISの動作確認(3) -動作確認編-](https://qiita.com/khoshina/items/1dc8703c9830360bc250)
* GLB編:（**本ページ**)
* cache編：[IBM Cloud CISの動作確認(5) -cache編-](https://qiita.com/khoshina/items/68a221388c5a676058ed)
* セキュリティ編:[IBM Cloud CISの動作確認(6) -Security編-](https://qiita.com/khoshina/items/ca8b01d8a0b05734817b)

##環境
* ローカル端末：macOS Catalina 10.15.6 1台
* プラットフォーム:IBMCloud
    * CDNサービス：IBM Cloud Internet Services 1サービス(Freeプラン)
    * ロードバランシングサービス:IBM Cloud Load Balancer 1サービス(Public to Private)
        * TOK04サーバ:CentOS 7.7.1908(Virtual Server for Classic) 2台
    * TOK05サーバ:CentOS 7.7.1908(Virtual Server for Classic) 1台

###概要構成図
**TOK05/TOK04**
![kou検証_日々更新.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/72b31d93-bac6-7390-36bd-a3f65efa205b.png)



###通信経路
**TOK05**
Client -> CIS Edge -> Orgin(kou-cent01) -> CIS Edge -> Client

**TOK04**
Client -> CIS Edge -> origin(kou-iclb) -> 分散先Server -> kou-iclb -> CIS Edge -> Client

1.インターネット端末より「www.m365.work」へアクセスする。 -> https://www.m365.work
2.CIS NSサーバからアクセス先アドレスを取得する。
3.インターネット端末とCIS Edge間でTLS(SSL)接続を確立する。
4.リクエストコンテンツのキャッシュがない場合、CISEdgeとオリジンサーバ間でTLS(SSL)接続を確立する。
5.OriginサーバがコンテンツをCISEdgeに返す。
6.CISEdgeがコンテンツをリクエスト元のインターネット端末に返す。

##分散対象プールの作成
`IBM Cloudポータルでの作業`

分散対象のサーバプールを作成する。
今回は、TOK05のサーバとTOK04のICLBを指定する。
**信頼性** -> **グローバル・ロードバランサー** -> **プールの作成**を選択する
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/d92ad8da-bc6b-053a-d46c-1ba7c0d9a5d8.png)

* 名前:**プール名を任意で設定**
* ヘルスチェック:**ヘルスチェック先のオリジンコンテンツパスを設定**
* 正常な起点のしきい値:**この値以上であればプールを利用可能とする値を設定**
* ヘルスチェック地域:**ヘルスチェック元の地域を設定**
* 通知Eメール:**プール内オリジンがヘルスチェックに失敗および成功したときにメール通知するアドレス**
* 起点：**プールに含めるオリジンサーバの情報を設定**
* 重み:**プール内でアクセス分散させる場合の比率を設定**(オリジンサーバのリソースに隔たりがある場合などにつかう)

![Cloud_Internet_Services_-_IBM_Cloud-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/dfbd8e68-89a3-e315-a144-2c22c508cb98.png)

##ヘルスチェックの変更
`IBM Cloudポータルでの作業`

**信頼性** -> **グローバル・ロードバランサー** -> **ヘルス・チェックの「・・・」**を選択し、**編集**を選択する
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/904dc1c7-3be4-f8c5-75f9-d85375f11cc7.png)

必要に応じてヘルチェックパスなどをカスタムできる。
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/7b7b9548-4093-d1d8-52b2-249e023ec29b.png)

##GLBの作成
`IBM Cloudポータルでの作業`
ここまででGLBの作成準備ができたので、実際に作成する。
**信頼性** -> **グローバル・ロードバランサー** -> **ロード・バランサーの作成**を選択する。
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/52acc733-c3d7-51a7-68f8-e2b588953fee.png)

バランサーホスト名は、**GLB経由でアクセスさせたいFQDNになるので証明書もこの名前で発行しておく必要がある。**
もちろん<font color=red>オリジン側への証明書もこの名前で発行して登録しておくこと。</font>
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/7b91da7f-9004-cea8-9607-ed916c563cab.png)

先程作成したプールを追加する
**プールの追加** -> **追加**を選択し、**作成**を選択する。
![Cloud_Internet_Services_-_IBM_Cloud-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/81c63a06-4402-4fc3-29de-31f318a08bdd.png)


ここまでで、グローバルロードバランサおよびプールが正常になっているか確認する。
![Cloud_Internet_Services_-_IBM_Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/a270148a-b237-5266-a59a-f1a36f52c5ef.png)

正常になっていない場合、オリジン間との接続性や、証明書の問題が考えられるので対処する。
下記はエラー時のサンプル
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3730333034332f37346135313338622d643337362d653633372d303032312d3566346565366536366165302e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/015e14a6-ee96-aecd-d1c9-c7005f2e58ba.png)


##アクセス確認
`ローカル端末での作業`

TOK05/TOK04間で綺麗に分散されている。

```
% while true; do curl -w "gettime:%{time_total} " https://glb.m365.work; done
gettime:0.522087 TOK05-SV01
gettime:0.609117 TOK04-SV12
gettime:0.526435 TOK04-SV11
gettime:0.517818 TOK05-SV01
gettime:0.609117 TOK04-SV12
gettime:0.526435 TOK04-SV11
gettime:0.475923 TOK05-SV01
gettime:0.609117 TOK04-SV12
gettime:0.526435 TOK04-SV11
gettime:0.394231 TOK05-SV01
gettime:0.609117 TOK04-SV12
gettime:0.526435 TOK04-SV11
```

##続きはこちら
[IBM Cloud CISの動作確認(5) -cache編-](https://qiita.com/khoshina/items/68a221388c5a676058ed)