今回、Google Cloud Platform(GCP)のロードバランサであるCloud Load Balancingの概要についてまとめていきます。
はじめに
ロードバランサというと難しく設定が面倒というイメージがありますが、GCPのロードバランサであれば一時間程度で設定出来ます。
複数のリージョン(地域)にインスタンスを配置したり、オートスケールも可能になるのでGCPのCloud Load Balancingを使えば実践的にロードバランサについて学べるので、無料トライアルを使って試してみました。今回は、Cloud Load Balancingの概要をご紹介します。
負荷分散の基礎とロードバランサの導入
負荷分散はシステムの可用性の向上と処理速度の向上を目的としています。 サイトの利用者が増えたり、サイト内のあるコンテンツ(記事)などがバズった場合、アクセス数と処理数が激増します。 そうすると、一台のサーバーに負荷が集中するため、サイト内のページ表示が遅くなったり、一時的に表示されなくなることがあります。負荷分散を用いて処理を複数のサーバーで割り振ることで、特定のサーバーに負荷が集中するのを防ぐことが可能です。その負荷分散を実現するための方法の一つとしてロードバランサーの利用があります。ロードバランサは、負荷分散専用のネットワーク機器で、クライアントからのリクエストを一定のアルゴリズムに基づいて複数のサーバーに振り分けます。
https://www.cacloud.com/services/cloud-load-balancer/より画像出典
Google Cloud Platform(GCP)のCloud Load Balancingの特徴
Cloud Load Balancingは、複数の仮想マシンインスタンスに対して、インターネットからのトラフィックを負荷分散するサービスです。
世界最大規模のインフラ
GCPの特徴はGmailやYoutube,Google検索などGoogleが提供するサービスを支えているインフラをそのままクラウド化したサービスをユーザーが利用できる点です。皆さんもご存知の通り、Googleの持つネットワークは世界最大規模です。世界最大級のインターネットサービスを提供するGoogleのインフラは高速で性能の高いインフラストラクチャのため信頼の高いサービスと言えます。
リージョンやゾーンごとの負荷分散
Googleは世界中ににデータセンターを保有しているため、複数のリージョンやゾーンにまたがって負荷分散出来ます。例えば、アメリカ・ヨーロッパ、東京の三つのリージョンで負荷分散したとします。仮に東京リージョンで障害が発生した場合、東京以外のリージョンに自動で振り分けることができるので、サーバーダウンの影響を与えずにサービスの提供を続けることが出来ます。
Cloud Load Balancingの二種類の負荷分散
Backend Buckets | Load Balancing | Google Cloudより引用
HTTP(S)負荷分散
ブラウザなどの端末がWebアプリケーションにアクセスする際、HTTP、またはHTTPSのプルトコルを使用します。HTTPS(S)負荷分散は、これらのアクセスを複数のリージョンにわたる複数バックエンドのインスタンスに振り分けます。アクセスが急速に増えても、世界中の複数リージョンでさばくことができるので拡張性の高い基盤を構築出来ます。そのため、多くのユーザーを抱えるWebアプリケーションを公開する際には最適なサービスです。
TCP/UDP負荷分散
GCEの同一リージョン内でTCPプルトコル、またはUDPプルトコルのトラフィックを負荷分散します。HTTP(S)負荷分散と違い、複数リージョンにまたがる負荷分散は出来ません。同じリージョンで異なるゾーン間で負荷分散することは可能です。
最後に
次回はGCPで実際にロードバランサの設定しながら、負荷分散やロードバランサについて記事にしていきたいと思います。
また、GCPのアカウント登録をすれば、300 ドル(約三万円分)分の無料クレジットがあるので、今ならお金をかけずにGCPを学べます。是非、興味のある方は試してみてください。