2014年3月25日火曜日

ボクがクラウドを使(わ|え)ないn個の理由

炎上狙いのタイトルってこんな感じですか?分かりません(>o<)


いや、別に炎上エントリを書きたいわけじゃないんですが(*1)。

さて、IT業界にいると「クラウド」なる単語は良く見聞きしますね。猫も杓子も、老いも若きも、右も左も、クラウドばかり。「CLOUDは人生」とか言っちゃう人もいるかもしれない。もはやクラウドを知らぬようではエンジニアの風上にも置けない、クラウドを使ったことがなければエンジニア失格だという空気を感じることもしばしば(*2)。

じゃあ、自分はどうなのと思い返してみれば、公私ともに今までクラウドとお近づきになる機会がほとんどなく……。エンジニアとして非常に残念な人になってるわけで。はてさて、いったい何故だろう……というのをまとめてみることによって自分自身を省みるきっかけにしてみようかなと思い立ったわけで。

端的にこのエントリの内容を表すとすると「老害(*3)の戯言」というのが一番ピッタリなのであり、「○○だからクラウドはダメだ!」とか逆に「○○だからクラウドはスバラスィ!」とか、そういうことを書きたいわけではないです。そういうのはもっとスゴイ人が書いてるのでボクがわざわざ知ったかぶりする必要は皆無なのです。

理由:「クラウド」というワードが意味するものが多すぎる!


まず、真っ先に浮かぶ理由がこれ。「クラウド」からしたら言いがかりというかイチャモンにしか聞こえないんだろうけど、そう思っちゃうの。ごめんね。

「クラウド」っていうのは「Cloud」、すなわち「雲」のこと。省略しないでいえば「クラウドコンピューティング」なるものらしい。じゃあ、その「クラウドコンピューティング」とはなんぞや……というものを紐解いていくと、これがまた混乱を招く要素が盛りだくさん。何故かって、言ってる人によってそれが意味してるものがバラバラだから。

だから、「クラウドがさ〜」とか会話に出てきても話者がどんなものをイメージしているのかをしっかり把握しておかないと、アンジャッシュさんのコントみたいになってしまうこともしばしば。

そもそも、「クラウドコンピューティング」とやらはいくつかの概念の総称であるらしい。困ったときのWikipediaで調べてみると、アメリカ国立標準技術研究所 (NIST) による定義があるらしい。


初学者の場合、ここでつまづく。さて、ボクが勉強したい and/or 勉強すべきものはいったいどの「クラウド」なのだろう、と。しかしこの壁はさほど高くない。なぜなら、すぐに次の道へ進むためのキーワードを見つけることができるからだ。

そのキーワードというのが「XaaS」というもの。もうこの時点で、バズワード・オブ・ザ・イヤーを進呈したくなる人もいることだろう。

この「XaaS」というのは次に述べる3つを総称したもので、いわば「クラウド」の種類を表すものらしい。



SaaS(Software as a Service)


おそらく最初に世間に認知されたであろうもの。「重症急性呼吸器症候群」と同じ読み(*4)だという理由で頭に残っている人もいることだろう。みんな大好きWikipediaによると、「必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェア(主にアプリケーションソフトウェア)もしくはその提供形態のこと。」ということらしい。


なんのことやらさっぱりなわけだけど、自社でサーバ資産などを保有することなくインターネット経由で使用可能なメールやグループウェアなどのサービスを提供する場合にこの「SaaS」という名称が用いられるらしい。具体的にはGoogle Appsとかそういう奴。なるほど、なんだかんだいってこの「SaaS」は普段使ってるんじゃないかな、などと思ってみたり。

で、だ。ちょっと本筋から外れるが、「いや、これってASPと何がちがうん?」という疑問を持つ人もいると思う。ボクも疑問に思った。疑問はGoogle先生にお伺いを立ててみるのが吉。さっそくWebブラウザを立ち上げて、「ASP SaaS 違い」などで検索していることにする。ふむふむ、両者の違いをテーマに書かれたサイトをいくつか見つけることができるようだ。……なんか結構昔に書かれたものが多いような気がするが。

それらを眺めていると、「ぶっちゃけ同じだお!名前変えただけだお!」というような結論を挙げているサイトを多く見かける。まあ、そうなんだろうね。「マーケティング上の理由」とか大人の世界の都合ってやつだね。きっと。

いやちょっとまて。いくらなんでもそれがすべてではないだろう。何か定義があるはず。

正しいかどうかは別にして、ITmedia エンタープライズのサイトを参照してみることにしよう。



曰く、次の4つの要素を含んでいないと「SaaS」とは言えないのだ、ということが書いてある。自分なりの解釈をまとめるとこんな感じになる。

