イベント登録数4,734

第34回HTML5とか勉強会 - 「BaaS」(Backend as a Service) -

バックエンドはクラウドにお任せ「BaaS」の現在-第34回HTML5とか勉強会レポート
2013/1/9 吉村哲樹  2012年12月20日、「html5j.org」主催の勉強会「第34回 HTML5とか勉強会」が開催された。  html5j.orgは、HTML5をはじめとする次世代Web技術にかかわるIT技術者やクリエーターを支援するために設立された非営利コミュニティ。オンライン・オフライン双方の場で幅広い活動を展開しているhtml5j.orgだが、定期的に開催している「HTML5とか勉強会」も、そうした取り組みの1つだ。  今回、34回目を迎えた勉強会では、「BaaS(Backend as a Service)」に関するトピックが取り上げられた。最近、SaaSやIaaS、PaaSといった「~aaS(~as a Service)」というクラウドサービスの呼称がようやく市民権を得てきたが、BaaSという用語はまだほとんどの方にとってなじみが薄いかもしれない。これは一体どのような技術で、アプリケーション開発者にとってどのような価値を持つものなのだろうか?  勉強会では、こうした点について、BaaSに詳しい専門家3人が登壇してプレゼンテーションを行った。 「BaaS」とはそもそも一体何なのか? エクサ 安藤幸央氏  まずはじめに登壇したのは、エクサの安藤幸央氏。同氏は、BaaSについて理解するための取っ掛かりとして、「Pinterest」を例に挙げて説明する。  「Pinterestのようなアプリケーションを作るためには、端末上で動くアプリケーションの開発だけではなく、Webサーバ側でも写真データを保存したりソーシャルの機能を実装したりといった開発が必要になる」  これは何もPinterestのような写真共有サービスだけに限った話ではなく、何らかのソーシャル機能を持たせたアプリケーションを作ろうと思えば、サーバ上で認証やストレージ管理、ソーシャル連携、課金/決済といったさまざまな機能を実装する必要がある。これは、サーバサイドの開発に不慣れなアプリ開発者にとっては、かなり面倒な作業になる。BaaSは、これら典型的なサーバサイドの機能を、クラウドサービスとして提供してくれるものだ。 BaaSの主な機能(安藤氏の講演資料より) BaaSのメリット  安藤氏は、このBaaSを活用するメリットとして、「スピード」「リソース」「コスト」の3つを挙げる。  「サーバサイドの開発と運用をすべてBaaSに任せることができるので、開発リソースをクライアントアプリケーションに集中でき、その分開発スピードを上げることができる。当然、開発コストもその分低く抑えることができる。こうしたメリットは、サーバサイドの開発に十分なリソースを投入できる大企業にとってはあまり意味を持たないかもしれないが、開発リソースが限られている小規模な開発チームにとっては、極めて大きな効果を発揮する」 BaaS採用の判断基準  このBaaS、まだ日本ではなじみが薄いが、米国ではかなり普及しており、特に小規模なアプリの開発においては広く使われているという。BaaSのサービスを提供するベンダも、米国を中心にすでに多数存在しており、近年では日本でもサービスが立ち上がりつつある。  これら多様なBaaSベンダの中から最適なサービスを選択するには、それぞれの料金体系やスケーラビリティ、サポートするインターフェイスの種類(REST、SOAP、JSONなど)、SDKの充実度などといった点を判断基準にするべきだと安藤氏はアドバイスする。 BaaSのデメリット  ただし、BaaSは決して万能というわけではなく、セキュリティやベンダロックイン、サービスレベルの担保といった課題も存在する。BaaSを有効に活用するためには、こうした課題をあらかじめ把握したうえで、それぞれに対して対策を講じていく必要があると同氏は指摘する。 BaaSのデメリット(安藤氏の講演資料より) BaaSの適用領域  こうしたBaaSの適用領域としては、ソーシャルアプリケーションの開発にはもちろんのこと、エンタープライズアプリケーションや社内用アプリケーション開発にもそのメリットを生かすことができる。例えば認証基盤の機能にBaaSを利用したり、あるいは似通ったアプリケーションの共通プラットフォーム機能をBaaSとして実装することで、それをうまく使い回しながら効率的にアプリケーションを開発・展開していくことが可能になる。 安藤氏はBaaSサービスの1つ「Parse」をデモ  最後に安藤氏は、米ツイッターの共同創設者ビズ・ストーン氏の「リソースの不足や、その他のプロジェクトに立ちはだかる困難がクリエイティビティを生み出す源泉だ」という言葉を引用し、次のように締めくくった。  「バックエンド開発のためのリソースも予算もない状況下では、BaaSを使う工夫をすることによって、限られたリソースをアプリの開発・デザインに集中できる。これによって、いいサービスを安く素早く作り上げることが可能になるのでは」 Titanium Mobile/Node.jsとも連携するモバイル向けBaaS クワッドエレメンツ 金野和明氏  続いて、クワッドエレメンツの金野和明氏が登壇し、モバイルアプリの開発に適したBaaSとして近年注目を集めている「Appcelarator Cloud Services」(以下、ACS)の紹介を行った。  金野氏は冒頭、ACSの位置付けについて次のように紹介した。  「Titanium Mobileで有名なAppcelarator社では、ACSのことを『モバイルBaaS』、略して『MBaaS』と称している。ACSはモバイルアプリを念頭に置いて設計されているため,このような呼び方がされているのだが、実際にはAndroidやiOSだけではなく、JavaScript SDKやREST APIなど、モバイル以外のあらゆるプラットフォームに対応したSDKが用意されている。そのため、実際にはモバイルに限らずさまざまなプラットフォームで使えるBaaSだ」 ACSとは(金野氏の講演資料より)  同氏は、実際にソーシャルモバイルアプリを開発する際に、ACSを使った場合とそうでない場合、それぞれで必要となる作業内容を並べて示す。ACSを使わない場合は、クライアント/サーバ間のAPIの設計に始まり、サーバサイドのコード記述、実装、テスト、サーバ基盤の確保と設定、認証基盤の構築、さらにはサービス開始後の運用・メンテナンスと、サーバサイド開発だけで膨大な量の作業が必要となる。  その点、ACSを使った場合は、これらすべてをACSが提供するAPIをコールするだけで済ませることができる。これにより、アプリ開発の初期投資を抑え、企画やプロモーションにより多くのリソースを割り振ることが可能だ。 ACSのアーキテクチャ(金野氏の講演資料より)  特にソーシャルアプリは、リリースしてみるまで当たるかどうか分からないことが多いため、BaaSを活用して初期投資を抑えることは、リスク管理上のメリットが大きいと金野氏は指摘する。 ACS独自の機能  また同氏は、他のBaaSにはあまりないACS独自の機能として、豊富なアプリケーションライブラリが用意されている点や、前述のように極めて広範なプラットフォームに対応している点、またパブリッククラウドとしてだけではなく、プライベートクラウドやVPC(Virtual Private Cloud)としてもACSをデリバリできる点などを挙げた。  続いて同氏は、Titanium Mobile上からACSの機能を呼び出して、実際に簡単なソーシャルモバイルアプリを開発するデモを披露した。あらかじめTitanium Mobileで用意されているサンプルコードをベースにしたものとはいえ、わずか数分足らずで簡単な写真共有アプリが出来上がる様子を見て、参加者からは感嘆の声が上がった。 金野氏によるACSのデモの様子 Node.jsでACSの機能拡張も可能に  ただし、ACS単体の利用では限界もあると金野氏は指摘する。「アプリによって、その要件はさまざまに異なるので、ACSでは機能が足りないこともある。その場合、サーバサイドのカスタマイズが効かないのがACSの限界だ」  こうした限界を突破できる技術として、現在期待を集めているのが「Node.ACS」だ。これは、Node.jsとACSを連携させることで、ACSを使ったシンプルな開発と、Node.jsによるカスタマイズコード開発の両方を、単一のJavaScript開発プラットフォーム上で簡単に行えるというもの。現在このNode.ACSは、まだデベロッパプレビュー2の段階だが、金野氏は実際にこれを使って簡単なアプリを開発するデモを行って見せた。  「このように、BaaSの制限であったカスタマイズ性に関しても大きな自由度があるNode.ACSは、これからのサーバサイド開発の在り方を示していると思う」(金野氏) 国内初となる国産BaaS「appiaries」 ピーシーフェーズ 阿部一幸氏  最後に、ピーシーフェーズの阿部一幸氏が登壇し、同社が開発・提供する国産BaaS「appiaries」の紹介を行った。  appiariesは国内初のBaaSとして、2012年11月に正式版のリリースが開始されたばかりのサービスだ。阿部氏は、BaaSを「何らかのフロントエンドに対してバックエンド機能を提供するサービス」と定義したうえで、次のように述べる。  「フロントエンドには、『ネイティブアプリの端末側プログラム』である場合、『ブラウザアプリのブラウザ側プログラム』の場合、そして『Webアプリのサーバ側プログラム』の3種類がある。これらの内、appiariesは現時点では、Objective-Cなどで開発されるネイティブアプリ用のBaaSを提供している」  appiariesが提供する具体的な機能としては、現時点では「データベース機能」「ユーザー管理機能」「ロケーション機能」「アクセス制御機能」がある。端末上のネイティブアプリからは、これらの機能をREST APIを通じて利用できるようになっている。 無料の体験版も  またappiariesには、無料の体験版が存在する。一部制約はあるものの、基本的にはすべての機能が利用できるという。また、商用利用が可能になっているのも大きな特徴だ。  「この体験版は、appiariesの新機能のβ版をいち早く体験できるので、ぜひ皆さんに広く利用していただき、弊社にフィードバックをいただければと思う」(阿部氏)  続いて阿部氏は、appiariesにおけるデータ管理構成やデータアクセスの方法、さらにはユーザー管理やアクセス管理の機能について、実際にコード例を示しながらその仕様と使用例を詳しく解説した。 appiariesの使用例(阿部氏の講演資料より) appiariesの今後  ちなみに、appiariesはまだリリースされたばかりのサービスであり、今後次々と機能強化が施される予定だという。具体的にはプッシュ通知機能、メール配信機能、ソーシャル連携機能、アクセス解析機能などを随時サポートしていき、「ゆくゆくは有名どころのBaaSと比較しても遜色ないものへと育てていきたい」(阿部氏)。  さらには同社では現在、Webブラウザアプリ向けのBaaSとしての機能や、データ登録機能の使い勝手を高めることでCMSとして利用できるような機能強化も計画しているという。 参考資料  本勉強会で使われた講演資料や講演動画は、「第34回HTML5とか勉強会 - 「BaaS」(Backend as a Service) -:資料まとめ | イベントカレンダー+ログ」から一覧できるので、参照してほしい。 「イベントカレンダー+ログ」レポート投稿募集中! このレポート記事が掲載されている本サービス「イベントカレンダー+ログ」では、イベント登録者がレポートを投稿したり、資料を一覧できるまとめページを作成できます。新着レポートは一覧に表示され、こちらのRSSにも配信されるので、ぜひご活用ください。