Cloud Service
Filestore
複数の VM や GKE から同時にマウントできるフルマネージドな共有ファイルストレージ(NFSv3)。AWS の Amazon EFS に相当。
- 1.複数の VM やコンテナから同時マウントできる NFSv3 の共有フォルダ。
- 2.容量は作成時に指定し手動でスケールアップ。縮小は不可で自動伸縮もしない。
- 3.容量がほぼ性能を決めるので、必要スループットから逆算してサイジングする。
解決する課題
- 複数の VM・コンテナで同じファイルを共有したい(Web コンテンツ・アップロード・HPC の中間データ等)
- NFS サーバーを自前で構築・運用したくない(OS パッチ・冗長化・バックアップを任せたい)
- GKE の Pod から ReadWriteMany な永続ボリュームを使いたい
- レンダリング・ゲノム解析・EDA などで高スループット・低レイテンシな共有領域が欲しい
主要概念と用語
- インスタンス: Filestore の単位。1 つの NFS エンドポイント(IP アドレス)を持つ
- サービスティア: 性能・容量・可用性の区分。
BASIC_HDD/BASIC_SSD(旧 Standard/Premium)、ZONAL、REGIONAL、ENTERPRISE - ファイル共有(share): インスタンス上のエクスポート単位。クライアントは
IP:/<share名>でマウントする - 容量(capacity): 作成時に GiB 単位で指定。自動伸縮はなく、後から手動でスケールアップ(縮小は不可)
- VPC ピアリング / Private Services Access: Filestore は割り当て済み IP 範囲を使い、VPC とピアリングして内部 IP で接続する
- スナップショット / バックアップ: 特定時点のコピー。バックアップは別リージョンへの復元にも使える
仕様・制限・クォータ
- プロトコルは NFSv3(EFS の NFSv4.1 とは異なる点に注意)
- 作成時に容量を指定。ティアごとに最小・最大容量と増減の刻みが決まっている
- BASIC(HDD/SSD): 1 TiB 〜 数十 TiB 規模
- ZONAL / ENTERPRISE: 1 TiB〜100 TiB(要件に応じた高容量・高スループット)
- 可用性の範囲はティア依存:BASIC / ZONAL は単一ゾーン、REGIONAL / ENTERPRISE はリージョン内の複数ゾーンへ冗長化
- スループットは容量にほぼ比例(BASIC/ZONAL)。容量を増やすほど性能も上がる
- インスタンスは VPC 内の内部 IP で公開され、インターネットから直接はマウントできない
- プロジェクト/リージョンごとに容量・インスタンス数のクォータがあり、引き上げ申請が可能
内部の仕組み
Filestore は Google が運用するマネージドな NFS サーバー群で、各インスタンスに専用の内部 IP が割り当てられます。クライアント(VM / GKE ノード)はその IP に対して標準の NFSv3 でマウントし、同一ファイルシステムを多数から同時に読み書きできます。
- 接続は Private Services Access(VPC ピアリング)経由。Filestore 用に確保した IP レンジが VPC とピアリングされ、内部経路で到達する
- REGIONAL / ENTERPRISE ティアは、リージョン内の複数ゾーンにデータを冗長化し、ゾーン障害に耐える
- ENTERPRISE は GKE 向けに**複数共有(マルチシェア)**を 1 インスタンスに同居させ、多数の小さな PV を効率的に割り当てられる
EFS は使った分だけ自動で伸縮しますが、Filestore は作成時に容量を指定します。 不足したら手動でスケールアップが必要で、容量の縮小はできません。サイジングは慎重に。
設計パターン / ベストプラクティス
- GKE の共有ボリューム: CSI ドライバ経由で
ReadWriteManyの PersistentVolume として利用。多数 Pod が必要なら ENTERPRISE のマルチシェアで PV を効率配分 - HPC / レンダリング: 高スループットが要るなら ZONAL / ENTERPRISE。容量=性能なので、必要スループットから逆算して容量を決める
- 可用性要件で選ぶ: ゾーン障害に耐える必要があれば REGIONAL / ENTERPRISE、コスト最優先で単発用途なら BASIC_HDD
- 同一ゾーン配置: レイテンシ最小化のため、マウントするクライアントと Filestore を同じゾーン(BASIC/ZONAL)に置く
- バックアップの自動化: スナップショット/バックアップをスケジュール化し、誤削除・障害に備える
運用・監視
- Cloud Monitoring でメトリクスを監視。
file.googleapis.com/nfs/server/used_bytes_percent(使用率)、/read_ops_count・/write_ops_count、/read_bytes_count・/write_bytes_countなどで容量と I/O を把握 - 使用率が逼迫する前にスケールアップ(容量追加)を計画。縮小不可なので余裕を持たせる
- マウントできないときは、ファイアウォールルール(NFS のポート 2049 等)、VPC ピアリング/Private Services Access の設定、クライアントの
nfs-common導入を確認 - スナップショット/バックアップの取得状況とリストア手順を定期的に検証
コスト
課金は主にプロビジョニング済み容量(GiB)× ティア単価 × 時間で決まります。EFS の「使った分だけ」とは異なり、確保した容量に対して課金される点が重要です。
| ティア | 可用性 / 性能 | 向いている用途 |
|---|---|---|
| BASIC_HDD(旧 Standard) | 単一ゾーン・HDD・低単価 | 大容量で性能要件が低い共有・アーカイブ寄り |
| BASIC_SSD(旧 Premium) | 単一ゾーン・SSD・中性能 | 一般的なファイル共有・Web コンテンツ |
| ZONAL | 単一ゾーン・高スループット | HPC/レンダリング等の高性能な単発ワークロード |
| REGIONAL / ENTERPRISE | 複数ゾーン冗長・高可用 | 本番の重要データ・GKE のマルチシェア |
容量=コストかつ容量=性能。過剰プロビジョニングは無駄になり、不足すると性能も頭打ちになります。 必要スループットと容量の両面から最小構成を見積もり、不要なバックアップは保持期間で整理しましょう。
セキュリティ
- 接続は VPC 内の内部 IP に限定され、インターネットへは公開されない
- 保存時の暗号化は既定で有効。CMEK(顧客管理鍵) で Cloud KMS の自前鍵も利用可能
- ファイアウォールルールで NFS(2049 等)の到達元を必要なサブネット/タグに絞る
- IAM で Filestore インスタンスの作成・削除・スケール等の管理操作権限を制御する
- NFS のファイルアクセス権は UID/GID(POSIX) ベース。クライアント側の uid/gid 設計を揃える
ファイアウォールで NFS ポート(2049 等)を広く開放し、想定外のサブネットからマウント可能にするのは NG。 NFSv3 は通信そのものの認証が弱いため、到達元を最小化し、内部 IP かつ限定したネットワークからのみアクセスさせます。
関連サービス・比較(AWS との対応)
| 観点 | Filestore(GCP) | Amazon EFS(AWS) |
|---|---|---|
| 位置づけ | マネージド共有ファイル(NFS) | マネージド共有ファイル(NFS) |
| プロトコル | NFSv3 | NFSv4.1 / v4.0 |
| 容量 | 作成時に指定・手動スケールアップ(縮小不可) | 自動伸縮(プロビジョニング不要) |
| 冗長範囲 | ティア依存:単一ゾーン / リージョン(複数ゾーン) | リージョン内・複数 AZ 冗長 |
| 接続 | VPC ピアリングの内部 IP | 各 AZ のマウントターゲット |
| 低頻度クラス | なし(ティアで選択) | IA クラスへライフサイクル自動移行 |
共有ファイルが要る=Filestore、単一 VM の高速ブロックディスク=永続ディスク(PD)、 オブジェクト配信/バックアップ/データレイク=Cloud Storage。
ハンズオン / CLI例
# Filestore インスタンスを作成(BASIC_SSD・1TiB・共有名 vol1)
gcloud filestore instances create demo-fs \
--zone=asia-northeast1-a \
--tier=BASIC_SSD \
--file-share=name=vol1,capacity=1TiB \
--network=name=default
# 割り当てられた内部 IP(NFS エンドポイント)を確認
gcloud filestore instances describe demo-fs \
--zone=asia-northeast1-a \
--format="value(networks.ipAddresses[0])"
# VM 側でマウント(nfs-common 導入済みとする)
# 例: IP が 10.0.0.2 の場合
sudo mkdir -p /mnt/filestore
sudo mount 10.0.0.2:/vol1 /mnt/filestore
# 容量をスケールアップ(例: 2TiB へ。縮小は不可)
gcloud filestore instances update demo-fs \
--zone=asia-northeast1-a \
--file-share=name=vol1,capacity=2TiB
Google Cloud Service
Filestoreを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ストレージ
比較で見る軸
クラウド: Google Cloud / カテゴリ: ストレージ / 難易度: intermediate
導入後に効く点
容量は作成時に指定し手動でスケールアップ。縮小は不可で自動伸縮もしない。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- ストレージ
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- reliability / performance / cost
判断チェックリスト
- 自社の用途が「ストレージ / reliability」に近いか確認する。
- 強みである「複数の VM やコンテナから同時マウントできる NFSv3 の共有フォルダ。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。