コンテンツに移動
データベース

高可用性とデータ所在地を維持できる Spanner の新しいデュアルリージョン構成

2024年7月26日
Nitin Sagar

Sr. Product Manager, Google Cloud

※この投稿は米国時間 2024 年 7 月 23 日に、Google Cloud blog に投稿されたものの抄訳です。

Spanner は、高いスループットと実質的に無制限のスケーリング機能を備えた、Google のグローバルに分散されたフルマネージド データベースです。ピーク時には毎秒 40 億件以上のクエリを処理します。自動シャーディング、ゼロ ダウンタイム、強整合性などの特長を備えた Spanner は、要求の厳しいグローバルなワークロードに対応しており、金融サービス、ゲーム、小売などの業界だけでなく Google 社内でも活用されています。リレーショナルと非リレーショナルの両方のワークロードに使用できます。

従来、Google Cloud リージョンが 2 つしかない国でデータ所在地を維持する方法は、Spanner のリージョン構成(可用性 99.99%)のみでした。これは、Spanner のマルチリージョン構成には 3 つのリージョンが必要で、必然的にそのうち 1 つは国外のものになるためです。こういった場合に Spanner の新しいデュアルリージョン構成を利用すると、データ所在地の要件に準拠しながら業界屈指の 99.999% の可用性を実現できます。このたびオーストラリア、ドイツ、インド、日本で利用可能になった新しいデュアルリージョン構成では、選択した国にお客様のデータが確実に配置されます。

仕組みとフェイルオーバーの管理

Spanner のデュアルリージョン構成は、通常 3 つの異なるリージョンにまたがるマルチリージョン構成と同等の機能を提供することを目指して構築されています。それはつまり、高可用性と目標復旧時点(RPO)ゼロの保証です。

インドで新規にリリースされたデュアルリージョン構成を例に、Spanner インスタンスの動作を確認していきましょう。これらのインスタンスは、ムンバイとデリーにデータを複製します。2 つのリージョンにはそれぞれ 3 つのレプリカがあります。そのうち 2 つは読み取り / 書き込みレプリカで、1 つはウィットネス レプリカです。両リージョンを合わせると、合計 6 つのレプリカが Spanner インスタンスに含まれることになります。この構成をデュアルリージョン モードと呼びます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_qpnFnGH.max-800x800.png

リージョン内の 3 つのレプリカのうち 1 つに影響するゾーン障害が発生した場合、Spanner はデュアルリージョン モードで動作を続けます。レプリカ 2 つ以上という最低限の数(クォーラム)が各リージョンに確保されるため、ゾーン障害が発生してもデータベースは利用可能な状態が維持されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_1ldvAyF.max-800x800.png

万が一、リージョン全体の障害が発生した場合、データベースがデュアルリージョン モードのままなら利用できなくなります。データベースを再び利用できる状態にするには、1 つのリージョンに 3 つのレプリカがあるシングルリージョン モードに切り替える必要があります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_7xdi263.max-800x800.png

この切り替え、つまりフェイルオーバーには、2 つの方法があります。

1 つ目は、Google が継続的にリージョンの障害をモニタリングし、検出したら自動でフェイルオーバーを行う方法です。デュアルリージョン構成のインスタンス全体をシングルリージョン モードに再構成することによって、影響がなかったリージョンで動作を続けます。

2 つ目は、お客様が健全性ダッシュボードを使って手動で検出を行う方法です。可用性またはレイテンシの基準違反アラームがトリガーされたら、シングルリージョン モードへのフェイルオーバーを手動で開始できます。その際には、gcloud CLI で新たに利用可能になった ChangeQuorom API を使用します。Spanner はリージョン障害の場合も継続して RPO ゼロを実現します。

フェイルオーバーを手動で行う場合は、影響を受けたリージョンの復旧後にフェイルバックも手動で行う必要があります。これを行わないと、インスタンスはシングルリージョン モードのままになり、可用性が低くなります。

Spanner のデュアルリージョン構成を使ってみる

新たに利用可能になったデュアルリージョン構成は、新しい Spanner インスタンスを作成するときに Google Cloud コンソールで選択できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_Quqwhmn.max-1200x1200.png

新しい Spanner インスタンスを作成するときに選択するだけでなく、既存のリージョン構成またはマルチリージョン構成を新しい構成に移行することもできます。この場合は、最近リリースされた Spanner のセルフサービスのインスタンス移動サービスを利用します。インスタンスの移動はダウンタイムを必要とせず、Spanner は移動中も引き続き、強整合性を含む通常のトランザクション保証を提供します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_EyQfifp.max-1000x1000.png

Spanner のデュアルリージョン構成をぜひお試しください。詳細については、こちらで公開されているドキュメントをご覧ください。

Spanner の詳細情報をご確認いただき、90 日間無料の Spanner トライアル インスタンスの作成もご検討ください。

ー シニア プロダクト マネージャー Nitin Sagar

投稿先