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