クラウドデータベース・アナリティクス技術の進化について
クラウドの世界にいると、面白いことに当事者であってもマーケットポテンシャルは正確に理解していなく、伸びるマーケットは想像を超えて大きくなって行きます。AWSでクラウドデータベースやアナリティクスと言う領域で10年以上携わってきたが、そんなマーケットの広がりや様々な技術の進化について考察します。
クラウドデータベース・アナリティクス技術の進化
10年前はリレーショナルデータベースに代表される領域が引き続き主流となりここから派生するオープンソース技術(MySQLやPostgreSQLなど)がほとんどのマーケットシェアを占めると思っていましたが、それは大きな間違いでした。データの様々なニーズに応えるべく、新しい技術が次々と開発されました。
当時からクラウドストレージのスタンダードになっていたS3があることで、安価に大量のデータを安全にストアすることが出来、データのニーズは益々増えていく確信はあったが、マーケットの伸びは想像以上でした。
世界規模でサービスを提供する会社が増えたことで、データベースの需要も多様化していき、リレーショナルデータベースだけではインターネットの規模にはとても耐えれなくなっていきました。
マイクロ秒の処理速度を求めてRedisに代表されるインメモリーデータベース、スキーマレスにデータを格納出来るMongoDB、大量のデータ処理が出来るDynamoDBなどのキーバリューストア(KVS)と言った新たな技術がここ10年で一気に増えました。
さらには、これらの技術がクラウド化することで、いわゆるマネージドデータベースと呼ばれる新たなマーケットも生まれました。
アナリティクスの領域でも大量データを処理するためにHadoopに始まり、後にSparkなど様々なオープンソースの技術が出て来ました。
この様々なビッグデータ系オープンソース技術をマネージド化したのがAmazon EMRです。EMRは2009年にリリースされたサービスで、当時、担当GMに話を聞いた際、JeffがYahooが開発したHadoop技術に興味を持ち、そこからかの有名なPRFAQのプロセスを経て出来上がったのがEMRと聞きました。真意は定かではありませんが。
データウェアハウス領域においては、データの規模、それらのデータをクエリーする需要がどんどん増え、オンプレでは拡張に耐えることができなくなり、Redshiftに代表される新たなクラウドデータウェアハウスと呼ばれるマーケットもできました。
データの増え方も考えられないような量で増えていき、かつてはTBのデータをしか持っていなかったお客さんもPBが当たり前になっています。中にはEB(エクサバイト)なんてお客さんもいます。ムーアの法則もびっくりな伸び方です。
それに伴い、データの利用方法も多様化し、昔からバッチが主流であったのが、ストリーミングでデータを処理する技術も進化しています。ここはオープソースのKafka、そのマネージドサービスであるConfluent、AWSではKinesisと呼ばれるサービスがあります。
またまた、様々なアプリケーションが増えたことで、ログも大量に発生し、それらを解析するためのSplunkやオープンソース領域ではElasticSearchそこからフォークしたOpenSearchそしてKibanaと言った技術も進化しました。
現在では、リレーショナルデータベースだけに全てのデータを格納するのではなく、利用方法に応じて最適なツールを使うのが一般化しています。これをPurpose-built database & anlytics toolsなんて言い方をしています。
面白いことにVCもここのマーケットの需要を再認識して、投資が再加速しているように思います。今後5-10年を考えると益々伸びていく領域だと思います。
マネージドデータベースについて
マネージドデータベースとはバックアップ、多重化、拡張と言ったデータベース管理者が本来やっていた業務をクラウド側で自動化する仕組みです。
マネージドデータベースは当初、データベース管理者の仕事を減らすと言うことで雇用を減らすのではと不安視されていました。
では、何故今ではほぼデファクトの様に使われるようになったかと言うと実はゲーム会社の貢献が大きいのです。それも日本のゲーム会社。
ゲームの特徴として、ゲーム毎にシステムを組むが、そもそも当たるかどうかわからないゲームに最初から大規模なデータベースを準備することが難しいのです。
コンピュートリソース(アプリケーションやウェブサーバー)はロードバランサーを前に置いておけば需要に応じてスケールアウトすることも出来るが、データベースは簡単にはそれができません。特にリレーショナルデータベースは。
また、エンタープライズ企業と違ってゲーム会社は専属のデータベース管理者がいません。なるべく手間なく、データベースの管理をしたいと言うことで、需要がマッチしました。
で、10年前、特に日本のクラウド利用者のアーリーアダプターが正にこのゲーム会社でした。
当時はガチャやカードゲーム全盛の時代でそれこそ雨後の筍の如く次から次へとゲーム会社が立ち上がっていました。グリーやDeNAがプラットフォーマーになっていたそんな時代です。
そこで、リファレンスアーキテクチャーとしてマネージドデータベースであるRDS MySQLを使ってデータベース管理費用を削減しつつ、リードレプリカを使ってゲームがヒットした時に直ぐにスケールアウト、マルチAZにしてDBが落ちてもフェイルオーバー出来る構成がウケました。
当時Gumiさんがこのアーキテクチャーを最初に採用し、コロプラさん、ガンホーさん、Cygamesさん、mixiさん、アカツキさんと言ったいろんなゲーム屋さんとお仕事させてもらったのは良い思い出です。
元Gumi CTOの堀内さん(後にAWSのエバンジェリスト、現在は様々なスタートアップの顧問兼旅人)の資料がこちらで見れます。
後にゲーム会社だけでなく、ネットアプリ全般、そして後にエンタープライズ企業にもこう言った構成が一般化して行きました。やはり自分で管理するより、圧倒的に楽なのです。
ベストプラクティスは少しずつ進化して行ったが、マネージドデータベースを使うことが一般化して行きました。
はじめて、デベロッパーマーケティングがどう言うものか腹に落ちたそんな出来事です。意外にも日本のゲーム会社の貢献が大きいのです。
DynamoDBの広がり
DynamoDBはAmazon.comをも支える基幹データベースとして知られていますし、今となってはインターネット規模のアプリケーションを支えるデファクトDBとして認知されましたがどの様に広がったか意外と知らない方も多いので少し書きます。
そもそもDynamoDBのはじまりは、かつてAmazon.comがオラクルDBを採用していたが、年末のピークeコマース需要にDBが耐えらなくなっていました。いわゆるブラックフライデーやクリスマス前の需要です。
そこで拡張性のあるDBが必要と言うことで、新たな技術として、かの有名なDynamoと呼ばれる論文が2007年に発表されました。
ちなみにこの論文の執筆者で良く知られているのが弊社のCTOであるWernerや、今となってはマシンラーニングの第一人者となりこの領域の担当VPになっているSwami。
で、社内で使われていた技術を商用化したのが、2012年に発表したDynamoDBと言うサービスになります。こちらのWernerのブログがDynamoDBの特長についてまとめられています。
ここまでは比較的良く知られている話です。
当時はSwamiに来日してもらい、JAWS-UGで話をしてもらったりして、その界隈の人たちにはアイドル的な人気でしたw
では、そもそもDynamoDBはどうやって浸透して行ったのでしょうか。実は、ヒントはAdTechにあります。
2012 - 2014年ごろは、アドテク会社全盛の時代でした。以前RDS関連で書いたゲーム会社の様にアドテク会社も雨後の筍状態でした。
AdTechにはReal Time Bidding (RTB)と言う仕組みがあり、インターネット広告の需要に対して、即座にBiddingし、最適な広告を表示させる技術が重要になっていました。
当時はそれに対応できる技術もあまりなく、多くの技術者が四苦八苦の末、Cassandraと呼ばれるキーバリューストアを採用していました。
キーバリューストアとはキーとバリューのルックアップに最適されたデータベースになります。つまり、ある属性の人(例えば、男性、30代、IT技術者)と広告を即座にマッチングさせることに最適化された技術です。
どのインターネットサイトを開いても同じ様な広告が追いかけてくる仕組みが正にそれです。
もちろんリレーショナルデータベースでも同じことはあ出来ますが、規模が大きくなると、何億もの属性と何千もの広告を瞬時にマッチングさせるとなるとリレーショナルDBでは対応できなくなります。
で、OracleDBなんかは拡張することが非常に難しく、かつ高額なのです。
ただ、Cassandraの難点として、管理が面倒な点にあります。
そこで、Cassandraを運用していたアドテク会社の多くがDynamoDBにマイグレーションしました。DynamoDBであれば広告マッチングが超高速(ミリ秒の単位)に出来る上、運用もサーバーレスになっていて、完全自動化されています。
その裏のいろんなGo to marketの話はまたGTMに関するスレッドを作って話したいと思います。
ただ、大きな転換点になったのが、Adrollと呼ばれるアドテクスタートアップが、CassandraからDynamoDBにマイグレーションした際のコスト比較をブログにしたことです。当時のブログはないのですが、まとめたケーススタディーがこちらから見れます。
生々しいのですが、当時、Cassandraの技術者を雇うのに、一人頭、年間$300K - $400K、日本円で三千万円から四千万円と言われていました。大卒数年の技術者の給料です。
つまり、ここの費用を減らすだけでも大きなコスト削減になったのです。今となっては、超高速かつ堅牢なDBとしていろんなアプリケーションに採用されているDynamoDBですが、最初は意外なところから需要が増えていきました。
最後にオマケですが、色々あって両脚アキレス腱を断裂し、当時Facebookにこんな投稿したところ、意外なステマ効果ありましたw 少しだけDynamoDBの認知向上にお役立て出来たかもしれません。