さくらのクラウドでロードバランサ CentOS7

さくらのクラウドで普通のWebサーバ(nginx)のロードバランシングをやってみます。

こちらの記事で大変わかりやすくまとめられているので、さくらのクラウドのコントロールパネル上の操作はこちらを参照ください。

[さくらのクラウドでロードバランサを使ってみる(1)](http://qiita.com/sato-w-m/items/272a0580615722a0717e)
[さくらのクラウドでロードバランサを使ってみる(2)](http://qiita.com/sato-w-m/items/71642225a6d86dcc8a60)

CentOS7 での ループバックアドレスの設定がサポート情報になかったのでその辺含めてまとめ。
[ロードバランサ &ndash; さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206208781-%E3%83%AD%E3%83%BC%E3%83%89%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B5)

結果、こちらの記事を参考に動きました。
[CentOS7系のWebサーバでLVSのDSRに対応する設定](http://nextcloud.tokyo/?p=100)

# 目標
## スイッチのIPアドレスの割り当て
| IPアドレス       |       割り当て |
|:-----------------|------------------:|
| 163.43.26.164             |              ロードバランサ IP |
| 163.43.26.165           |            ロードバランサ VIP |
| 163.43.26.166             |              webserver01 |
| 163.43.26.167               |                webserver02 |
| 163.43.26.168             |             以下、とりあえず使わない |

![スクリーンショット 2017-07-02 12.26.16.png](https://qiita-image-store.s3.amazonaws.com/0/159266/b3eecae7-8694-5c48-8806-4fd96aaeb390.png)

## マップはこうなる想定
![スクリーンショット 2017-07-02 12.01.41.png](https://qiita-image-store.s3.amazonaws.com/0/159266/b19c8141-77ce-8467-7df1-818e32877da1.png)

## ロードバランサ
![スクリーンショット 2017-07-02 12.33.57.png](https://qiita-image-store.s3.amazonaws.com/0/159266/2e7cc849-87ef-fecb-fed1-6e0fe9464327.png)

## 挙動
http://163.43.26.165 ロードバランサへのアクセスが

ある時は WebServer1へ
![スクリーンショット 2017-07-02 11.35.30.png](https://qiita-image-store.s3.amazonaws.com/0/159266/bd9fec19-8ca8-1027-0ecc-234b58b358cb.png)

時々は WebServer2へ

![スクリーンショット 2017-07-02 12.37.10.png](https://qiita-image-store.s3.amazonaws.com/0/159266/a9f95be2-2e61-aa14-5a31-aea958b66564.png)


# 1台目のサーバを作ってロードバランサへつなぐ

## サーバの追加
![スクリーンショット 2017-07-02 12.56.09.png](https://qiita-image-store.s3.amazonaws.com/0/159266/14aad859-797a-d16e-2d8b-e3ef0e95c207.png)

"スイッチに接続" で "IPアドレス"を **163.43.26.166** で設定

![スクリーンショット 2017-07-02 11.37.35.png](https://qiita-image-store.s3.amazonaws.com/0/159266/f257fefa-f1a9-1a4e-451f-4cdbaf568e03.png)

## ロードバランサへ登録

*追加* より

![スクリーンショット 2017-07-02 13.01.12.png](https://qiita-image-store.s3.amazonaws.com/0/159266/a1162875-319e-7901-7258-b0085e38ff7d.png)

*163.43.26.166* で。

![スクリーンショット 2017-07-02 13.21.55.png](https://qiita-image-store.s3.amazonaws.com/0/159266/1cbd8bf5-f527-7177-fa00-3845c1ec925f.png)


## webサーバ(nginx)のインストール

こちらを参考に
[CentOS 7 (5, 6) で "安定版 (最新版)" のNginxをインストールする方法](http://qiita.com/noraworld/items/1aae57dcbe428089c7d5)

```
# ログイン
ssh 〇〇〇@163.43.26.166

# スーパユーザになる
su 

# nginx インストール
vi /etc/yum.repos.d/nginx.repo

--
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
--

yum -y --enablerepo=nginx install nginx

nginx -v
> nginx version: nginx/1.12.0

systemctl enable nginx
systemctl start nginx

```

## http(80)ポートを開ける

```
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
```

ここまでで 163.43.26.166 でアクセスするとnginx が反応してくれる
Welcome to nginx!

## ループバックの設定(これ)
参考サイトより
[CentOS7系のWebサーバでLVSのDSRに対応する設定](http://nextcloud.tokyo/?p=100)

```
vi /etc/sysconfig/network-scripts/ifcfg-eth0

--
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
GATEWAY=163.43.26.161
PREFIX=28
DNS2=210.188.224.11
IPADDR=163.43.26.166
DNS1=210.188.224.10
ZONE=public

#以下を追記 IPADDR1 は ロードバランサのVIP
IPADDR1=163.43.26.165
PREFIX1=32

--

#リロード
systemctl restart network

```

ここまでで、ロードバランサ 163.43.26.165 にアクセスすると 実サーバ
 163.43.26.166 に流れる。

## デフォルトのhtmlをちょっと変えとく

わかりやすいように。

```
vi /usr/share/nginx/html/index.html

--
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome WebServer 01!</h1> <!-- ← これ -->
--

```

# 1台目クローンして 2台目を作ってロードバランサに追加

## 1台目をクローン

![スクリーンショット 2017-07-02 14.26.25.png](https://qiita-image-store.s3.amazonaws.com/0/159266/adae9012-d1e3-1faf-9dcf-7b7c7171d604.png)

**ディスクの修正をする** にチェック
**IP アドレス** に163.43.26.167を入力

![スクリーンショット 2017-07-02 14.27.04.png](https://qiita-image-store.s3.amazonaws.com/0/159266/4680178c-2c68-9599-8454-af37eca586e1.png)

わかりやすいように表示するページを変えておく。

```
ssh 〇〇〇@163.43.26.166

vi /usr/share/nginx/html/index.html

---
<h1>Welcome WebServer 02!</h1> <!-- ← これ -->
---

```

## ロードバランサに追加

1台目と同じように。


# 確認

有効が **はい** でステータスが **UP** になっている

![スクリーンショット 2017-07-02 14.32.31.png](https://qiita-image-store.s3.amazonaws.com/0/159266/0cbe1464-bd53-a5d5-ac1d-519ce2b0ff56.png)

どっちかのサーバに入ってwebサーバを止めて見る
```
systemctl stop nginx 
```

生きている方が表示されるはず。
終わり。

# 費用 

webサーバ2台で一番小さい構成

1,728 円 server プラン/1Core-1GB * 2
756円 Disk SSD/20GB * 2
2,160円 Switch
2,160円 ルータ
3,456円 追加IPアドレス/28

**合計 : 12,744円**