こんにちは!Cloud Spannerの世界へようこそ。
今日は、Cloud Spannerの心臓部の一つである「データ配置ポリシー」についてお話ししますね。
「データ配置ポリシー」って聞くと、なんだか難しそうな呪文のように聞こえるかもしれません。でも大丈夫。ここをクリアすれば、Cloud Spannerの基本はバッチリマスターできますよ!
今回は、専門用語をできるだけ使わずに、僕たちが普段暮らしている世界に置き換えて優しく解き明かしていきましょう。
—
1. 「データ配置ポリシー」って、要するにどういうこと?
想像してみてください。あなたは世界中にたくさんの支店を持つ、超巨大なスーパーマーケットの店長さんです。
お店で売る「りんご」や「おもちゃ」の在庫を、どこに置いておけばお客さんが一番ハッピーになるでしょうか?
- 日本のお客さんには、やっぱり日本の倉庫にあったほうがすぐに届きますよね。
- でも、ヨーロッパのお客さんのために、わざわざ日本の倉庫から飛行機で送っていたら、届くまでに時間がかかるし、送料も高くなります。
- かといって、何でもかんでもすべての国に同じだけの在庫を置くと、今度は倉庫の維持費が大変なことになります。
Cloud Spannerの「データ配置ポリシー」とは、まさにこの「大切なデータを世界のどこにどうやって置くか」を決めるルールのことです。
Cloud Spannerは、世界中にサーバーのネットワークを持っています。その広大なネットワークの「どこにデータを保管し、どこからアクセスさせるか」を、私たちのビジネスの都合に合わせてカスタマイズできるのが、この機能のすごいところなのです。
—
2. なぜこの設定がそんなに重要なの?
理由は大きく分けて2つあります。
① スピード(パフォーマンス)のため
データが入っているサーバーと、それを使いたい人(アプリやユーザー)の距離が近ければ近いほど、データが届くスピードは速くなります。東京にいるユーザーなら、データも日本の近くにあったほうが、サクサク動いて気持ちがいいですよね。
② お約束(コンプライアンス)のため
国や地域によっては、「その国の人たちのプライベートなデータは、絶対にその国の中から持ち出しちゃダメ!」という厳格な法律(ルール)があります。
データ配置ポリシーを正しく設定しておけば、「このデータは絶対にヨーロッパの土地から出さない!」といったお約束をしっかり守ることができます。
—
3. 具体的にどうやって設定するの?(イメージしてみよう)
Cloud Spannerでは、データベースを作る時に「このデータはこういう風に置いてね」と指定します。
例えば、こんな感じです。
— 【イメージ図】データベースを作る時に、データの置き場所を指定する設定
— ※実際のコードの雰囲気を感じてもらうための例です
CREATE DATABASE MyAwesomeShop
— ここで「このデータは主に日本(アジア)の近くに置いてね」と指定します
— (実際のSpannerではマルチリージョンやリージョンという単位で指定します)
これを設定すると、Cloud Spannerの頭のいいシステム(分散エンジン)が自動的に働き出して、データを最適な場所に綺麗に並べてくれます。
もしお店が世界中に広がって、データの置き場所を変えたくなったらどうすると思いますか?
お店をいったん閉めて引っ越し……なんて必要はありません。動かしながら、裏側でスイスイとデータの置き場所を調整してくれるのが、Cloud Spannerの本当に痺れるところです。
—
4. 先輩エンジニアからのアドバイス
Cloud Spannerを触る時、初心者のうちは「とりあえず全部の場所に同じデータを置けばいいや!」と思いがちです。でも、それだとコストが無駄にかかってしまったりすることがあります。
だから、設計するときはこう考えてみてください。
1. 「私のユーザーは、主にどこにいるんだっけ?」(地理的な視点)
2. 「このデータは、どこの国の法律を守る必要があるんだっけ?」(ルールの視点)
この2つさえハッキリしていれば、データ配置ポリシーの選択肢は自然と見えてきます。
—
まとめ
- データ配置ポリシーとは、世界中のどこにデータを置くかを決める「お店の倉庫の場所決め」のようなもの。
- 上手に設定すれば、「爆速のスピード」と「国や地域の厳格なルール遵守」の両方を手に入れることができる。
- 難しい仕組みはCloud Spannerが全部裏側でやってくれるので、私たちは「どこに置きたいか」を伝えるだけでOK!
データ配置ポリシーの基本、つかめましたか?
ここを押さえておけば、Cloud Spannerという巨大なシステムをまるで自分の手足のように操れるようになりますよ。
それでは、次のステップでも一緒に楽しく学んでいきましょう!
コメント