いまさらのロードバランサ
ロードバランサとロードバランシング違い
ロードバランサは、その機能を実現するサービスで、ロードバランシングはプロセスという区分け
英語で「er」でサービスを指し、「ing」は進行中のプロセスを指す
使用する目的
サーバの負荷を分散するので、複数のサーバへの負荷(トラフィック)を片方に集中しないように、振り分ける
DNSラウンドロビンとロードバランサの違い
・DNSラウンドロビンは、サーバの状態を考慮しない
・ロードバランサはサーバの健康状態や負荷を考慮しながらトラフィックを動的に分配できる。よって、高可用とパフォーマンス向上を実現できる
ロードバランサとは
ロードバランサの役割として、サーバからの応答速度の遅延とシステムダウンを回避できる
応答速度の遅延を防ぐ仕組み
1.トラフィックを複数のサーバへ分配し、サーバ1台に対する過負荷を防ぎ、パフォーマンスを維持する
2.ヘルスチェック
各サーバをヘルスチェックし、正常なサーバへトラフィックを分配する
3.セッション維持
同じクライアントからのリクエストを特定のサーバに分配することで、セッション情報を維持することで、遅延を低減する
4.トラフィックの調整
ロードバランサが動的にトラフィックを動的に調整する
他には、地理的な負荷分散、オードスケーリング機能がありトラフィックに対して、柔軟にサーバが稼働できるようなサービスが提供される
参照リンク
https://www.infraexpert.com/study/loadbalancer1.html
ロードバランサの機能の深掘り
・ロードバランサシング
・パーシステンス
・モニター
ロードバランシングの振り分け方法
大きく分けて、静的
と動的
に分かれる
静的
あらかじめ定義したパラメータに応じてトラフィックをサーバへ均等に転送できるが、柔軟性にかける
※パラメータは、重み,リクエストの数など
動的
リクエスト、コネクション数、リソースに応じて動的にトラフィックを振り分ける
詳細は、以下を参照
https://www.infraexpert.com/study/loadbalancer4.html#google_vignette
パーシステンス
同一クライアントからのリクエストに応じて、セッション情報があるサーバへ振り分ける機能
パーシステンスの設定をしていない場合、別のサーバへセッションを張り直す必要があるため、サーバへ負荷がかかる
かといって、セッション情報を保持し続けると、XSS攻撃の的になるため、適当に設定する必要がある
パーシステンスの種類
・送信元IPアドレスを保持ロードバランサーが保持する
・Cookie情報をWebサーバが作成し、ロードバランサーが読み取るまたは更新をする
詳細は以下
https://www.infraexpert.com/study/loadbalancer5.html
モニター
サーバが正常に稼働してサービスを提供できる状態かチェックする。よって、正常に稼働しているサーバのみにリクエストが振り分けられる。
モニターの種類
ロードバランサーのモニターは、L3~L7ごとにチェックする
例えば、IPパケットが正常にサーバへ転送し、でサーバが正常か判断し、リクエストを振り分ける
詳細は以下
https://www.infraexpert.com/study/loadbalancer6.html
備考
基本を押さえたうえで、次はAzure Application Gatewayについてまとめようと思います