[GoogleComputeEngine]GCEでロードバランサーを作って見るテスト

こんにちは。
**Google Cloud Platform(2) Advent Calendar 2016 6日目**を担当するラチェです。

今回はGCPでのL7ロードバランサーの構築の方法を書きたいと思います。

# 前提条件
事前にhttpdなどを導入済みのカスタムイメージの作成を行なっておいてください。[^gcp_image]

また、この記事では、rsyncでの同期などは抜きにしてGCEでロードバランサーを立てることだけを目的としています。

# 構築方法

<img width="932" alt="1.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/c5a1babe-ce67-7595-49ba-e0b53fcd3992.png">

まず、GCEコンソールのインスタンステンプレートにて、テンプレートの作成を行います。
今回は事前に用意しているインスタンステンプレートを用いて作成しています。

<img width="1280" alt="2.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/9d534985-8067-5fbf-8270-8d651e66c1b2.png">

インスタンスグループの作成を行います。
この時、インスタンステンプレートには先程指定したインスタンステンプレートを選択してください。
また、シングルゾーン、マルチゾーンの設定ですが、
マルチゾーンの場合は、複数リージョンをまたいだロードバランシング構成が可能となります。

<img width="1280" alt="スクリーンショット 2016-11-19 13.11.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/462120cd-0cf1-36d8-03b5-44e147e15f28.png">

下にスクロールし、立ち上げるインスタンスの数、ヘルスチェック、自動スケーリング設定などをします。
設定完了後、VMインスタンスを覗いてみてください。


<img width="1023" alt="スクリーンショット 2016-11-19 13.11.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/063b8604-26a6-d67b-1ab0-b1f410c9cdb5.png">

こういった感じで複数インスタンスが立ち上がることが確認できると思います。


## ロードバランサの構成

インスタンスが立ち上がったことを確認したら、メニューから、ネットワーキング→負荷分散を選択してください。

<img width="321" alt="スクリーンショット 2016-11-19 13.12.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/a6a1719f-7b7b-119f-f708-8262e0a8406a.png">
<img width="1280" alt="スクリーンショット 2016-11-19 13.12.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/6461d0ec-f932-7a84-e1ad-5fd02c053a0b.png">

ロードバランサーを作成ボタンを押します。

<img width="1279" alt="スクリーンショット 2016-11-19 13.13.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/29ffe792-766e-a318-866e-f9e0f522bccf.png">

今回はL7LBの作成なのでHTTP（S）負荷分散をクリックします。

<img width="1278" alt="スクリーンショット 2016-11-19 13.13.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/fcdaccf8-2df4-7460-c63b-8058cc205d90.png">

### バックエンドの設定

<img width="467" alt="スクリーンショット 2016-11-19 13.14.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/f59bac9d-8b48-a65f-9a59-6b51f4d772dd.png">

バックエンドサービス名：重複した名前は入力不可能なので、かぶらないように名前をつけてあげてください
新しいバックエンド→インスタンスグループ：先ほど作成を行なったインスタンスグループを指定してください。

<img width="470" alt="スクリーンショット 2016-11-19 13.14.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/abbdf14c-b57a-08e8-3d0d-510bbf32b636.png">

ヘルスチェック：タイムアウト、以上しきい値、チェック間隔を適宜修正してください。
間隔を短くすると各VMに負荷がかかります。長くすると、LBの異常検知が遅くなります。
ここらへんは、もう感覚でどうぞ・・・


### ホストとパスのルール

<img width="1025" alt="スクリーンショット 2016-11-19 13.15.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/b9bee53f-cb45-9069-4d0d-d8ffa38d2aa8.png">

次の画面ではホスト及びパスごとに振り分けるサーバを選択できます。
今回、インスタンスグループを一つしか追加してないので何も設定せずに終了します。
グループを複数作成することにより、パスにより、繋げるインスタンスグループを分けたり等ができます。


### フロントエンドの設定

<img width="1027" alt="スクリーンショット 2016-11-19 13.15.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/f04f592c-6be8-6fdb-9ce7-2f29576db417.png">

こちらもスルーで。
SSLとか使う場合はプロトコルにHTTPSを指定して証明書を設定してあげればいけると思います。

<img width="1026" alt="スクリーンショット 2016-11-19 13.15.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/e09fc749-df5c-4467-926d-a1fd3e0a1e68.png">

最後に設定を確認して完了を押します。

<img width="1026" alt="スクリーンショット 2016-11-19 13.16.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/ea2e0941-e489-5356-4e3e-38aaa3b1b935.png">

新しいLBができているか確認。

<img width="1004" alt="スクリーンショット 2016-11-19 13.17.02.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/62c89dc9-fc66-6e0f-13c2-d9879e1e79f8.png">

詳細を確認し、IP:ポートのipにアクセスすれば、自動的にgoogle様がロードバランシングしてくれます。

# 注意

ロードバランサーの構成を作るにあたってロードバランサーの利用料金＋作成したインスタンスの料金がかかるので注意です。
https://cloud.google.com/products/calculator/

ご利用は計画的に。。。

[^gcp_image]: http://qiita.com/rache/items/cc70337b77f09215e791 にて作り方の詳細を書いています。