前回はAWSのVPC上でLVSとWebサーバを同じネットワークに設置して実験してみましたが安定しませんでした。(前回 https://qiita.com/superdry/items/83286545061354f20d17 )
#構成
今回はWebサーバを10.0.2.0/24のネットワークに設置します。LVSは10.0.0.0/24のネットワークに設置しますがネットワークインタフェースを2枚にして片方は10.0.2.0/24のネットワークにつながるようにします。
##WebSV1
10.0.2.0/24のサブネット側にインスタンスを作成します。
LVSのeth1のIPアドレスをデフォルトゲートウェイにします。
その他(httpdのインストールなど)は前回と同じです。
##WebSV2
WebSV1と同様です。
##LVS
LVSのネットワークインタフェースを2枚にする方法は
インスタンス作成時のstep3でネットワークインターフェースの欄でデバイスの追加を押下します。
eth0は10.0.0.0/24のサブネット、eth1は10.0.2.0/24のサブネットにします。
前回同様、送信元送信先チェックを外さなければなりませんがeth0はインスタンス画面のアクションから「ネットワーキング」→「送信元送信先変更チェック」で無効化できます。
しかし、eth1の方は有効化されたままですので個別にやらなければなりません。eth1のネットワークインタフェースIDをメモって置いて、ネットワークインターフェース画面でネットワークインタフェースIDで検索してアクションから「送信元送信先変更チェック」で無効化できます。(嵌ったところ)
eth1の設定ファイルであるifcfg-eth1は自動的に作成されるものだと思っていましたがそうではありませんでした。作成してあげないと機能しないので作成します。
DEVICE="eth1"
BOOTPROTO="static"
ONBOOT="yes"
BROADCAST=10.0.2.255
NETMASK=255.255.255.0
NETWORK=10.0.2.0
IPADDR=10.0.2.75
# systemctl restart network
前回同様ipvsadmをインストールします。(前回 https://qiita.com/superdry/items/83286545061354f20d17 )
ipvsadmでLVSの設定をします。
# ipvsadm -C
ipvsadm -A -t 10.0.0.162:80 -s rr
ipvsadm -a -t 10.0.0.162:80 -r 10.0.2.137:80 -m
ipvsadm -a -t 10.0.0.162:80 -r 10.0.2.107:80 -m
# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP ip-10-0-0-162.ap-northeast-1 rr
-> 10.0.2.107:http Masq 1 0 0
-> 10.0.2.137:http Masq 1 0 0
LVSのeth0に関連付けられたElasticIP(グローバルIP)を指定してwebブラウザーでアクセスしてみます。
なんとか安定しました。戻りパケットがLVSに行ったり、VPCのルータに行ったりせずに安定してLVS経由で返されていると思われます。tcpdumpは今回やってませんが。
ただし、ブラウザーをリロードしてもWeb1→Web2→Web1のように綺麗に切り替わりません。Webサーバとかブラウザーのキャッシュの設定かもしれません。でも前回のように見れなくなることはありません。