マルチテナントであること
「ASP」では顧客毎に専用のサーバとソフトウェアを提供していたが、「SaaS」ではサーバもソフトウェアもみんなで共有するようにした……ということらしい。あるコンピュータリソースをみんなで共有するのが「SaaS」。ちぃ、おぼえた。
迅速かつ広範囲のカスタマイズが可能であること
パッケージソフトと同等のカスタマイズができる。ただできるだけじゃなくて、素早く広範囲にできなきゃ「SaaS」じゃない!
ユーザフレンドリなUIであること
ユーザインタフェースがユーザフレンドリであることが重要らしい。特別なソフトウェアや特殊な操作法じゃなくて、世間一般でよく知られた方法で使えること。これも条件のひとつってことかしら。
APIが公開されていること
「マッシュアップ」とか良く言われてるアイツ。他のサービスと連携できるってのがミソらしい。

と、ここまで読んできて……余計……分からなく……なった気が……。

サービスを使う側(ユーザ側)からみたら、ASPもSaaSもほとんど変わらない。サービス提供側からみたら、ASPの時にダメだった点を改善したものがSaaS。その「ダメだった点」というのは、ユーザビリティや収益性、可用性、拡張性、保守性の低さあたりか。改善するための手段としてクラウドコンピューティングを採用している。それが「SaaS」って認識でいいのかなぁ。

PaaS(Platform as a Service)


これはソフトウェアを動作させるための土台を提供するもので、データベースとかWebサーバとかそういう特定機能に特化した感じ。例として、Google App EngineとかMicrosoft Windows Azureとかが挙げられているようだけれども、汎用的な「サーバ」というよりは自分のアプリを動かすことに特化した形態がコイツってことらしい。

汎用的な「サーバ」と比べて制約はあるけども、その制約に沿って作りさえすれば、スケールさせることとか「ソフトウェアを作る」こと以外をあまり気にしないで済む。だからアプリ作るときに楽だね!……って感じか。

「SaaSを発展させたものがPaaSといわれることもある」的なことが書いてあるけど、サービス提供側からしたらそうなのかなぁ……。


IaaS(Infracture as a Service)


