こんにちは!クラウドの世界へようこそ。
今回は、世界中の巨大なシステムを裏から支える怪物級データベース「Cloud Spanner(クラウド スパナ)」について、その核心である「データの置き場所とスピードの秘密」を一緒に紐解いていきましょう。
「なんだか難しそう……」なんて身構えなくて大丈夫です。
ここをしっかりとクリアすれば、Cloud Spannerの基本はバッチリマスターできますよ!ぜひ最後までお付き合いくださいね。
—
レストランの「キッチン」で例えてみるデータ配置
いきなりですが、あなたが大人気ハンバーガーチェーンの店長になったと想像してください。
お客さんは世界中にいます。アメリカ、ヨーロッパ、そして日本。
もし、すべてのハンバーガーを日本の本店(ひとつの巨大な厨房)だけで作って世界中に届けていたらどうなるでしょうか?
- 日本のお客さん:「注文してすぐにアツアツが届いた!(最高!)」
- アメリカのお客さん:「注文してから届くまでに何日もかかって冷え冷え……(最悪!)」
これでは世界中のお客さんを満足させることはできませんよね。
そこであなたは考えます。「そうだ、世界中の主要な都市にミニ厨房(分店)を作って、それぞれの場所でハンバーガーをすぐに出せるようにしよう!」と。
Cloud Spannerのマルチリージョン構成(データの配置ポリシー)も、まさにこれと同じことをやっているんです。
—
Cloud Spannerの裏側:データはどこにいる?
Cloud Spannerは、世界中に散らばるサーバーをあたかも「1つの巨大なデータベース」として動かす魔法のような仕組みを持っています。
普通のデータベースだと、「データをどこに置くか」を人間が必死に考えて設定しなければなりませんでした。でも、Spannerは違います。Googleの超絶すごいネットワークとAIのような頭脳が、「今、世界中のどこからアクセスが多いか」を判断して、データを最適な場所に自動でコピーして配置してくれます。
例えば、「東京リージョン」と「アメリカのリージョン」の両方を使う設定(マルチリージョン)にした場合、こんなことが起きています。
1. 近くのサーバーが答えてくれる
日本のユーザーがデータを読み書きするときは、日本(またはその周辺)にあるサーバーがシュッと対応します。だから、光の速さに近いスピード(超低レイテンシ)で動くんです。
2. 地球の裏側で何かが起きても大丈夫(耐障害性)
たとえ日本のサーバーが置かれているエリアで大きな自然災害が起きたとしても、アメリカや別の場所にある「コピー(レプリカ)」が即座にバトンを受け取ります。「お店が全焼したから営業停止です」なんてことは絶対に起きません。
—
「読み取り」と「書き込み」のドラマ
ここで、ちょっと面白い秘密を教えましょう。
データの世界では、「読むこと(参照)」と「書くこと(更新)」で、スピードの出し方がちょっと違います。
- 読み取りは「どこでもドア」
データを見るだけなら、あなたの目の前(一番近い場所)にあるコピーを見ればいいので、爆速です。
- 書き込みは「全員の合意」が必要
「お金の残高が変わった」「商品の在庫が減った」という大事な書き込みのときは、世界中に散らばるリーダーたちで「今からこのデータを変えるよ!異議なし?」という会議を開く必要があります。
「えっ、世界中で会議をしたら時間がかかるのでは?」と思いますよね。
そこがGoogleのエンジニアたちの天才的なところです。「TrueTime(トゥルータイム)」という、原子時計とGPSを使った超高精度な時間合わせの技術を使い、世界中のサーバーの時間をピタッと同期させています。これにより、地球の裏側とのやり取りであっても、最短ルートで安全に素早く書き込みを完了させることができるのです。
—
実務でどう使う?簡単なイメージを覗き見
実際にCloud Spannerを使うとき、私たちは「このデータをどのエリアのグループに置きますか?」というルール(配置ポリシー)を選びます。
例えば、コード(設定のイメージ)を書くときはこんな雰囲気です。
— 【イメージ】日本とアメリカの両方で超高速にデータを安全に扱いたいときの雰囲気
— 実際にはGoogle Cloudのコンソール画面やTerraformというツールでポチポチッと設定します。
CREATE DATABASE global_shop_db
— データの置き場所(マルチリージョン)を指定するイメージ
— 「アジア」と「アメリカ」のユーザーどちらも待たせない最強の配置にします
;
※実際の構文はもう少しシンプルですが、頭の中では「世界地図を広げて、どこに金庫を置くか決める感覚」で設定しています。
初心者の方であれば、まずは「東京と大阪」のような国内の複数拠点(デュアルリージョン)から始めてみるのがおすすめです。これだけでも、片方のデータセンターが止まるような大事故に耐えられる、ものすごく堅牢なシステムが完成します。
—
まとめ:ここをクリアすれば怖くない!
今回は、Cloud Spannerのデータ配置ポリシーと分散原理について、日常の例えを交えてお話ししました。
- データは世界中の「一番いい場所」に賢く配置される
- ユーザーの近くのサーバーが答えてくれるから、とにかく速い
- 万が一の災害が起きても、別の場所のコピーが守ってくれる
Cloud Spannerは、一見すると難解な分散システムの塊ですが、その本質は「世界中のお客さんを誰ひとり待たせず、絶対にデータを失わないおもてなしの心」で動いています。
ここを理解できれば、Spannerを使うときのワクワク感が何倍にも膨らむはずです。
ぜひ、あなたの次のプロジェクトでもこの「世界を股にかけるデータベース」を体感してみてくださいね。それではまた!
コメント