【正解】A
【0からの解説】
① 前提知識・
リージョン データセット:特定のリージョン(例:asia-northeast1)にデータが保存されるデータセットです。リージョン内の複数ゾーンには冗長化されますが、BigQuery は
別の地理的リージョンへのバックアップやレプリカを自動では作成しません。リージョン全体が物理的に失われるような障害に備えるには、利用者がデータを別の場所にバックアップする必要があります。
・
目標復旧時点(RPO):障害時に「どの時点までのデータを失ってもよいか」を表す指標です。1 日 1 回バックアップする場合、最悪で直近約 24 時間分のデータが失われます。
・
エクスポート(抽出ジョブ):BigQuery のテーブルを Cloud Storage にファイル(Avro、Parquet、CSV など)として書き出す機能です。既定では共有スロット プールで処理され、BigQuery 側の処理料金はかからず、主な費用は Cloud Storage の保存料金です。圧縮形式や安価なストレージ クラスを選ぶことで、保存料金をさらに抑えられます。
・Cloud Storage の
デュアルリージョン/マルチリージョン バケットは、データを地理的に離れた複数のリージョンに冗長保存するため、1 つのリージョンが失われてもデータは残ります。
② 要件と制約語の整理・守る対象は
売上テーブル(データセット全体ではない)。
・
リージョン障害からの保護が必要で、
RPO は 24 時間以内でよい(リアルタイムの複製までは不要)。
・制約語:
コストを最小限に抑える。
③ 正解が要件をどう満たすかBigQuery の信頼性に関するドキュメントの障害計画の例でも、BigQuery のデータを抽出ジョブで毎晩 Cloud Storage にエクスポートしてバックアップとし、その場合の RPO は 24 時間(最悪で 24 時間前のバックアップ)になると説明されています。売上テーブルだけを毎日デュアルリージョン/マルチリージョンのバケットへエクスポートすれば、リージョン障害時にも別リージョンにデータが残り、RPO の要件を満たします。エクスポート処理は無料で、必要なテーブルだけを圧縮ファイルとして保存できるため、選択肢の中で最も低コストです(復旧時はファイルを BigQuery に読み込み直すため復旧時間は長めになりますが、問題文では RTO は求められていません)。
【誤りの選択肢】
B:データセットの日次コピーでもリージョン障害に備えられますが、必要な売上テーブル以外も含めた
データセット全体を複製するうえ、リージョン間のデータ転送料金と、バックアップ リージョンでの BigQuery ストレージ料金が発生します。必要なテーブルだけを圧縮して Cloud Storage に置く A より高コストです。
C:BigQuery のテーブル スナップショットは、元のテーブルと
同じリージョン内に作られるメタデータ中心のバックアップで、誤削除やデータ破損からの復旧(タイムトラベル期間の 7 日を超える保持)には有効ですが、データの耐久性を高めるものではありません。リージョン自体が失われればスナップショットも失われるため、リージョン障害への対策になりません。
D:2 つのリージョンに同時に読み込めば RPO はほぼゼロにできますが、ETL の改修、読み込み処理の二重化、両リージョンでのストレージ料金、整合性の監視などコストと運用負荷が大きく増えます。「RPO 24 時間未満」という要件に対しては過剰で、「コストを最小限」に反します。
【参考】
信頼性についてテーブルデータを Cloud Storage にエクスポートするテーブル スナップショットの概要