#author("2024-08-31T19:31:40+09:00","default:k1rou","k1rou") #author("2024-12-10T14:20:20+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 -[[HAProxy]] -mod_proxy_balancer -Nginx -[[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]] -[[エンフォーサー]] -[[拡張性]] -[[キャッシュサーバ]] -死活監視 -[[シャーディング]] -[[スケールアウト]] -[[負荷分散]] -[[分散]] -ヘルスチェック -[[リバースプロキシ]]