cloudgarage

CloudGarage 早速いじってみた - Part.08 ロードバランサー

はじめに

こんにちは、 @FoxBoxsnet です。

前回は、インターネット速度を取り上げてました。

今回はロードバランサーを少し使ってみます。

目次

公式ページ

インスタンスを立てる

インスタンス追加

左の、『インスタンス追加』から以下のように作成

  • SSH Key は各自の物を指定
  • 2台作成 (lamp01, lamp02)

今回は、 PHPを若干使うので、 LAMP アプリケーション を使った。

screenshot-2017-08-16-22-03-59.png

インスタンスにファイルを置く

デフォルトファイルの /var/www/html/index.html があるので削除して index.php を作成する。

bash
root@lamp01:~# rm /var/www/html/index.html
root@lamp01:~# vim /var/www/html/index.php

index.php ファイルは下記に記載しといた

index.php
<?php
function h($str) {
    echo htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
}
?>
<!DOCTYPE html>
<body>
    <p>server_address:  <?php h($_SERVER['SERVER_ADDR']) ?></p>
</body>
</html>

直接アクセスしてみる。

server_address: としてローカルのサーバーIPを返すようになっている

lamp01

screenshot-2017-08-16-23-21-20.png

lamp02

screenshot-2017-08-16-23-21-52.png

ロードバランサー

ロードバランサーについてFAQに記載されていたので追記しとく。

ロードバランサーは利用できますか
標準で1ロードバランサーを用意しており、コントロールパネルから設定可能です。
設定可能なバランシング設定は次の通りです。
・バランシグ可能なポート(1つのみ選択)
20、21、25、80、443、587、8080
・バランシング方法(3つより選択)
(1)ラウンドロビン:均等に振分け
(2)リーストコネクション:コネクションが少ない順に振分け
(3)Source IP:クライアント送信元IPにより振分け
・プロトコル(1つのみ選択可能)
http、https、tcp

出典: インスタンス・オプションについて | FAQ | CloudGarage

ロードバランサーの作成

ロードバランサーを追加する

ロードバランサー => ロードバランサーを追加する より作成
screenshot-2017-08-16-22-45-07.png

今回は下記の設定で作成した

  • ロードバランサー名: lb-01
  • バランシング設定
    • バランシング元ポート: 80
    • バランシング先ポート: 80
    • バランシング方法: ラウンドロビン
    • プロトコル: HTTP
  • ヘルスモニター設定
    • プロトコル: HTTP
    • チェック間隔: 6
    • URL: /
    • HTTPステータス: 200

screenshot-2017-08-16-22-49-04.png

ロードバランサー設定

作成したロードバランサーに 接続インスタンス をしないと使用できないのでする。

  • ロードバランサー名をクリックする
    screenshot-2017-08-16-22-57-45.png

  • 接続インスタンス 右の 鉛筆をクリック
    screenshot-2017-08-16-23-00-29.png

  • インスタンスを選択して 更新 をクリック
    screenshot-2017-08-16-23-09-06.png

  • 設定されるとこのようになる
    screenshot-2017-08-16-23-13-43.png

テスト

バーチャルIP に curl で 10,000回アクセスしてみる
screenshot-2017-08-16-23-13-43.png

<バーチャルIP> は各自置き換えるように

bash
#!/bin/bash

declare -i i=1

while [[ $i -lt 10000 ]]
do
  echo "$i/10000: `curl -sfSL <バーチャルIP> | grep server_address`" >> lbtmp.log
  i=$((i+1))
done

結果

  • 生データ
    2017-08-16 (9).png

  • 加工
    2017-08-16 (10).png

結果

  • 有効: 9999
  • 192.168.0.31: 4999
  • 192.168.0.32: 5000

でした。
しっかり ラウンドロビンされます。

まとめ

簡単に ロードバランサー を追加・使用できた。
(自分で corosync + pacemaker + pcs で組んだ時に苦しみは何だったのかw

開発環境といえど、落とせない物もあるだろうからその時に使用すると良さそうです。
UIもシンプルなので、あまり迷いませんでした。