テックブログ

エルカミーの技術ブログです

Cloud Storage FUSE とは

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 をインストールしてからマウントします。

  1. ここ参考にCloud Storage FUSE をインストールします。
  2. gcsfuseコマンドでCloud Storage FUSE をマウントします。

    gcsfuse BUCKET_NAME "$HOME/mount-folder"

デモ(Cloud Shellからのマウント)

前提

  • Cloud Storage FUSE がインストール済みであること(Cloud Shellは、インストール済み)
  • アクセス可能な、マウント対象のCloud Storage バケットがあること

  1. Google Cloud コンソールからCloud Shellを起動します。

    コンソール画面の右上のCloud Shell の赤枠アイコンをクリック。

    image block
  2. Cloud Storage FUSE がインストールされていることを確認します。
    gcsfuse -v
    
    # gcsfuse version 0.42.4 (Go version go1.19.7)
  3. 次のような出力を返します。
    gcsfuse version 0.42.4 (Go version go1.19.7)
  4. マウント用のフォルダーを作ります
    mkdir "$HOME/mount-folder"
  5. マウントします。

    BUCKET_NAME は、マウントするバケットの名前に置き換えます。

    gcsfuse BUCKET_NAME "$HOME/mount-folder"
  6. マウントが成功すると、次のような出力を返します。
    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
  7. マウントしたバケットの中身を確認します。

    gsutil コマンドを使わなくても中身を確認できるようになります。

    ls "$HOME/mount-folder"
  8. マウントしたバケットにファイルを作成します。

    今回は、テキストファイルを作成しました。

    mkdir "$HOME/mount-folder/demo"
    echo hellow! > $HOME/mount-folder/demo/demo.txt
  9. gsutil コマンドで作成したファイルを確認します
    gsutil cat gs://[BAKET_NAME]/demo/demo.txt

    次のような出力を返します。

    hellow!
  10. クリーンアップ

    バケットに作ったファイルを削除します。

    gsutil rm -r gs://[BAKET_NAME]/demo

    アンマウントします。

    fusermount -u "$HOME/mount-folder"
ユースケース

  1. 機械学習のワークフロー: Cloud Storage FUSE を使うことで、標準のファイルシステムでVertex AI Pipelines のコンテナ間のCloud Storage上でのデータの受け渡しができるようになります。
  2. バックアップとアーカイブ: Cloud Storage のスケーラブルなストレージを活用し、オフサイトのバックアップを簡単に行うことができます。