「PaaS」の所に書いた、「汎用的なサーバ」とやらのクラウドコンピューティング版がコイツ、という理解。どうでもいいけど、発音しにくいよね(;´Д`)

Amazon EC2とかが該当するんだろうけど、オンプレミス(*5)なサーバをクラウドでやったらこうなりました的なもの。まったく同じではないし特有の知識/ノウハウはけれど、最終的にできることは同じ。たぶん、ボクが使うなら一番お世話になりそうなのがこの形態だな。

「PaaSを発展させたものがIaaSといわれることもある」的なことが書いてあるけど、ん〜。




と、まあ少なくとも話者によって3つのバリエーションがあるわけで、ちょっとクラウドについて勉強しよう/調べようと思ったときにこれらが混在する状況である、と。

まあ、実際に学習を始めるには具体的なサービス名とかで調べることが多いだろうから、影響は少ないのかもしれない。けど、こういうのが理解を困難にする原因なんだろうなぁと。まさに「雲をも掴む」という感じだ。

ざっくりとした理解から入るなら、できることの自由度的な観点から見るとよいのかな。「SaaS < PaaS < IaaS」という感じってことで。

理由:「名ばかりクラウド」が多すぎる!


モノ的には「IaaS」の範疇になるのかな。ホスティングサービスの選定の時に、従来の「専用サーバ」だったり「VPS」だったり、場合によっては「共有サーバ」だったりの代わりにクラウドサービスを使いましょう……という話は良く聞く。

聞くんだけど、じゃあ具体的にどのクラウドサービスを使いましょうかと調べていくとよく見かける「名ばかりクラウド」。今まで非クラウドなホスティングサービスを提供していた会社も、従来のラインナップを廃止して「クラウド○○」ってサービスを始めたりしているよね。

で、「お、クラウド流行ってんな〜」なんて詳細を調べるんだけども。「いや、これVPSとなにがちがうん?」って結末を迎える事がしばしば。こちらとしては分からないなりに「IaaS」的なモノを想像して調べたり問い合わせたりするんだけど、得られる結果は「VPS」のそれ。OK、名前変えただけだね。

いや、ちゃんとしたクラウド事業者の人から見ればいい迷惑なんだろうけど、こういうのも「クラウド」というものの理解を妨げる一因になってるんだろうなと思ったり。バックボーンを「本物のクラウド」で実現してるからって話なら、ホスティングサービスを使う側からみれば「VPS」なんだから「クラウド」っていわないで貰った方が理解しやすいし他人に説明しやすい気がするんだけどどうなんだろう。

理由:料金が不明瞭すぎる!


従来のホスティングサーバとかだと、「月額○○円」と出費が決まっている。まあ、転送量が云々とかで変動するものもないわけじゃないけど、基本的には決まっているモノとして話を進めたい。

それに対してクラウドでは……ここではAmazon Web Service(AWS)をイメージしてるのだけれど、「1時間当たり○○ドル」という料金体系。これだけなら単純に「時間単価×24h×ひと月の日数」とかで付きの金額は出せる。

問題は……ドル建てなんだよね……。ほら……為替相場とかで……変動するじゃん……。不安じゃん……。あと……インターネットへのアウトバウンド(*6)トラフィックって……従量課金じゃん……。不安じゃん……。

要はボクにとって「毎月この金額だけ用意しておけばOKです!」ってのは非常にわかりやすいし安心できるわけで。実際にはそういう心配事は起こらないだろうことは分かっているし、そういった料金計算をサポートしてくれるツールが提供されているのは知っている。けど、どうしても躊躇しちゃうなってのが本音。

理由:従来の概念と違いすぎる!


従来のホスティングサービスだと、契約してしまえば必要なものが一式付いてくるわけで。例えば、CPUリソースだったり。例えばディスクデバイスだったり。例えばインターネット接続(固定のIPv4アドレス)だったり。

じゃあ、クラウドならどうなのさというと、基本的には最低限必要なものは一式揃ってるよね。それはわかる。

でも、「再起動したらディスクの内容が初期化されます」とか、「永続的に記録したい場合は別なこのサービスを追加してください」とか、「IPアドレスは実は動的ですから固定のIPアドレスが欲しい場合は別途手続きが必要です」とか、今までとはかなり違う様相を呈している。

よくよく調べてみれば、これはとても合理的な仕組みだと思うよ。今までは使うかどうかにかかわらず用意されたモノにお金を払っていた。クラウドでは自分が使う分にだけお金を払えばいい。場合によってはより安価に済むことも多いだろうしね。

そういったメリットがあることは分かるんだけど、新しい知識の元に使わなきゃいけないとなるとちょっと躊躇しちゃうよねってのは本音かなぁ。何かあったときのこととか考えると、しっかり理解した上で使わなきゃいけないし。そうなると理解する前に従来のホスティングサービス使っちゃった方が楽だったりするし。

理由:クラウドサービスのメリットが活用できなさすぎる!


クラウドのメリットっていろいろあると思う。「使う分だけ金払えばいい」とか、「申し込んでから最短数分でサーバをゲットできる」とか、「柔軟にスケールさせることができる」とか。

でもさ……悲しいことにさ……その性能……ボクの範囲だと……オーバースペックなんだよね……。

ちょっとそっち方面は疎いんだけど、ソーシャルゲーム界隈とかの膨大なトラフィックを捌かなきゃいけないような世界にいれば飛びついていたんだと思う。これはいいものだと。でも結局公私ともにトラフィックが大幅に増減するケースを担当するってのがあまりないんだよなぁ……。ゼロじゃないけど。

「最短数分で」って部分だけみても、VPSや最近は一部の専用サーバとかでも最短数十分で使えるようになったりするし。そもそも、そんな数分でサーバが必要になるケースもお目にかかることはまずないし。

そんなこんなで「クラウドじゃないと!」とか「クラウドの方が!」ってケースが身近にないってのはかなりデカイ要素だと思ってみたり。知識とか経験の量でいえば従来の「VPS」とか「専用サーバ」の方が何かあったときに責任取れるから、わざわざクラウドに手を出すってことはしないんだろうな、と。

使わない理由より使う理由を探せよ!


さて、「ボクがクラウドを使(わ|え)ない理由」を挙げてみたわけだけども、改めて見返してみると「The 老害」って感じが否めない。要は新しい物について行けないから、何かしら理由を付けて逃げ回ってるだけだ。今の自分にできることに必死にしがみついて、逃げ切ろうとしているだけだ。

「仕事で使えない」というのは知識がないからだ。知識を蓄えるには調べるだけではダメだ。手を動かそう。「お客様に説明できない」というのは知識がないからだ。知識を蓄えるには調べるだけではダメだ手を動かそう。「適用できる案件がない」というのは言い訳だ。案件に頼るな。できることは他にあるだろう。

そう。まだ若いはずなのにボクは「ダメなエンジニア」の道をまっすぐ進み始めてしまっている。これは良くない。才能もなければ能力もないボクに生きている価値はあるのだろうか(*6)。

……ってことで、うん。プライベートでお勉強しよう。もっと新しい技術に触れてみよう。今は性に合わなくても、どこかで役に立つかも。

やっぱりプライベートでやるならAmazon Web Service(AWS)かな。無料枠もある(*7)からプライベートでも手を出しやすそうだ。無料のオンラインセミナーとかもあるみたいだし、ドキュメントも豊富そう。ググればベストプラクティスを見つけられそうだし、書籍の数も多そうだ。


業務で使うなら、日本円で支払えるというメリットは結構バカにできないほどデカイと思う。

候補に挙がるとすれば「さくらのクラウド」かなぁ。「クラウド!」って感じより、クラウドと従来のホスティングサービスのちょうど中間をになってる印象があるし、取っつきやすいかも。今までのノウハウとやらもそのまま使えそうだし。



*1:割とまじめに
*2:人はそれを被害妄想といふ
*3:年齢的なものではなくて
*4:今は「サース」って読むらしいんだけどね
*5:これ最初に言い出したの誰だろう……こういう用語増やすから分かりにくくなるんじゃないだろうか……
*6:いや、生きてる価値くらいはあるだろう(周りに疎まれるかもしれんが)
*7:なんでも2014年3月31日までに申し込むと25ドル分のクーポンも貰えるらしいし

0 件のコメント:

コメントを投稿