Cloud Storage FUSE とは
Cloud Storage FUSE とは、オープンソースの FUSE アダプタです。Cloud Storage FUSE を使うことによりCloud Storage バケットをマウントしてアクセスできるため、標準のファイルシステムでバケット内のオブジェクトを読み取り、書き込むことができます。
メリット
- Cloud Storage のデータに直接アクセスできるようになるので、Cloud Storageからダウンロードとアップロードの処理が不要になります。
- Cloud Storage をマウントすることで、ファイル容量が大きくなってもスケールが可能です。
費用
Cloud Storage FUSE の利用料金については無料で利用できますが、ストレージ、メタデータ、ネットワーク I/O は通常のCloud Storageの料金が発生します。
❗
Cloud Storage FUSE の使用はネットワークコストやリクエストコストを発生させる可能性があるため、使用前に料金を確認することが重要です。
使い方
Cloud Storage FUSE をインストールしてからマウントします。
- ここ参考にCloud Storage FUSE をインストールします。
-
gcsfuse
コマンドでCloud Storage FUSE をマウントします。例
gcsfuse BUCKET_NAME "$HOME/mount-folder"
デモ(Cloud Shellからのマウント)
前提
- Cloud Storage FUSE がインストール済みであること(Cloud Shellは、インストール済み)
- アクセス可能な、マウント対象のCloud Storage バケットがあること
-
Google Cloud コンソールからCloud Shellを起動します。
コンソール画面の右上のCloud Shell の赤枠アイコンをクリック。
-
Cloud Storage FUSE がインストールされていることを確認します。
gcsfuse -v # gcsfuse version 0.42.4 (Go version go1.19.7)
-
次のような出力を返します。
gcsfuse version 0.42.4 (Go version go1.19.7)
-
マウント用のフォルダーを作ります
mkdir "$HOME/mount-folder"
-
マウントします。
BUCKET_NAME は、マウントするバケットの名前に置き換えます。
gcsfuse BUCKET_NAME "$HOME/mount-folder"
-
マウントが成功すると、次のような出力を返します。
I0605 11:10:53.604618 2023/06/05 11:10:53.604577 Start gcsfuse/0.42.4 (Go version go1.19.7) for app "" using mount point: /home/your_name/mount-folder
-
マウントしたバケットの中身を確認します。
gsutil
コマンドを使わなくても中身を確認できるようになります。ls "$HOME/mount-folder"
-
マウントしたバケットにファイルを作成します。
今回は、テキストファイルを作成しました。
mkdir "$HOME/mount-folder/demo" echo hellow! > $HOME/mount-folder/demo/demo.txt
-
gsutil コマンドで作成したファイルを確認します
gsutil cat gs://[BAKET_NAME]/demo/demo.txt
次のような出力を返します。
hellow!
-
クリーンアップ
バケットに作ったファイルを削除します。
gsutil rm -r gs://[BAKET_NAME]/demo
アンマウントします。
fusermount -u "$HOME/mount-folder"
ユースケース
- 機械学習のワークフロー: Cloud Storage FUSE を使うことで、標準のファイルシステムでVertex AI Pipelines のコンテナ間のCloud Storage上でのデータの受け渡しができるようになります。
- バックアップとアーカイブ: Cloud Storage のスケーラブルなストレージを活用し、オフサイトのバックアップを簡単に行うことができます。