Help us understand the problem. What is going on with this article?

③ ConoHa VPS ロードバランサーを導入して複数Webサーバーの割り振り

More than 1 year has passed since last update.

前回記事:② ConoHa VPS で複数WebサーバーとDBサーバーの構成を作る

この記事でやること

前回まででロードバランサを導入する準備が整ったので、今回は

  • Conoha VPSでロードバランサを導入して複数Webサーバーを紐づけ
  • Webサーバー側の設定
  • ロードバランサによる振り分け実験

あたりを実施していきます。

Conoha VPSでロードバランサを導入して複数Webサーバーを紐づけ

さっそくConohaメニューのネットワーク>ロードバランサーからロードバランサを追加、下記キャプチャのような設定を行います。

スクリーンショット 2019-03-09 23.47.58.png

今回はヘルスモニターは無視し、いきなりロードバランサーを構築。各設定は下記です。

  • バランシングポート:httpリクエストのみで実験するので80のみ
  • バランシング方法:ラウンドロビン方式
  • バランシング先IPアドレス:前回までで作成したtestVPS1testVPS2

ロードバランサーのバーチャルIPアドレスが157.7.94.72と割り振られています。
このアドレスにhttpリクエストがくると、ロードバランサーがtestVPS1testVPS2のWebサーバーにリクエストをうまい具合に振り分けるという設定ができました。

Webサーバー側の設定

Conoha公式ドキュメントにあるように、それぞれのWebサーバー側で設定を行います。
ifcfg-lo:0というファイルを作り、そこにロードバランサーとの接続情報を記載します。

# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
ifcfg-lo
DEVICE=lo:0
IPADDR=157.7.94.72
NETMASK=255.255.255.255
ONBOOT=yes

ネットワークサービスの再起動を行います。

# service network restart

ロードバランサによる振り分け実験

ここまでできると、157.7.94.72に連続してアクセスするとtestVPS1testVPS2の2つのWebサーバーにリクエストが割り振られる様子を実験できます。

こちらが実験の様子です。
最初のタブではtestVPS1を直接見ていて、次のタブではtestVPS2を直接見ています。
そして3つめのタブではロードバランサーのIPアドレスを叩いていて、さらに連続でリロードすることでtestVPS1testVPS2の2つのWebサーバーにリクエストが割り振られる様子が見て取れると思います。

名称未設定.gif

まとめと考察と疑問

ということでこれまで3回に分けてConoha VPSでロードバランサを利用するところまでを書いてきました。

DBサーバーの分離やロードバランサの導入はドキュメントを見ながら進めましたが、なんとかなるものですね。
ロードバランサは元々負荷分散の目的で活用されることが多いですが、個人的にはデプロイのダウンタイムを無くすという目的で使ってみたいと思います。片方のWebサーバー(環境)をロードバランサから切り離してデプロイを行い、デプロイが終わったらつなぎ直してもう一方のWebサーバー(環境)でも同じことをやれば良さそうです。

とはいえなんか非効率的な感じもするので、

  • そもそも複数環境に対してデプロイを行う時の良い方法は何か
    • それぞれにPushするのか、環境のコピーをするのか
  • Webサーバーの数が多くなったらどうするのか
  • ローリング・デプロイ / ブルーグリーン・デプロイ / イミュータブル・デプロイ とかあるがどれが良いのか
    • というか負荷分散を考えなかったら、毎回新しい環境に乗り換えるヤドカリ方式のイミュータブル・デプロイでいいんじゃないか

といった考えが頭をよぎります。

はーインフラ難しい。

mtitg
データサイエンスの企業でWebエンジニアやってます
datamix
データサイエンスに関わる最適なサービスを継続的に提供することで、企業・地域・社会に属するひとりひとりが、客観的に意思決定する力を高め、自由に、そして平等に活躍できる世界を実現します。
https://datamix.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした