クラウド図鑑 Vol.26

Googleは、Hadoopのようなモダンなビッグデータ技術の源流であり、従来のテクノロジーでは対処できない膨大なデータ処理を可能とするソフトウェアを独自に開発してGoogleのさまざまサービスに応用してきた。Googleのクラウドで提供されているビッグデータ関連のサービスは、まさにGoogleのサービスで使われてきたテクノロジーであり、分散データ処理のHadoopはもちろん、GmailやGoogle Searchなどを支えてきたNoSQLデータベースの「Bigtable」、数十億、数百億のデータを秒単位で高速に検索できる「BigQuery」などは、Googleによって巨大なデータへの対応能力を実証済みである。オンプレミスでの構築に時間や労力を必要とするHadoopをはじめとして、BigQueryのようなデータ解析システム、データ収集のためのソフトウエアなどビッグデータのためのエンドトゥエンドの機能がオンデマンドで即座に利用できる。そして、巨大なデータの蓄積には、「Cloud Storage」が利用可能。しかも、多くのサービスは、マネージドサービスとして提供されており、多ノードのクラスターに関するハードウェアやOS、基本ソフトウェアの管理・運用の手間もなくリソースの拡張も自動的に行われる。さらに、Googleが得意とする機械学習(Machine Learning)や画像処理などの先進的な機能をAPIで連動させることも可能である。いずれにしても、ビッグデータ処理の先駆者としてGoogleが莫大な投資をしてきた独自のソフトウェアを、高速なネットワークや大容量ストレージなどファンダメンタルな能力に優れるデータセンターで使えるGoogleのクラウドはビッグデータのための有力な選択肢といえるだろう。

Cloud Bigtableの設定画面
Screenshot 2015-10-06 at 00.50.05 - Display 1
(クリックで拡大)

URL  https://cloud.google.com/
2015年10月7日 株式会社クラウディット 中井雅也

機能

ビッグデータに必要な「データ収集」「データ蓄積」「データ分析」の処理をサポートできるサービスを提供している。最も特徴的といえるデータ分析系の「BigQuery」は従来のデータベースやDWHでは対応できないような数十億〜数百億の大規模データを数百台〜数千台規模の並列処理によって秒単位でSQLライクな言語を使って検索可能にする。データは独自のカラム型(列指向)データベースに格納し、自動的にクラスターに分散され、インデックスの作成も不要で、運用関連のタスクはマネージドサービスとしてGoogleが行う。BIツールの対応も進んでおり、Tableau SoftwareやQlicView、BIMEなどが対応している他に、ODBC/JDBCドライバーも整備されつつある。データはGoogleのCloud Storage、あるいはCloud Datastoreのバックアップからロードできる他にStreaming insertでリアルタイムにデータ取り込み、また、ログ収集によく使われるオープンソースのFluentdと連携が可能。またBigQueryのデータは、SQL クエリの他にも、Cloud Dataflow、Spark、Hadoop からアクセスすることもできる。データ分析系として、もうひとつ用意されている「Cloud Dataproc」は、GoogleによるHadoop MapReduce、Spark、Pig、Hiveのマネージドサービスである。これらはオープンソースのプロジェクトとして普及しているものと同じであり、ノウハウやツールをそのまま活用できる。コンソールから数百台規模のクラスターを構築し動的に構成を変更することができるが、クラスター構成操作は90秒以内に完了するという。DataprocはBigQuery、Cloud Storage、Cloud Bigtableといったサービスと統合されており、ストレージはHDFSとあわせてGoogle Cloud Storageも使える。データ蓄積系としては、以前の記事であるGoogleのデータベースサービスGoogleのストレージサービスを参照いただきたいが、ここでは、サービスとして比較的新しい「Cloud Bigtable」を取り上げる。「Cloud Bigtable」は、Googleの検索エンジン、Gmail、Youtubeなどの基盤として10年以上使われてきた独自開発のNoSQLデータベースのマネージドサービスである。数億人規模のユーザーに使われるGoogleのサービスを支えてきただけに1 桁ミリ秒のレイテンシを維持しながら数百ペタバイトのデータと 1 秒間に数百万回の読み書きを可能にするケーラビリティを実現しているという。データの分散やレプリケーションも自動的に行われ、ダウンタイムなしでクラスタのサイズを容易に変更できる。Bigtableへのアクセスは標準的な Apache HBase のオープンソース APIを使い、HadoopやSparkとの統合も可能。 Googleは、もうひとつのNoSQLのサービス「Cloud Datastore」も提供しているが、こちらもBigtableをベースとしており、SQLでのアクセスやトランザクション機能を上位で実装したものである。したがって、Bigtableのほうがプリミティブであるが、より高速でスケーラブルで複雑なワークロードに対応できるという。データ収集とリアルタイム分析には、膨大なモバイル機器やIoTの規模にも対応できるストリーミング分析、バッチデータ処理、ETL(抽出、変換、ロード)などに応用できる「Cloud Dataflow」をマネージドサービスとして提供する。処理のリソース管理は完全に自動化され、スケールアウトも自動的に行われる。Dataflow API によって、データ ソースにかかわらず、MapReduce 風の演算、高度なウィンドウ処理などが可能。また、Cloud Dataflow は Cloud Storage、Cloud Pub/Sub、Cloud Datastore、Cloud Bigtable、BigQuery と連携できる。データ収集系には、Googleのグローバルネットワーウ上で動作するメッセージング通信のマネージドサービス「Cloud Pub/Sub」も利用できる。こちらもGoogleの広告やハングアウトといった Google 自身のさまざまなサービスへ接続するのに使用しているのと同じ技術を用いており、自動的にスケールしながら多対多の信頼性の高いメッセージング通信を可能にする

