イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです。ITトレンド・List Finderの開発をベースに、業務外での技術研究などもブログとして発信していってます!


このエントリーをはてなブックマークに追加

お試し Cloud Spanner

KTNです。
先日、Google Cloud Next '17 in Tokyoに行ってきまして、
元々Google信者だったのですが、
イベントに参加してさらに信者が加速してしまいました。
(日本語おかしいですか?)
もちろんスマホもAndroidを使ってます!

Googleすげーと思ったものいっぱいあるのですが、
以下2点ご紹介したいと思います。

1. Jamboard

 GIGAZINEさんでも取り上げられていました。
 http://gigazine.net/news/20170524-jamboard-launching/

 一言で表すと デジタルなホワイトボード なのですが、
 これの機能がすごいんです。

 1.手書きの文字を読み取ってデジタル可
 2.インターネットの検索結果を画像として取り込んで自由に追記が可能
 3.PC、タブレット、スマートフォンから接続して閲覧・変更可能
   変更はリアルタイムに全員に反映されます
 4.保存も簡単。自動的にGoogle Driveに保存されます
   途中まで書いた状態からいつでも再開できちゃいます

 弊社で同じような製品の Microsoft Surface Hub を使っています。
 ホワイトボードに書くという意味では問題なく使えるのですが、
 上記1〜4にあることは出来なく、
 今後のアップデートで同じような機能が追加されないかと期待しています。

2. Cloud Spanner

 一言で表すと、水平スケール可能なリレーショナル・データベース です。
 聞いた瞬間意味分からない、というかそんなの作れるわけ無いじゃん
 って思ったのですが、どうもGoogle様が本気を出すと出来るようでして、
 ベータ版のサービス提供されています。

 デモも見せてもらったのですが、
 データベースの負荷が上がってきた想定でCloud Spannerのインスタンスを
 増やすというもので、GUI上で10から30に増やすというのをぽちぽちっとやっていて、
 全く停止することなくインスタンス数を変更していました。
 これってすごいことですよね、
 トランザクションを使うことが出来て、最大で99.999%の可用性、
 あと、今はまだサービス提供されていないのですが、
 今後はリージョンをまたいでインスタンスを作成できるようになるようです。

 まさに無敵のCloud Spannerですが、
 実際使ってみると色々制約もあるのでは?と思いまして、
 今回ベータ版のお試しをしてみました!

Cloud Spannerを使う準備

早速、Google Cloud PlatformのConsoleにログインしてみます

1.png

メニューを見ると Spanner があるので選択。

2.png
3.png

 インスタンスを作成しろと言われるので作ります。

4.png
5.png

ドキュメントのリンクがあったのでとりあえず読んでみました。
特に気になったところを抜粋しました。(★つけてます)

★マルチリージョン レプリケーション(複数の地域間でのレプリケーションなど)は、今後のリリースで提供する予定です。
→やっぱり、リージョン間でのレプリケーション実装するんですね。さすがGoogle。

★Cloud Spanner は 3 つのレプリカを維持します。それぞれのレプリカは、リージョン内の異なる Google Cloud + Platform 可用性ゾーンに維持されます。 
→3つの可用性ゾーンにレプリカがあればそうそう止まることはなさそうですね。
(可用性ゾーンはAWSでいうAZだと思ってます)

★2 TiB のストレージを提供できます。
→なかなかのデータ量ですね

★本番環境では、3 つ以上のノードを使用してください。
→なにっ!その理由を書いてほしい!
 1インスタンス × 1時間 稼働させると100円ぐらいなので、
 3インスタンス × 24時間 × 30日 稼働させると 216,000円ぐらいですね。
 長時間使うことによる割引はあると思うのですが、スモールスタートでこれはちょっと高いかも、
 まあ、他に水平スケール出来るサービス無いということを考えると、逆に全然高くないかもですね。

Cloud Spannerを使う準備(続き)

データベースを作成していきます。

6.png

続いてテーブル作ります。

7.png
8.png
9.png

バックグラウンドでテーブル作成処理が動いているようです。

10.png

20秒ぐらいでテーブル作成が終わりました。DDL確認してみます。

11.png

DDLは普通ですね。

12.png

インデックスも作ってみます。

13.png
14.png

これが結構長くて2分ぐらいかかりました。

特に面白くなかったですが、
Webからポチポチやって簡単にテーブルまで作成できました。
今回は疲れたので一旦ここまでにして、
プログラム作ってCloud Spanner使ってみるのは次回にしようかと思います。

実際使ってみるのは次回だとして、
Cloud Spannerを使う上で絶対欲しい!という機能となる、
・リソースのモニタリング
・バックアップ
について軽く見てみました。

15.png

リソースはこんな感じに見れるようでした。
次回、実際に負荷をかけてどんな感じになるのか見てみようと思います。

あとバックアップですが、
ベータ版だからなのかどうやら無いようです。
Amazon RDSみたいにスナップショット取れないと不便ですよね。。。

最後になりますが

GoogleさんのBlog
https://cloudplatform-jp.googleblog.com/2017/02/inside-Cloud-Spanner-and-the-CAP-Theorem.html に気になる記載がありました。

以下抜粋です。
-----抜粋 ここから-----
はたして Spanner は CAP で定義されているような CA システムなのだろうかと。端的に答えると、技術的には違いますが、実際のところ CA システムだと考えて構いません。 違うというのは、ネットワークの分断が発生したときで、実際に Google で起こりました。分断が起きると Spanner は C を選択し、A を犠牲にします。つまり技術的に見ると、Spanner は CP システムなのです。
-----抜粋 ここまで-----

CAと考えて構わないけど、実際はCPです。って、、、
ん?構わなくないだろうが???、
と言いたくなるような、意味不明(そう感じるのは私だけ?)なことが書いてありました。
誰か頭がいい人教えて!!助けて!!
ご連絡はこちらにいただけますと幸いでございます。
 メールアドレス:y_kotani@innovation.co.jp
 Twitter:@y_kotani_inno

ちなみに、CAとかCPって何?については、
CAP定理:「データベースは、3つの望まれる特性(C:一貫性・A:可用性・P:分断耐性)のうち2つまでしか持てない」
というものがあるようでして、
これのいずれを取るのか?というところで、CAとかCPと呼ぶようです。
詳細はこちらを参照ください。
https://ja.wikipedia.org/wiki/CAP%E5%AE%9A%E7%90%86

ここらへんで終わりにしたいと思います。では〜。