ロードバランサを使用する(CloudGarage)

サービスの負荷軽減にはいろいろな技術が使われます。こんばんわ、Web担当 神凪です。
ウチ(NCE)みたいに小さなところであればサーバ単体でも十分にさばききれるのですが、大きくなってくるとそうはいきません。

例えばそのサーバ単体のスペックを上げる。メモリとかCPUとかですね。
例えば複数台のサーバを準備して、それぞれに処理を分散させる。ある意味マルチCPUの考え方です。

それ以外にもいろいろあると思いますし大きなところはもっと対策打っているはずです。
今回はその対策のうちの一つ、ロードバランサを使った負荷分散を行ってみたいと思います。

ロードバランサって?

読んで字の如く、Load Balancer、負荷均衡装置。サーバではなく、ネットワーク機器に入ると思います。
設定されたルールに従って、1つ入口から入るを複数の出口に分散させる装置です。

接続元に対する出力先の設定、つまりバランシング設定ですが、CloudGarageでは3種類用意されています。

  • ラウンドロビン
  • リーストコネクション
  • Source IP

以上の3種類です。どのように動くか見てみましょう。

ラウンドロビン

接続元に関わらず、接続先サーバへ順番に割り振る接続方法です。静的コンテンツが多いサイトに向いています。
上記の図だと、左から順番に123123123、といったように繰り返します。その接続比は必ず1:1:1…です。

リーストコネクション

最も少ないセッションの仮想サーバーにアクセスを振り分けます。セッションの保持が行われるWebサイトに向いています。ユーザマイページがあるサイト等ですね。

Source IP

送信元IPアドレス毎にアクセスする先を振り分けます。言い方悪いかもしれませんが、リーストコネクションよりも大雑把ですね。
IP毎なので、こちらもセッション保持されるWebサイトに向いています。

ロードバランサでできること

今までお話ししてきたとおり、負荷分散が可能です。
その他、サービス稼働率を上げる効果があります。
これはロードバランサにサーバのヘルスチェック機能が含まれるためで、一部のサーバに障害が発生した場合は他のサーバへ処理を引き継ぐ機能を持っているためです。

これらを踏まえて・・・

今回はまずロードバランサを使ったWebサービス機能を構築していきます。
協力はいつもおなじみCloudGarageです。ありがとうございます。

目標

  • CloudGarage上のインスタンスで、HTTP/HTTPSロードバランス機能を実現させる。

環境

  • CentOS7.3
  • Apache導入済みインスタンス2台

準備

  • CloudGarageにてCentOSインスタンス2台が動作していること
  • それぞれCentOS初期設定が完了していること
  • それぞれApacheインストールが完了していること

インスタンスは準備されているものとして、この後を進めます。

手順

ロードバランサの追加と設定

  1. CloudGarageにログオンし、左メニューから[ロードバランサ]を選択する。
  2. [ロードバランサを追加する]をクリック。
  3. 設定値を入力し、[この内容で追加する]をクリック。
  4. 作成したロードバランサの設定画面に移動する。([ロードバランサ > 作成したLB]
  5. “接続インスタンス”の編集ボタンをクリック。
  6. 接続先となるインスタンスにチェックを入れて[更新]をクリック。

やってみると簡単です。

設定できているか確認する

今回は接続先インスタンスの両方で、アクセスログを見ながら確認します。

tail -f /var/log/httpd/access_log

ロードバランサのIPアドレスで接続すると、両方のサーバで同時にアクセスログが流れるのが見えるはずです。
アクセスログに表示される接続元IPアドレスはロードバランサを示しています。これを回避するための方法がCloudGarageのTech & Support Blogに記載があります。[CloudGarage]ロードバランサー利用時の接続元IPをアクセスログに表示するを参照してくださいね。

おわりに

CloudGarageのロードバランサは現在NCEでも検証中の内容です。
ロードバランスはできていますが実際の性能はどうなのか、が気になりますよね? そちらは後日まとめてお届けしますので、しばらく待っていてくださいね

Special Thanks!

CloudGarage Dev Assist Program協力のもと、NCE Sandboxを作成しました。
試せるシステムに限りはありますが、ぜひお試しくださいませ

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください