GCP Filestore のデータ保護方法:バックアップ、スナップショット、レプリケーション機能の比較
はじめに
GCP Filestoreは、Google Cloud上でマネージドNFSファイルストレージを提供するサービスです。
今回はFilestoreのデータ保護方法について、それぞれの特徴、料金、使い分けについてまとめました。
Filestoreには主に3つのデータ保護方法があります。
- バックアップ
- スナップショット
- レプリケーション
1. バックアップ
概要
バックアップは、Filestoreインスタンスの外部に保存されるリソースです。インスタンスとは独立したライフサイクルを持ち、クロスリージョンでの保存も可能です。
特徴
| 項目 | 内容 |
|---|---|
| 保存場所 | インスタンス外部(プロジェクトレベルのリソース) |
| データ形式 | 増分バックアップ(デフォルト) |
| クロスリージョン | 対応 |
| 対応ティア | Basic HDD/SSD、Zonal、Regional、Enterprise(全ティア) |
| 復元方法 | 新規インスタンスへのリストア、既存インスタンスへの上書きリストア |
仕組み
最初のバックアップはインスタンスデータの完全コピーです。以降のバックアップは増分として、前回からの差分のみを保存します。内部的にはスナップショットを使用して変更履歴を追跡しているため、ソースインスタンスの容量も一部消費します。
バックアップ作成は瞬時に開始されますが、データ量に応じて利用可能になるまで時間がかかります。
gcloudコマンド例
# バックアップの作成(Basicティアの例)
gcloud filestore backups create my-backup \
--project=my-project \
--instance=my-instance \
--file-share=my-share \
--instance-zone=asia-northeast1-a \
--region=asia-northeast1
# 既存インスタンスへのリストア(インスタンスのデータは上書きされる)
gcloud filestore instances restore my-instance \
--project=my-project \
--zone=asia-northeast1-a \
--file-share=my-share \
--source-backup=my-backup \
--source-backup-region=asia-northeast1
# 新規インスタンスを作成してリストア
gcloud filestore instances create my-new-instance \
--project=my-project \
--zone=asia-northeast1-b \
--tier=BASIC_HDD \
--file-share="name=my-share,capacity=1TiB,source-backup=my-backup,source-backup-region=asia-northeast1" \
--network=name=default
料金
バックアップは保存バイト数に基づいて課金されます。
| リージョン | 料金(GiB/月) |
|---|---|
| 東京(asia-northeast1) | 約 $0.10 |
| アイオワ(us-central1) | 約 $0.08 |
※最小課金単位は1時間。クロスリージョンの場合はネットワーク転送料金も発生。
※最新の料金は 公式サイトの料金ページ を参照してください。
2. スナップショット
概要
スナップショットは、インスタンス内部のリソースとして存在し、特定時点のデータ状態を保持します。データが変更されるまで追加の容量を消費しません。
特徴
| 項目 | 内容 |
|---|---|
| 保存場所 | インスタンス内部 |
| データ形式 | 差分のみ保存 |
| クロスリージョン | 非対応 |
| 対応ティア | Zonal、Regional、Enterprise(Basicは非対応) |
| 復元方法 | インスタンス全体のリバート、個別ファイルの復元 |
仕組み
スナップショットはデータの複製を行わないため、作成は通常2分以内に完了し、インスタンスのパフォーマンスに影響を与えません。
複数のスナップショット間では共通データを共有するため、スナップショット間の差分のみが追加容量を消費します。ただし、ファイルの変更が蓄積されると、利用可能なインスタンス容量は徐々に減少します。
インスタンスをスナップショットの状態にリバートすると、現在のデータは削除されます。
gcloudコマンド例
# スナップショットの作成
gcloud filestore instances snapshots create my-snapshot \
--project=my-project \
--instance=my-instance \
--instance-region=asia-northeast1
# スナップショットへのリバート(全体復元)
gcloud filestore instances revert my-instance \
--project=my-project \
--target-snapshot=my-snapshot \
--location=asia-northeast1
料金
スナップショット自体に追加料金はかかりません。ただし、スナップショットが消費する容量はインスタンスの容量から差し引かれます。変更が蓄積されるほど、利用可能な容量が減少する点に注意が必要です。
3. レプリケーション
概要
レプリケーションは、ソースインスタンスを別リージョン(または同一リージョンの別ゾーン)のスタンバイインスタンスに非同期でレプリケートします。
特徴
| 項目 | 内容 |
|---|---|
| 保存場所 | 別リージョン/別ゾーンのレプリカインスタンス |
| データ形式 | 継続的な非同期レプリケーション |
| RPO | 約30分(100MB/秒の変更レート時) |
| 対応ティア | Zonal、Regional、Enterprise(Basicは非対応) |
| フェイルオーバー | 手動(promote-replica操作) |
仕組み
レプリケーションを有効にすると、ソースインスタンスの変更が継続的にレプリカインスタンスへ非同期で転送されます。内部的には5〜10分ごとにコピーがスケジュールされます。
障害発生時は 手動操作(promote-replica)でレプリカをソースに昇格させます。
gcloudコマンド例
# レプリカインスタンスの作成
gcloud filestore instances create my-replica \
--project=my-project \
--source-instance=projects/my-project/locations/asia-northeast1-a/instances/my-source-instance \
--project=my-project \
--location=us-west1-a \
--network=name=default \
--tier=ZONAL \
--file-share=name=vol1,capacity=1TiB
# レプリカの昇格(フェイルオーバー)
gcloud filestore instances promote-replica my-replica \
--project=my-project \
--location=us-west1-a
料金
レプリケーション機能自体は追加料金なしで提供されます。ただし、以下の料金が発生します:
- レプリカインスタンスの料金(ソースと同等のインスタンス料金)
- クロスリージョンネットワーク転送料金
比較表
| 観点 | バックアップ | スナップショット | レプリケーション |
|---|---|---|---|
| 主な用途 | DR、長期保存 | 短期的なリカバリポイント | 事業継続性(BC/DR) |
| 保存場所 | 外部(プロジェクトレベル) | 内部(インスタンス内) | 別インスタンス |
| クロスリージョン | ⭕ | ❌ | ⭕ |
| RPO | バックアップ間隔依存 | スナップショット間隔依存 | 約30分 |
| 個別ファイル復元 | ❌ | ⭕ | ❌ |
| 追加コスト | ストレージ料金 | なし(容量消費のみ) | レプリカインスタンス料金 |
| Basic tier対応 | ⭕ | ❌ | ❌ |
ユースケース別の選び方
ケース1: 開発環境やコスト重視の中小規模システム
おすすめ: バックアップ
Basic HDD/SSDティアを使用している場合、スナップショットは利用できません。定期的なバックアップで十分なケースも多いです。
ケース2: 本番環境の誤操作対策
おすすめ: スナップショット
個別ファイルの復元が可能で、復元も高速です。1日数回のスナップショットを取得し、直近の変更から素早くリカバリが可能です。
ケース3: 高可用性システムのDR
おすすめ: レプリケーション + バックアップ
RPO 30分のレプリケーションで継続的なデータ保護を行いつつ、長期保存用にバックアップも併用します。コストは最も高くなりますが、可用性を最大化できます。
まとめ
Filestoreのデータ保護は、要件に応じて適切な方法を選択することが重要です。
- バックアップ: 汎用的で全ティア対応。DRや長期保存に最適
- スナップショット: 高速で容量効率が良い。誤操作対策に最適
- レプリケーション: 継続的な保護でRPO最小化。BC/DRに最適
これらを組み合わせることで、様々な障害シナリオに対応するデータ保護基盤を構築することができます。
Discussion