画像出典:https://www.infraexpert.com/study/loadbalancer1.html
今回、負荷分散の基礎とロードバランサーを紹介していきます。
負荷分散の基礎
システムの可用性の向上と処理速度の向上を目的として負荷分散があります。
負荷分散はサイトへのアクセス数が僅かな場合、処理数が少ないので負荷分散を導入する必要がありません。しかし、サイトの利用者が増えたり、サイト内のあるコンテンツ(記事)などがバズった場合、アクセス数と処理数が激増します。
そうすると、一台のサーバーに負荷が集中するため、サイト内のページ表示が極端に遅くなったり、一時的に表示されなくなることがあります。負荷分散を用いて処理を複数のサーバーで割り振ることで、特定のサーバーに負荷が集中するのを防ぐことが可能です。
ロードバランサーの導入
画像出典:https://www.infraexpert.com/study/loadbalancer1.html
負荷分散を実現する方法の一つとしてロードバランサーの利用があります。ロードバランサは、負荷分散専用のネットワーク機器で、クライアントからのリクエストを一定のアルゴリズムに基づいて複数のサーバーに振り分けます。
ロードバランサーの役割
ロードバランサの役割として以下の三つがあります。
サイト内の表示速度を高速化
ロードバランサーを利用することでサイト内の表示速度が高速化します。
サイトに負荷がかかることでページの表示が遅くなったり、表示されなくなるため、SEOの観点からみた時に離脱率が高くなります。
そのため、利用者にとって快適なサイトを運営するために表示速度を高速化する必要があります。
サーバーダウンのリスクを回避
ロードバランサを利用すると複数台のサーバーを使うため、万が一一台のサーバーが故障しても他サーバーに自動切替します。
そのためサービス停止のリスクを回避でき、システムの可用性が向上します。
サーバーのメインテナンスが可能
ロードバランサは複数台のサーバーを使うため、サーバーのメインテナンスを行う際にサービスを停止する必要が無くなります。メインテナンス中のサーバーに振り分けしないようにすることで実現可能です。
ロードバランサーの注意点
ロードバランサーを利用する際の注意点としてロードバランサ自身が単一障害点(SPOF)にならないように注意する必要があります。SPOFとは、その箇所で障害が発生すると、システム全体が利用できなくなってしまうことです。
仮にロードバランサーで障害が発生しても、サイトサービスが全停止しないように冗長化などの対策が必要になります。
- SPOF・・・ single point of failure
GCPでロードバランサーの導入
画像出典:Google Cloud including GCP & G Suite — Try Free | Google Cloud
GCP(Google Cloud Platform)ではCloud Load Balancingによる負荷分散システムがあります。
Cloud Load Balancingは、複数の仮想マシンインスタンスに対して、インターネットからのトラフィックを負荷分散するサービスです。複数の地域(リージョンやゾーン)にまたがって負荷分散できます。
どこかのタイミングでGCPでロードバランサーの導入する手順を記事化したいと思います。
詳しくはGCP公式サイトをご参照ください。