日本での現状のクラウドを軽く考える

現在クラウドというとAmazon Web Service、Google App EngineMicrosoft Azureが有名。

ただ、国内レンタルサーバー屋がIaaSとして続々サービスを開始。

なかなか面白いことになっています。


クラウドの仮想化による遅延とそもそも場所がほとんど米国なので非常に遅いというものがあって、なにもかんがえずにのっかることも難しいです。


おそらく業務系クラウドはややお高いながらも円で支払うことが出来るAzureが有利です。VMロールの価格しだいですが、VMロールがスタートしたら一気にシェアを取る可能性があります。現在の価格はそれなりに安く見えます。が、それはキャンペーン中のためで、半額になっているだけです。


そして低価格で高レスポンスな国内のレンタルサーバー屋のクラウド。大概リソースを決めて月単位での価格設定ということで、これはいままでの共有レンタルサーバーやVPSの延長と考えやすいです。さらにスケールアップさせることが出来るというのは非常に便利でしょう。価格も月1000円あたりからでメモリ1GBとか普通になりそうです。

海外に比べてレスポンスがよいということと価格の安さもあってCDNの変わりに複数の鯖屋で持つ(どっかがおちてもいいように)とかも可能性としてあります。価格が安いこともあってテスト用に手軽に用意できるというのは最大のメリットです。ユーザーが気軽に上位モデルへ変更できるVPSと考えておけばいいでしょう。おそらく差別化のポイントは安定度。現在の格安VPSも価格のわりに安定度がかなり高いと感じてますので、まずはこれというのはありかもしれません。大事なデータをここにおかない、他の場所で、という考え方もあるかと思います。あくまでもマスターとなるデータはAmazonGoogleMicrosoftにおいてそのキャッシュをもっているという考え方もわるくないかもしれません。


Amazon Web ServiceはEC2ばかり目立ちますが、S3やCloudFront、SimpleDB等の細かいサービスを提供するものという位置づけとしては魅力に見えます。SimpleDBは最新を読み取る保障する機能が追加されてかなり使いやすくなったはずです。場合によってはDB用のインスタンスがいらなくなることも多いでしょう。

EC2はAzureのVMロールが登場する前に国内にサーバーを持つこと、円払いが出来ること、請求書払いが出来ることあたりが解決できればAzureに取られるということも多少は減るでしょうか。日本語ドキュメントを多く用意したほうが勝つとも思います。VPS並みに手軽に扱おうと思うとEBSが必要でコストが上がります。


Google App EngineはPaaSということで他のクラウドとはまったく考え方が違います。このままだと企業向けのシステムには扱いにくいです。APIの制限が多いのでライブラリを持ってくるというよりはライブラリ自体も内製するくらいのものが必要なのです。つまり人件費がかかります。業務系はライブラリをたくさんもちこんで開発するのが普通なのでここがきついです。

GAE/JはVMの起動が遅いという問題はよくいわれますが、PC用のmixiアプリを作った感覚としてはここは無視できる感じです。どの時間帯も適度にアクセスは来るような感じですので。ただ、ものすごくおそくなったりすることもあり不安定な印象もあります。一定時間以内に返さないといけないSNS系は厳しいでしょう。

SQLが使えないというのを気にするという意見も多いですが、SQLが普及する前から触っていた人にとってはそんなに問題じゃないような気もします。問題はトランザクションがエンティティグループ1つのみしか扱えない部分で、これはどうしようもないです。業務系はここが最大の問題でしょう。SQLそのものはなにも問題ではありません。

GAE/Jは静的ファイルの場合VM起動はないのですが、それでもレスポンスはものすごく遅いです。国内の激安VPSでも1KBのテキストファイルの転送で50msあればたります。これがGAEでは300msをこえます。動的な場合はこれにCPU時間が追加されるだけです。静的ファイルのほうが圧倒的に早いかと思いましたが、ロジックがシンプルな場合意外と変わりません。

ただしサーバー代そのものはおそらく一番安く済むでしょう。つまりうまくはまれば圧倒的な効率が手に入るということです。この1点において他の追随を許さないでしょう。たとえばmixiアプリでも作ったとして初日から確実に粗利が出るのはGAEだけです。



GAEだけ細かく書いていますが実際に触っているので結果的にわるい点も目立つだけで他のもおそらく同じくらい悪いところはあるはずです。向くアプリ、向かないアプリがはっきりしているためその見極めが一番大事です。先に企画を立ててあとから実装レベルでGAEに対応させるといったことはあまりにも無謀であり、最初からGAEで運用する、といったことを前提にして企画から考えないと痛い目を見ると思います。もちろん頭がいい人は別ですが。

画像など静的なリソースの遅さはかなりアプリの動作に支障が出るレベルで体感できるため、EC2やGAEなど海外のサービスを扱う場合、AWSのCloudFrontがほぼ必須なようにみえます。CloudFrontは単純な静的なファイルながらもアクセスは多くなりがちなデータ転送で非常に強力なサポートをしますので国内VPS/クラウドの負荷を減らすために併用するという使い方も悪くないと思います。普通の静的なファイルをApacheで置くのは愚かなこと、という時代が来るかもしれません。

ユーザーはボタンクリックして何らかの処理が遅いのは許容してくれると思いますが、画像等のロードが遅いといらいらすると思いますので。ゲームなどは起動時に一気に読み込むことが多いため差がはっきり出ます。


じゃあお前はなんのクラウドを期待しているのだ、と聞かれると順にこんな感じですか。

  1. Amazon CloudFront
  2. 国内クラウド
  3. Amazon SimpleDB
  4. Google App Engine
  5. Microsoft azure

2番目から4番目は接戦です。azureは価格しだいでしょう。いまのところキャンペーンじゃない価格は高いように見えます。企業向けには一番オススメできるものになると思いますが。amazon EC2がはいっていないのがなんとも天邪鬼ですね。でも、AppEngineのようにとんがっていないですし、やれることそのものは普通のレンタルサーバーから大きな差があるわけではないですのでこんなものでしょう。