分散

負荷分散?5分ぐらいで分かるロードバランサーの機能!

#インフラ
written by クッキーさん

みなさんこんにちわ、クッキーさんです!

1年が怒涛の速度で終わったと思ったら、またはじまってしまい物凄い悲しみに打ちひしがれています。

さて今日は、ネットワーク部分なのか、サーバ部分なのか凄く線引きが曖昧な負荷分散装置(ロードバランサー)について説明したいと思います。

そもそもロードバランサーって?

ロードバランサーとは、ロードをバランスする動作をする機能を指します。
オンプレであればF5だったり、バラクーダのLBだったりが有名ですかね、AWSならELBとかに名前がちょっと変わったりしていますが、基本的にはサーバにかかる負荷を分散するための装置になります。

一つのサーバに対してだけ、物凄い負荷がかかったりするとサービス継続に影響があったりするので、複数のサーバに分散してアクセスさせることで、リソースを分散させたり、障害時には振り分け対象から外して、サービス提供を継続したりと物凄く便利です。

では次にどういった動作が行われるのかを5分ぐらいでわかるように、ざっくりと説明してみたいと思います。

VIP

VIPとは、お金持ちとか上客とかそういう類のVIPじゃなく、仮想IPのことです。
クライアントは基本的にこのVIPに対してアクセスし、LBが自動で接続先(ホスト)へ振り分けてくれます。

めちゃくちゃざっくりですが、だいたいこんな感じです。

次は、振り分け方式!

振り分け方式

LBが接続先を振り分けてくれるにしても、振り分けの方法って?と思われるかと思いますが、基本的には「ラウンドロビン」「最小接続数」が多いかと思います。
サーバが2台(Aサーバ、Bサーバ)ある場合を仮定して、どのように振り分けられるかを下記に記載します。

ラウンドロビン:A→B→A→B→A→B….と順番に振り分け
最小接続数:Aサーバへの接続が199、Bサーバが200だった場合はAサーバへ振り分け(少ないほうへ接続させる)

その他にも重みで振り分け先を変更したりと種類があるのですが、今回は割愛します!
次はパーシステンスについて説明します!

パーシステンス

パーシステンスとは、接続先からセッションが切れた場合に、再度同じサーバへ接続させるような動作を指します。「一意性保証」とも呼ばれます。
基本的には何分間の間はこのホストに戻すよ!みたいな設定をする部分になります。

クッキーベースだったり色々な物で設定できますが、僕的に頭を悩ます部分でもあります。

最後にヘルスモニターを説明します!

ヘルスモニター

めちゃくちゃ重要機能です!振り分け対象として存在しているホストで障害が発生した場合に、振り分け対象から除外する条件を設定します。
例えばWebページのヘッダーからこの値ならチェックOK、表示されてなかったらダメだよ!みたいな設定だったり、純粋に疎通だけで監視したりと色々ここでも設定できます。

まとめ

5分ぐらいで分かると書いてしまった結果、物凄くざっくりした内容になってしまいました。
ただ主要機能自体はだいたい説明できていると思いますので、興味を持った方は「ロードバランサーとは」とかで調べてもらえるとより詳しく知ることが出来ます!

ちなみに、ブロックチェーンも負荷分散関連だったということを今日知りました。

以上、クッキーさんでした。
皆様にとって希望に溢れる一年となりますよう心からお祈り申し上げます。