2011年9月13日火曜日

自前サーバを捨ててクラウドへ向かえ!PaaSとSaaSでオールOKだよね?

ほとんどの企業のシステムは自前サーバで、クラウドは様子見のところがまだ多いようです。企業のシステムを提案するSIerはハードウェアごと売れないと死活問題になります。だから広めようとしないこともクラウドが普及しない大きな理由でしょう。でも自前サーバは構築や運用に莫大な時間と労力と費用がかかりますし、クラウドにないリスクもあります。本当はほとんどのシステムはクラウド化した方が圧倒的にメリットがあるのです。クラウド化のメリットとリスクの正しい認識が早く浸透して欲しいと願ってます。

IaaS,PaaS,SaaSとプライベートクラウド

クラウドにはIaaS,PaaS,SaaSがあります。ちなみに「プライベートクラウド」と言われるものでハードウェア購入やレンタルが絡むものは「クラウド」ではありません。単なるサーバ仮想化です。クラウドの普及で不利益をこうむる人達が考えたまやかしの言葉です。
  • IaaSは仮想サーバレンタルで自前サーバみたいなものです。
  • PaaSはデータベースやWebサーバなど、アプリの実行に必要な環境を全て用意していて、Webアプリケーションのプログラムを作って乗っければすぐにサービスを提供できるものです。
  • SaaSはGmailやGoogle docsなどのように、アプリケーション機能そのものを提供するものです。

自前サーバで必要なコスト

安定したサーバ環境の構築・運用には優秀なサーバ/インフラエンジニアが必要で、人件費も含めてコストは莫大です。人件費以外にもこのようなコストがかかります。
  • サーバの購入 or レンタル代
  • データセンターへの設置/レンタル代/電気代
  • OSのインストールや環境設定
  • Web/アプリケーションサーバ等のインストールや設定
  • データベースサーバのインストールや設定
  • 負荷分散の設計・構築
  • ネットワークの設計・構築
  • 各サーバの保守・運用
  • 運用監視ツールのインストール・設定
たとえ優秀なエンジニアが構築したとしてもトラブルはつきものです。それに都合よくスキルのあるエンジニアが見つかるわけではありません。 OSやWebサーバなどの脆弱性が見つかった時も、システムを止めて環境を変更することはトラブルの原因になることも多いでしょう。そういうメンテナンスをやるだけでも相当な負担ですし、きっと休日出勤になってしまいます。 それにハードウェアが自前の場合、故障のリスクだってあります。

PaaSであれば上記のコストは必要ない

プログラムの実行環境から運用ツールまで全て用意されているPaaSなら上記のような時間と労力をかける必要がありません。費用だって格段に安くなります。それにサービスの利用度によってスケーリングも勝手にやってくれるPaaSもあります。最初から将来の拡張に備えてガッツリ初期投資して環境を整えなくても、最初は小さく初めて必要であれば徐々にスケールを大きくしていくということが安価に簡単にできてしまうのです。
サーバの脆弱性もすぐに判明しますし、自分でやらなくても素早く対応してくれます。Google App Engineの価格が改訂されて高くなったと騒がれていますが、同じような環境を自前で用意するためには、どれほどのコストがかかることでしょう。

例えば電気で考えてください。電気は電力会社が提供し、各企業や個人はそれを買って利用することが当たり前です。自前で発電することに各企業が取り組んだらどうでしょうか? あまりにも非効率で安定もしません。資金やリソースを裂いてまで自家発電はありえません。それと同じで、アプリケーションの実行環境もインフラとして提供されることがごくあたり前の時代になりますし、もう準備は整ってます。

エンジニアがクラウドに移行したくない理由

エンジニアにもクラウドに移行したくない人がいます。こだわりの環境を作りたいためだったり、既存のアプリケーションの環境をそのまま動かしたいといった理由です。自分のスキルが生かせないということもあるかもしれません。

どういう動作環境かはエンジニアにとっては重大な問題ですが、サービス利用者からしれみれば、何だって同じです。よいサービスが提供されればそれでいいんです。環境へのこだわりを捨てて、そのエネルギーをユーザにとって良いアプリを作ることに注力する方がずっとよい結果になるでしょう。 自前サーバで実現していることをそのままクラウドでやろうとすると、できない場合がありますが、発想を転換したり割り切ることができれば、クリアできる問題の方が多いと思います。 エンジニアはさっさとサービス向上に注力するように方針転換した方がいいのです。その方が結果として少ないコストで、よりよいサービスが出来ます。

クラウドのセキュリティが心配?

クラウドのセキュリティが心配で移行できないという意見もよく聞きますが、それを聞くたびに「自前で作ったらGoogleなどが提供するシステム以上に堅牢になるのですか?」と思います。社外(パブリッククラウド)にデータを置くことが心理的に不安なのは理解できますが、自前システムの方が安全だという根拠はありません。そういうことを言う会社ほど、社内PCからはデータに簡単にアクセスできる状態だったりします。情報漏えい事件の8割は内部犯行だという事実を理解して、イメージではなく実際のリスクを公平な目で捉えるべきです。

RDBじゃないと問題ですか?

最近はRDBが使えるPaaSも多くなってきましたが、クラウドのスケーラブルさを活かすにはやはりKVS(Key Value Store)がいいです。KVSでも、データの持ち方とユーザインターフェースの設計しだいで、かなりのシステムはカバーできると思うのです。でもRDBに慣れた人には、このKVSがネックになることも多いようですね。RDBと同じ機能を要求されれば難しいですが、もっとサービスレベルの視点で代替案を考えていけばクリアできる課題の方が多いはずです。
まあ、でもそこまで大量アクセスになる予定がなければRDBでもいいかもしれませんね。

VPNなんていらない。ていうかLANなんていらない

社内LANにグループウェアや開発環境や共有ファイルサーバなどがある会社が一般的でしょう。ファイアーウォール内は安全だという考え方のもとに、社内ではずさんな管理がされている会社も少なくないと思います。

グループウェアだってドキュメント共有だって、コラボレーションに必要十分な機能はすでにGoogleや他のクラウドによって提供されています。VPNなんて使わなくても、クラウドを利用してWebブラウザがあれば共同作業できる環境は整ってます。社内のローカルサーバも全てクラウド化すればLANに依存する必要もありません。共有ファイルなどを使わないようにしていけば、ウイルス感染の心配も減ります。システムの管理コストだってかなり小さくなります。

システムを全部クラウド化すれば災害にだってめちゃくちゃ強い

会社のシステムを全部クラウド化すれば、パンデミックや大災害でも事業が継続できる可能性が高くなります。鳥インフルエンザなどが発生しても、無理に出勤せずに自宅で同じように仕事ができます。
会社が災害にあったり、交通が麻痺しても、インターネットにつながる環境がある限り、どこででも事業が継続できるのです。

まとめ

詳しい人にとっては、当たり前のことばかりだったかもしれませんが、システムのクラウド化はまだ全然理解が進んでないと思います。メリットを理解している人が根気強くちょっとずつでも広めていきましょう。
クラウドの普及はノマドワーキングの普及にもつながると思います。
さっさと自前サーバや、社内LAN依存は捨てて全てクラウドに移行しましょう。

0 件のコメント:

コメントを投稿