2022.04.10

インスタンスからクラウドストレージのWasabi storageをアクセスできる方法:s3fs-fuseのインストール及び設定

はじめに

インスタンス上で作業する際、ストレージの容量が不足したりしていることが多々あります。クラウドストレージをマウントして、通常のファイルシステムとして利用できれば、ストレージの容量不足問題が解消でき、作業性は一段捗ります。この記で事はWasabi hot storageのバケットをマウントし、通常ファイルシステムとして利用する方法を紹介します。今回はs3fs-fuseを利用します。

インスタンスへのログイン

まずはインスタンスにログインすることです。Windows+Rを実行し、"cmd"を入力し、Enterキーを押すことで、ターミナルを立ち上げます。ターミナルでは下記の通り、ログインをします。(*ここではインスタンスのIPアドレスは10.233.101.237とします。)

ssh -L 20122:10.233.101.237:22 user@202.122.50.154 -p 30022 -i .\.ssh\ackey.txt

下記の画面が見られれば、第一段のログイン成功です。

それで、もう一度 Windows+Rを実行し、"cmd"を入力し、Enterキーを押すことで、ターミナルを立ち上げます。そして、下記のコマンドを実行します。

ssh user@localhost -p 20122 -i .ssh/mykey.txt

下記の画面が見られれば、ログインプロセスは完了です。

s3fs-fuseのインストール

インスタンス上にs3fs-fuseをインストールするにあたって、まずはおまじないとして、下記のコードを実行します。

sudo apt update && sudo apt upgrade

その後、gitのコマンドで、3fs-fuseのレポシトリを取得するために、下記のコマンドで、gitをインストールします。

sudo apt -y install git


その後は下記のコマンドで必要なパッケージをインストールします。

sudo apt -y install build-essential git libfuse-dev libcurl4-openssl-dev libxml2-dev mime-support automake libtool

sudo apt -y install pkg-config libssl-dev

上記のパッケージをインストールした後に、下記のgit cloneコマンドでリポジトリの複製を実施します。

git clone https://github.com/s3fs-fuse/s3fs-fuse

リポジトリの複製を実施した後、下記の通り、s3fs-fuseをソースコードからインストールします。

cd s3fs-fuse/

./autogen.sh

./configure --prefix=/usr --with-openssl

make

sudo make install

アクセスキーなどの設定

Wasabi storageへのアクセスするために、下記の通り、アクセスキー及びシークレットキーを記載するファイルを作成します。

アクセスキー:aaa とします。

シークレットキー:bbb とします。

*契約されたストレージにアクセスするのに、アクセスキーとシークレットキーを使う必要があります。アクセスキーとシークレットキーはとても重要な情報で、漏洩しないように慎重に管理して頂きたいです。

sudo sh -c "echo 'aaa:bbb' > /etc/passwd-s3fs"

アクセスキー及びシークレットキーに書かれているファイルのアクセス権限設定を下記の通り行います。

sudo chmod 640 /etc/passwd-s3fs

その後、下記の通りでマウントするフォルダを作成し、アクセス権限を設定します。

mkdir /mnt/s3/

chmod 700 /mnt/s3/

ここで、下記のコマンドで、一度ファイルシステムの利用状況を確認します。

df -h

下記のように、ファイルシステムの表示結果では /mnt/s3 がみられませんでした。それはマウントをおこなっていないからです。

Wasabi storageのマウント

前提条件として、契約されたWasabi storageで、予めバケットを作っておく必要があります。この例ではtest_create_bucketを予め作成しておきました。Wasabi storage上のバケットをマウントするために、下記のコマンドで実施することで実現できます。また、契約時指定したendpointを把握しておく必要があります。

*url=https://s3.ap-northeast-1.wasabisys.com => これはendpointの指定となります。ご確認の上でご指定してください。

*東京の場合:ap-northeast-1

大阪の場合:ap-northeast-2

s3fs test_create_bucket /mnt/s3/ -o passwd_file=/etc/passwd-s3fs -o url=https://s3.ap-northeast-1.wasabisys.com -o nonempty

マウントを行った結果、再度の下記のコマンドでファイルシステムの使用状況を表示します。/mnt/s3 が表示されるようになりました。

df -h

これはマウント作業を完了しました。お疲れ様です。

それでは使ってみましょう

まずは下記のコマンドでマウントしたフォルダをアクセスします。

cd /mnt/s3/

下記のコマンドで中身を確認することができます。

ls

実際Wasabi storageのweb上の画面で見たときに、下記のようになっております。

下記のコマンドで新しいフォルダを作成することができます。

mkdir test_folder

Wasabi storageのwebページ上には下記のようになります。

CPコマンドも下記の通り、ファイルのコピーをすることができました。

cp test_pycuda.py test_pycuda.backup

下記の通り、コピーできていることを確認できます。

バケットをアンマウントする場合、下記のコマンドでアンマウントすることができます。但し、まずは cd コマンドで一度そのフォルダから出る必要があります。

cd ..

sudo umount /mnt/s3/

注意:仮にそのフォルダに入っている状態でアンマウントすると、アンマウントすることが下記の通り拒否されます。

umount: /mnt/s3: target is busy. というメーセージが出ます。

まとめ

上記の方法で、Wasabi storageのバケットをマウントし、通常のファイルシステムとして利用することができます。結構便利なので、ぜひ一度利用してみてください。

いかがでしたでしょうか。
弊社クラウドGPUサーバのご利用をご検討中の方はhttps://soroban.highreso.jp/から
お気軽にお申込みやお問い合わせください。

初回インスタンス作成から
3日間は無料利用可能!

新規申し込み