IBM Cloud VPC でシンプルなウェブサイト構築を体験する - 6. ロード・バランサー作成と動作確認

この記事は、[IBM Cloud VPCでシンプルなウェブサイト構築を体験する](https://qiita.com/kenichit/items/796b0cff7d09a0f517f6)の構築ステップを説明しています。

既に作成したwebサーバーにアクセスできるようにするため、ロード・バランサーを作成します。さらに、ドメイン・ネーム登録サービスの設定を変更して、インターネットでアクセス可能なドメイン名を設定します。
![dialog-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/45dd8312-7445-1b5f-8017-789a7647df34.png)

##ステップ6-1
「VPCインフラストラクチャー」>「ネットワーク」>「ロード・バランサー」をクリックします。
画面右側の「作成」ボタンをクリックします。
![lb-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/a011e8eb-1cd3-8ace-6ef0-a15aa726bdad.png)

##ステップ6-2
パラメーター・シートの「ロード・バランサー」のパラメーターを入力します。
![lb-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/72154e38-e376-9e19-a918-0862c6042756.png)

##ステップ6-3
サブネットにチェックを入れて選択します。
![subnet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/2222dc68-a2d9-4bb5-a870-e72ef82f8979.png)

##ステップ6-4
「新規プール」をクリックし、パラメーター・シートの「プール:名前」のパラメーターを入力し「保存」ボタンをクリックします。
![lb-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/111fcfc2-8fbc-e130-dc51-131952c1084a.png)

##ステップ6-5
プールができたら、プール名の右側にある「接続」をクリックします。
![lb-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/872e9bc2-2f39-1050-ddf9-105f01274b71.png)

##ステップ6-6
作成済みのwebサーバーを追加して、「保存」ボタンをクリックします。
![lb-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/81a0ac0b-6908-7459-14ae-9e4e9302886b.png)

##ステップ6-7
フロントエンド・リスナーを追加するため、「新規リスナー」をクリックします。
![lb-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/4bde2a47-e6ed-6b91-9f30-393a38e8362a.png)

##ステップ6-8
パラメーター・シートの「フロントエンド・リスナー」のパラメーターを入力し「保存」ボタンをクリックします。
![lb-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/2bff781d-a351-6efd-88fd-cabd3b247fc0.png)

##ステップ6-9
「セキュリティ・グループ」の選択では、「VPCデフォルト」の行のチェックを外し、「5.セキュリティー・グループの作成」で作成したロード・バランサー用セキュリティー・グループにチェックを入れます。
![lb-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/05e58a93-bf2e-9393-bce3-22f9d915f77e.png)

##ステップ6-10
入力が完了したら、画面右側の「ロード・バランサーの作成」ボタンをクリックします。
![lb-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/bb586ae8-053a-8239-fb85-6a36cc4c0f46.png)
![lb-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/9f4f2861-3a79-57f8-953e-c981bb350839.png)

作成中になります。作成されるまで数分程度かかります。待っている間にホスト名とIPアドレスについて調べます。
作成したロード・バランサーのホスト名(スクリーンショットでは0aから始まるホスト名の部分)をコピーし、nslookupコマンドでIPアドレスを調べます。これまでのステップでロード・バランサーを作成すると2つのIPアドレスが表示されます。ホスト名が有効になるまで数分かかる場合があります。IPアドレスを次のステップで利用します。

```shell_session:実行例
$ nslookup 0a（中略）-jp-tok.lb.appdomain.cloud

Non-authoritative answer:
Name:	0a(中略)-jp-tok.lb.appdomain.cloud
Address: (IPアドレス)
Name:	0a(中略)-jp-tok.lb.appdomain.cloud
Address: (IPアドレス)
```

ロード・バランサーがアクティブになります。
![lb-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/a3509849-26c3-df59-92db-e0a0d84b495f.png)

##ステップ6-11
インターネットで有効なドメイン名でアクセスするため、所有するドメインへAレコードを追加します。

IBM Cloudコンソールで画面左上の三本線(ハンバーガーメニュー)をクリックし、「クラシック・インフラストラクチャー」>「ネットワーク」>「DNS」>「前方ゾーン」をクリックします。
![step6111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/a8e13e38-cca5-1f5f-0f87-81b13b9cb574.png)

画面中央にドメインが表示されます。今回利用するドメイン名をクリックします。
スクリーンショットでは、赤枠で囲われたドメインを使いますが、名前を伏せています。
![step611-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/07891abb-7e77-761a-ba4a-c128c08d18e3.png)

「Add New Record」の部分にパラメーター・シートの「ホスト名」とIPアドレスを入力し「Add Record」ボタンをクリックして、Aレコードを追加します。ステップ6-10で2つのIPアドレスが表示されるため、2つのAレコード追加となります。

* 「Host」の項目には、パラメーター・シートの「ホスト名」の値を入力します。
* 「Points to」の項目には、ステップ6-10で調べたIPアドレスを入力します。

![step6113.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/a884a660-6d77-90cb-a6dd-18ed058b8a40.png)

IPアドレスは2つあるので、以下のような結果になります。実際にDNSに反映されるまで数分かかることがあります。
これで、_www\.\(今回利用しているドメイン名\)_ がURL用ドメイン名として利用できるようになります。
![step611-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/58d7d941-973d-c8c1-80e8-71df44cc46fd.png)

##ステップ6-12
ドメインとSSL証明書が正しく動作しているか検証するため、わざと警告が出るテストをします。

ブラウザーで https://(ロード・バランサーのホスト名)/helloworld.html にアクセスすると、以下のような警告が出ます。
![step611-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/df7acdcd-10a2-0c7a-c222-d29fbb2a27e6.png)

「詳細情報」ボタンを押すと、以下の理由が表示されます。
アクセスしているURL中のドメイン名とSSL証明書に書かれているドメイン名が異なるため、信頼できないウェブサイトに接続を試みているとブラウザーが判断しています。
![step611-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/d8a9ef37-2e0f-0c8a-f2c7-529a914762b6.png)

警告とその理由を確認しました。次の「動作確認」では、ブラウザーでアクセスするURL中のドメイン名とSSL証明書のドメイン名が一致している、正常系の動作確認をします。

#動作確認
構築したウェブサイトが動作しているか確認します。
ブラウザーで新しいウィンドウまたはタブを開き、以下のURLでアクセスします。

```
https://(ステップ6-11で登録したホスト名).(URL用ドメイン名)/helloworld.html
```

Hello World ページが表示されます。
画面の「リロード」ボタンまたはブラウザーの再読込ボタンを押すと画面が切り替わります。
![web1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/7a5930b8-6fa6-ddf7-cabf-d3eccd401f3d.png)
ロード・バランサーがラウンドロビンでアクセスを割り振っていることを確認できます。
![web2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922552/886aa677-d943-5312-285d-2884a9514363.png)

以上、動作確認ができたらシンプルなウェブサイトの構築完了です。