ロードバランサ の変更点


#author("2022-08-18T18:33:12+09:00","default:k1rou","k1rou")
#author("2022-08-18T18:34:31+09:00","default:k1rou","k1rou")
*ロードバランサとは [#raafc0f2]
**名称 [#u1a9786d]
-[[負荷分散]]装置

**概要 [#a32648bc]
-[[SLB]](Server Load Balancing)
-一つのサービスを、複数のサーバで分担させる。
-[[スケールアウト]]による[[冗長化]]で全体の性能向上を図る。

*ロードバランシングの実現方法 [#qe304f7e]
-ロードバランサを使う
-[[DNSラウンドロビン]]を使う

*ロードバランサの実現方法 [#ja797021]
-ハードウェア
-ソフトウァア

*実装 [#na89394a]
-グローバルIPアドレスが一つでよい。
-[[DNS]]サーバに[[Webサーバ]]ではなく[[ロードバランサ]]を登録する。
-ロードバランサがアクセスする[[Webサーバ]]を振り分ける。
-ロードバランサが単一障害点にならないように、ロードバランサの[[冗長化]]を考慮する必要がある。
-ロードバランサがボトルネックになった場合は、ロードバランサの[[スケールアップ]]が必要。

-VIP(バーチャルIPアドレス)
-VSG(バーチャルサーバグループ)、リアルサーバ、RIP(リアルIPアドレス)

**ヘルスチェック機能 [#i50031ac]
-正常に稼働しているサーバにのみアクセスする。
-停止しているサーバを負荷分散する対象から外す
-一定間隔でサーバの応答確認をする。

*振り分ける方式 [#o57600dc]
**ラウンドロビン方式(round robin) [#tb94b4c9]
-順番で分散する
-あらかじめ決められた順番で振り分ける
-決められた割合で割り振る方式は「荷重ラウンドロビン方式」

**加重ラウンドロビン方式 [#p5509141]
-サーバの処理能力に応じて振り分ける

**[[セッション]]維持方式 [#se4b5b8b]
-[[セッション]]維持のため、クライアントの[[IPアドレス]]や[[Cookie]]で、特定のサーバを選択。
-[[セッション]]パースシステム

**[[ハッシュ]] [#v1991e67]
-接続元または接続先のIPアドレスの[[ハッシュ]]値に応じて分散する。
-接続元のIPアドレスを使う場合、同じクライアントからの接続は、同じリアルサーバに分散する

**最速応答時間方式 [#lb9ad4f3]
-応答が最も早いリアルサーバを選択

**最小負荷方式 [#a11c6e62]
***荷重ラウンドロビン [#c1b3adaa]
-CPU負荷分散方式の場合、CPUの負荷が最も低いリアルサーバを選択

***最小コネクション方式(least connections) [#mdbbd8ca]
-接続しているコネクション数が最も少ないリアルサーバを選択

***最小トラフィック方式 [#dfdf36d2]
-一定時間での転送量が最も少ないリアルサーバを選択

*種類 [#z0f7ff86]
-L4-[[NAT]]
-L4-[[DSR]]
-L7
-L4とL7を併用することができる。

**L4ロードバランサ [#p54fca4f]
-第1-4層([[OSI参照モデル]])

-[[TCP]],[[UDP]]

-始点IPアドレス、始点ポート番号
-終点IPアドレス、終点ポート番号

**L7ロードバランサ [#dc44bdee]
-第1-7層([[OSI参照モデル]])
-「[[リバースプロキシ]]」と呼ぶこともある。

-[[HTTP]],[[SMTP]]

-[[URL]]
-[[Cookie]](リアルサーバのIDを埋め込んで使う)
-User-Agentヘッダ

*ページの連続性について [#nd673e98]
**ページに連続性がない場合 [#nb603818]
-振り分ける[[Webサーバ]]は単純な[[Webサーバ]]の負荷状態で判断する。

**ページに連続性が必要な場合 [#z95288b1]
-同じ[[Webサーバ]]に振り分けるようにする。
-連続性があるかどうかの判断する方法
 1.フォームの情報に付加して、それを読み込む。
 2.HTTPヘッダにcookieの情報(セッションID等)を付け、それを読み込む。

*サービス、製品 [#i2668282]
-HAProxy
-mod_proxy_balancer
-Nginx
-POUND
-Perlbal
-NetScaler -Citrix

**L4ロードバランサ [#v0598cdd]
-KTCPVS
-UltraMoneky-L7
-Linux L7SW

**メーカー [#n17dc402]
-F5
-Citrix
-A10 Networks

*LVS [#sd8e512e]
-Linux Virtual Server~
http://www.linuxvirtualserver.org/

-IPVS(IP Virtual Server)、L4ロードバランサに

*NAT/DSR [#vca3a68c]
-[[NAT]]方式は、リクエストと同じロードバランサを経由して返す
-[[DSR]]方式は、ロードバランサを経由しないで返す
-Direct Server Return

**[[NAT]]構成 [#w88730d1]
-ロードバランサが始点IPアドレスを書き換えない
-ロードバランサが始点MACアドレスを書き換える
-ロードバランサが宛先IPアドレスを書き換える
-ロードバランサが宛先MACアドレスを書き換える

**[[DSR]]構成 [#u3cad503]
-ロードバランサが始点IPアドレスを書き換えない
-ロードバランサが始点MACアドレスを書き換える
-ロードバランサが宛先IPアドレスを書き換えない
-ロードバランサが宛先MACアドレスを書き換える

*ロードバランサの冗長化 [#h2f3dcb8]
-keepalived(死活監視)
-[[VRRP]](Virtual Router Redundancy Protocol)
-フェイルオーバ
-マスタルータ、バックアップルータ
-アドバタイズメントメッセージ
-プリエンプティブモード

*関連用語 [#dcb664e2]
-[[ALB]] -Application Load Balancer
-[[ALGプロトコル]]
-[[ELB]] -Elastic Load Balancer
-[[DNSラウンドロビン]]
-[[GSLB]] -Global Server Load Balancing
-[[LVS]](Linux Virtual Server)
-[[X-Forwarded-For]]
-[[拡張性]]
-[[キャッシュサーバ]]
-死活監視
-[[シャーディング]]
-[[スケールアウト]]
-[[負荷分散]]
-[[分散]]
-ヘルスチェック
-[[リバースプロキシ]]