Amazon DynamoDBがFine-Grained Access Controlに対応し、もはやMBaaSの体制は十分整った
表題の通り、AmazonがDynamoDBをFGAC(Fine-Grained Access Control=行・列レベルのアクセス制御)に対応しました。
これにより、既報のソーシャルログイン対応とあわせて、モバイルユーザが直接DynamoDBを利用することが可能になり、MBaaSの重要なピースである構造化データストアが提供されることになりました。非構造化データ(=ファイル)を格納するAmazon S3、プッシュ通知を実現するAmazon SNSと合わせて、もはやAWSはMBaaSであると言ってもまったく遜色はありません。
なお、以前自分は「AWSがソーシャルログイン可能に。つまりAWSが事実上のMBaaSになった - snippets from shinichitomita’s journal」という若干の飛ばし気味の記事を書いたのですが、ちゃんとAmazonさんがフォローしてくれましたのでホラ吹きにならずにすみました。
あとはDynamoDBをちゃんと使えるようになるとかなりパワフルになりそうですが、現在STS自体はDynamoDBへのアクセスもサポートしているものの、今のところレコードレベルでアクセス制御ができるわけではなさそうです。
AWSがソーシャルログイン可能に。つまりAWSが事実上のMBaaSになった - snippets from shinichitomita’s journal
ブラウザ内JavaScript SDK
今回はそれとあわせて、ブラウザ上のJavaScript(HTML5アプリ)から利用できるSDKについてもアナウンスされています。
- JavaScriptだけでAmazonクラウドのストレージ、NoSQLデータベース、プッシュ通知、ソーシャルログインなどを実現する「AWS SDK for JavaScript in the Browser 」公開 - Publickey
- ブラウザ内のJavaScriptからAWSにアクセスできるSDKをAmazonがローンチ…サーバサイドのコードはいっさい不要 | TechCrunch Japan
実際は、既にブラウザからS3へのアクセス自体は可能になっていたので、トークン受け渡しやAPI呼び出しの部分をちゃんとライブラリとしてまとめた+S3以外のサービス(とくにDynamoDBとSNS)にも対応した、ってところが新しいという感じでしょうかね。
(余談:それにしてもわざわざ"JavaScript in Browser"と書くところ、やっぱNode.js人気なんだなあ)
MBaaSベンダーへの影響
もちろん、これで即座に「他のMBaaSサービス死亡のお知らせ」というわけではないとは思います。実際Amazonで他のMBaaSが提供しているデータストア相当のアクセス制御のポリシーを設定するのはかなり面倒です。それに、DynamoDBというNoSQLデータベースの特性を考えると、やはりアクセスパターンに応じた効率的なデータ設計から考えないといけないことが多く、それなりにサーバサイドに慣れた人が使うもの、という印象です。もし「サーバサイドの技術者はまったくいらない」を達成するところが究極のMBaaSなのだとすると、そこにはまだまだ至っていません。まあそれでも、これでEC2インスタンスの運用およびアプリケーション配布などを考えなくてよくなる、というのはすばらしいことなのですが。
とりあえず運用コスト面に絞って考えると、DynamoDBのトランザクション数が上がってきた時にかかる課金額と、現在のMBaaSが設定しているAPI課金額を比べてどれくらい釣り合いそうか、ってところが焦点だと思います。最近だとStackMobなどはAPIコール数による課金形態をとりやめていたりするので、まだまだ生き残りをかけて熾烈な争いが繰り広げられそうではあります。