使いやすさ

BigQuery、Cloud Bigtable、Cloud Dataproc、Cloud Dataflow、Cloud Pub/Subは、コンソールから設定/操作が可能で、簡単にサービスを利用開始できる。いずれのサービスもマネージドサービスであり、運用はほとんどなく、クラスター構成なども簡単に変更ができるか、または自動で調整されるようになっている。BigQueryでは通常のデータベースやDWHで必要となるインデックスなどのチューニングや設計も全く必要なく、データをロードしたら即座に検索に専念できる。BigQueryはSQLライクな言語で検索が可能で、BIツールとの連携も可能。Cloud Bigtableは、この分野では標準的なApach HBaseのAPIが使える。Cloud Dataflowも開発者用のSDKが用意されている。

マニュアルや書籍など

GoogleによってチュートリアルやAPIリファレンスなどのドキュメントが用意されているが、現時点では英語のものが多い。BigQueryに関しては日本語の書籍がある。

拡張性

BigQueryは大規模データに対して数百台〜数千台規模の並列処理を自動的に行う。インデックスなしのフルスキャンを前提としたアーキテクチャで、運用を気にせずデータを柔軟に追加/拡張していけるが、データのロード回数やサイズ、大規模なジョイン処理などに制約がある(しかし一般の企業ユースで問題になるレベルではない)。Bigtableはコンソールから最大30台のクラスターを構成できる。数百ペタバイトまでのスケーリングをシームレスかつ自動的に行い、1 秒間に数百~数千万回の処理が可能とのこと。BigQueryにしてもBigtableにしても世界最大級のデータを保有するGoogleの内部で使われてきただけに、一般企業のユースケースで拡張性が問題になることは考えにくい。Cloud Dataflowにおいても自動スケールで処理能力は自動的に拡張される。

可用性

BigQueryは、複数地域への透過的なデータ レプリケーションによって、障害が発生してもデータは保護されており、利用を継続することができる。Bigtableもデータレプリケーションによって障害が発生してもサービスは継続される。Googleの主要サービスの基盤となっているだけに可用性についても実証済みといえる。Cloud Dataprocでは、デフォルトのHDFSによってデータは冗長化される。BigQueryやBigtable以外のデータベース系のサービスの可用性については、「Googleのデータベースサービス」を、ストレージ系のサービスの可用性については、「Googleのストレージサービス」を参照いただきたい。

SLA

BigQueryとCloud StorageのSLAはMonthly Uptimeパーセンテージ99.9%。
Cloud Dataflow、Cloud Dataproc、および、現在ベータのCloud BigtableにはSLAはない。

自動化機能

BigQuery、Cloud Bigtable、Cloud Dataproc、Cloud Dataflow、Cloud Pub/Subはマネージドサービスとして提供されており、管理はGoogleによって行われ運用タスクは自動化される。他のGoogleのサービスと同様にプログラミングインタフェースが用意されており、これらのサービスを連携させてデータの収集から蓄積、分析を自動化したり、他のサービスと連携させることが可能。

セキュリティ

BigQueryは保管データも転送データも暗号化され、ロールベースの ACL を設定することでアクセスを制御可能。Cloud Bigtableも、データは暗号化され、ロールベースの ACL でアクセスを制御可能。Cloud Dataprocにおいても認証やアクセス管理、暗号化の機能があり、また、Google Cloud Storageを利用することでストレージのレベルでデータが暗号化される。

データセンターの場所

Googleのクラウドは、北米、ヨーロッパ、アジアの3拠点(リージョン)で運用されており、各リージョンは複数のゾーン群で構成される。これまで Google Cloud で課題とされてきた日本のデータセンターは、2016年11月8日に東京リージョンの正式運用が発表された。2015年5月現在では世界で10のゾーンを展開している。「ゾーン」という形でデータセンターの場所を指定することができる。ただし2015年7月の時点で日本にデータセンターはない。

実績・シェアなど

Googleの導入事例のページにBigQueryの導入企業が紹介されているが、ビッグデータの分野では、最大の導入実績はGoogleがBigQueryやBigtableを自社サービスで利用してきたことだと考えられる

エコシステム

BigQueryにはパートナーエコシステムが形成されつつあり、BIツールやデータ統合のソフトウェアなどが連携可能になっている。Dataprocでは、基本的にHadoopのエコシステムがそのまま利用できる。

価格および支払い方法

Googleの他サービスと同様に従量課金で、基本的にドル建てのクレジットカート支払いになる。BigQueryはストレージ処理と検索処理で課金され、ストレージはギガバイトあたり月額$0.020、または、ストリーム処理200MBごとに$0.01、検索処理はテラバイトあたり$5となる。Cloud Dataprocは利用するCompute Engineのインスタンス料金に使用料として、仮想CPUごとに時間あたり$0.01の追加料金となる。Cloud Bigtableはベータではあるが、料金は決まっており、クラスターノードあたり時間ごとに$0.65と、ストレージがSSDの場合でギガバイトあたり月額$0.17、HDDの場合でギガバイトあたり月額$0.026、ネットワークは同一ゾーンでは無料だが、リージョンをまたぐと追加料金が発生する。Cloud DataflowとCloud Pub/Subはここでは割愛する。