日本情報通信の江口です。
はじめに
BigQueryのデータ保存
DRを考える
そんな中で今回課題にしたのは、「リージョン障害があったときに、別リージョンのDR(Disaster Recovery)サイトでシステムを稼働させる」というシナリオを考えた場合です。
前提として、DRを検討する場合には、RPO(目標復旧時点)やRTO(目標復旧時間)といった障害復旧要件の定義をしたうえで、インフラ・アプリケーション・人的体制など複数の切り口からそれを実現するための設計を行うこととなります。
とはいえ、フルマネージドなインフラ側で可能な限り高いRPO/RTOを実現したい、とGoogle Cloudに期待したいのが正直なところでしょう。それが実現出来れば、アプリケーション・人的体制の負担は相対的に軽くなり、信頼性の高いシステムを構築できます。
BigQueryのロケーション
BigQueryのリージョン間同期
- データセットコピーの場合: 公式ページより
コピージョブ間の最小頻度は 12 時間です。
- BigQuery Data Transfer Serviceの場合: 設定画面より
裏技かもしれない方法
概要
この12時間という最小頻度をどうにかできないか、を試してみたのが今回の本題です。
前述の画像
という通り、Data Transfer Serviceを1つ設定する時には、12時間が最小頻度です。
ただし、転送設定自体を複数設定すれば、12時間より短いスパンで設定できるのでは?と思いました。
実施事項
まずは、asia-northeast1とasia-northeast2それぞれにデータセットを用意しました。
asia-northeast1(東京)にデータセットと、コピー確認用のテーブルを2つ用意しました。
そしてコピー先にはasia-northeast2(大阪)にデータセットを、テーブル無しで作成しました。
この状態で、複数のTransfer Serviceジョブを作ってみます
それぞれ、最小頻度が12時間は変えられないものの、時間をずらしてコピーする転送設定を2つ用意してみました。少なくとも作成時点で、「同一設定の転送設定があるため作成できません」のようなエラーはありませんでした。
検証結果
実際に動作するか見てみます。
14:30 (1つ目の転送設定)
転送は成功しています。
BigQueryを見ても、14:30の起動を受けてasia-northeast2(大阪)のデータセットにコピーされたデータセットが作られています。
15:30 (2つ目の転送設定)
こちらも転送が成功しています。
BigQueryを見ても、15:30の起動を受けてasia-northeast2(大阪)のデータセットにコピーされたことが、最終更新から見て取れます。
つまりこの動きからすると、「Transfer Serviceの1設定単位で12時間単位なだけであり、リージョン間コピーの実行最小頻度が12時間というわけではない」のが分かります。
注意事項
まとめ
参考
- https://cloud.google.com/bigquery/docs/locations?hl=ja#multi-regions
Google Cloud、Google Workspace に関するご相談はXIMIXへ!
Google Cloud、Google Workspaceに関する お問い合わせはこちら
執筆者紹介
- カテゴリ:
- Google Cloud
- キーワード:
- Google Cloud