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

2015年7月7日

サーバー テクノロジー

t f B! P L
最近、仕事でサーバーばかり触っているが、世の中インフラエンジニアがとにかく少ないという話をよく聞く。 昨年は、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を構築して負荷分散を簡単に設計してみようと思う。

このブログを検索

プロフィール

自分の写真
町田市, 東京都, Japan
プログラミングとサーバーを心の底から楽しむクリエーターです。 経営者であり、開発者でもありますが、得意としているのは、アイデア創出。

ブログ アーカイブ

QooQ