1. GCSをNASのように使用したい

色々な場所や異なる端末で開発したいことがあります。

GCEのインスタンスを利用する方法もありますが今回はGCSをマウントすることでデータの共通化をしてみたいと思います。

WSL1 (Windows Subsystem for Linux)ではFUSEを使用することができません。
WSL2でGCSをマウントできるかどうかは後日試してみる予定です。

2. gcsfuseをインストール

下記のマニュアルに従ってインストールします。

gcsfuse/docs/installing.md
sample.sh
export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s`
echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get update
sudo apt-get install gcsfuse

3. サービス アカウントとして認証

認証が必要です。

下記がマニュアルですが何をすれば良いのか読み取るのが少しむずかしいです。

サービス アカウントとして認証する

下記コマンドを実行します。

Terminal
gcloud auth application-default login

コマンドを実行するとブラウザでGoogle認証画面が表示されるので認証します。

これでアクセストークンが作成されます。

デフォルトでは下記に作成されるようです。

path
  • ~/.config/gcloud/

  • application_default_credentials.json

続いて環境変数を設定します。

Terminal
export GOOGLE_APPLICATION_CREDENTIALS=\
~/.config/gcloud/\
application_default_credentials.json

これでサービスアカウントとしての認証が完了です。

4. マウント

実際にマウントします。

Terminal
gcsfuse ${GCSのバケット名} \
${PASS:マウント先ディレクトリ}

5. アンマウント

アンマウントは下記。

Terminal
fusermount -u \
${PASS:マウント先ディレクトリ}

6. まとめ

GCSをマウントできました。

I/O速度や利用料金など気になる点がいくつかあるのでお試しで利用を続けてみます。