[Vagrant] マルチサーバー環境を構築してインフラ構築検証を行う #1「負荷分散構成」

2015年7月7日

サーバー テクノロジー

最近、仕事でサーバーばかり触っているが、世の中インフラエンジニアがとにかく少ないという話をよく聞く。 昨年は、WEBエンジニアが少ないとか、UIデザイナーが少ないとか・・・ 個人的には、人材紹介の業界会社が、単価を向上させるために、その業界に向けて値上げしているだけだと思う。 何故なら、僕の知り合いには、そういう仕事をやりたがっている人がたくさんいるからだ。 マッチングがうまくできていないのか、企業は採用したいけどうまくできない。 求職者は仕事をしたいけど、いい仕事につけない。 世の中うまくいかない構図ですね。

インフラエンジニアに求められる事

サーバー構築するインフラエンジニアにおいて、最近はクラウドサーバーも増えてきて、1台だけのサーバーを丁寧に運用するのは、社内システムを扱う情報システムや、社内エンジニアグループぐらいでしょう。 外向きのサービスを運営する場合は、間違いなく、冗長構成から、複数サーバーにおけるバランシング構成や、サバクラ構成に加えて、キャッシュサーバー、イメージコンテンツサーバー、WAFを始めとするセキュリティサーバーなど、大量のサーバーで膨大なトラフィックをさばくサーバー構築を求められる。

負荷分散構成

中でもダントツに要望が多いのが、負荷分散構成であるが、ざっくり以下のような事で対応する。
・ロードバランサー機器を用いる ・LVSを用いてポートフォワーディング ・apacheのmod-proxyを使ってリバースプロキシ― ・heatbeatなどのフェイルオーバー ・DNSラウンドロビン

メリット、デメリット

たくさんあるようだが、この中でDNSのラウンドロビンとフェイルオーバーだけは、実用的でないので、絶対に検討にも入れないようにしよう。 理由としては、フェイルオーバーの仕組みは、2台の冗長構成において、メイン機が壊れた際にサブ機に切り替える技術だが、サーバーのよくはる半落ち状態の場合は切り替わらないので、正直綺麗に切り替わった試しがない。 DNSラウンドロビンは、複数台に対して、順番(ランダム)にDNSはの向き先IPアドレスを切り替える方法だが、複数台の中の1台に障害が発生しても、障害検知をする仕組みがないので、そのまま障害になってしまう。 このコトからどうしてもLBまたはLVSを選択せざるを得ない。 apacheやnginxを使ってリバースプロキシ―を構成してもいいが、SSLなどの処理がどうしてもうまくいかないため、簡易設計では有りだが、公開構成に関してはLB、LVSが望ましい。

負荷分散を制するエンジニアは世界を制する

落ちないサービス構成を構築できれば、そのサービスは、上昇することができる。 なれないエンジニアが、小規模から中規模アクセスになった際に、必ず負荷分散を余儀なくされるし、サービス自体の上限もその構成で決まる。 仕事でそのサービスの売上を2倍にしたければ、トラフィックやコネクションを2倍にするのと同じだし、10倍にしたければ、全ての許容範囲を10倍で考えなければならない。 もちろんプログラム構成や、DB構成により、上限値が決まる事が多いが、その辺は担当のプログラマに委ねよう。 全てを1エンジニアで行なっている場合は、歯を食いしばって100倍や1000倍まで拡張できる仕組みを考えておこう。 僕の経験上、1台サーバーで100万円の売上を立てるのは難しい。 このブログで何度も言っているが、SQL構成にした段階でよほど高価なDBシステムを使わない限り、DB-IOのボトルネックがついて回る。 とにかくサーバーをバランシングにするだけで、サーバーを100台とかにすればいい状態にできれば、営業さんが売れば売るほど100倍までの売上は可能となる。 それだけサーバーの基本構成は重要って事。 次回以降は、LVSを構築して負荷分散を簡単に設計してみようと思う。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