はじめに
クラウドストレージサービスとして、Wasabi
を使用しているのだが、アクセスするのが大変なので、AWS CLI
と goofys
を使用してマウントしてみる。
環境
Windows 10 Professional
WSL2 (Ubuntu22.04 LTS)
Wasabiの設定
AccessKey, AccessSecretを取得する
- ログインをする。
- ログイン後に、メニューから「ユーザー」を選択する。
- ページ上部の「ユーザーを作成」を選択する。
ユーザを作成
のポップアップが出てくるので、ユーザー名とあアクセスの種類「プログラム(APIキーを作成)」を選択し、次を押す。- 次を押す。
WasabiFullAccess
を選択し、次を押す。- ユーザーを作成を押す。
- アクセスキーが表示されるので、控えておく。
これで、Access Key Id
と Secret Access Key
を取得できた。
AWS CLIのセットアップ
AWS CLIのインストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
:~/work$ /usr/local/bin/aws --version
aws-cli/2.13.1 Python/3.11.4 Linux/5.15.90.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.22 prompt/off
AWS CLIの設定
$ aws configure
AWS Access Key ID [None]: [Access Key Id]
AWS Secret Access Key [None]: [Secret Access Key]
Default region name [None]: ap-northeast-1
Default output format [None]: json
これでOK
動作確認をする。
$ aws s3 ls
aws s3 ls
An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
エラーが出る。
エンドポイントURLをつけてみる。
$ aws s3 ls --endpoint-url=https://s3.ap-northeast-1.wasabisys.com
$ aws s3 ls --endpoint-url=https://s3.ap-northeast-1.wasabisys.com
2023-02-20 19:35:54 XXXXXXXXXXXX
2023-07-09 18:15:46 XXXXXXXXXXXX
2023-02-06 19:20:50 XXXXXXXXXXXX
取得できた。
goofysのセットアップ
goofysのインストール
バイナリを配置する。
sudo curl -L https://github.com/kahing/goofys/releases/latest/download/goofys -o /usr/local/bin/goofys
sudo chmod +x /usr/local/bin/goofys
goofys --version
goofys version 0.24.0-45b8d78375af1b24604439d2e60c567654bcdf88
goofysを利用してマウントする
- マウント用のディレクトリを作成する。
mkdir ~/mount-bucket-test
blog.k-bushi.com
というバケットをマウントする。
goofys blog.k-bushi.com ~/mount-bucket-test
エラーが出たので、 syslog
を見てみる。
Jul 14 19:01:31 DESKTOP-M2SDB0M /usr/local/bin/goofys[10088]: main.ERROR Unable to access 'blog.k-bushi.com': bucket blog.k-bushi.com does not exist
Jul 14 19:01:31 DESKTOP-M2SDB0M /usr/local/bin/goofys[10088]: main.FATAL Mounting file system: Mount: initialization failed
おそらく、エンドポイントURLがついていないからと思われる。
コマンドを下記に変更
goofys --endpoint https://s3.ap-northeast-1.wasabisys.com blog.k-bushi.com ~/mount-bucket-test/
Jul 14 19:15:48 DESKTOP-M2SDB0M /usr/local/bin/goofys[11258]: s3.INFO anonymous bucket detected
Jul 14 19:15:48 DESKTOP-M2SDB0M /usr/local/bin/goofys[11258]: s3.INFO Switching from region 'us-east-1' to 'ap-northeast-1'
Jul 14 19:15:48 DESKTOP-M2SDB0M /usr/local/bin/goofys[11258]: s3.INFO Falling back to v2 signer
Jul 14 19:15:48 DESKTOP-M2SDB0M /usr/local/bin/goofys[11258]: main.ERROR Unable to access 'blog.k-bushi.com': permission denied
Jul 14 19:15:48 DESKTOP-M2SDB0M /usr/local/bin/goofys[11258]: main.FATAL Mounting file system: Mount: initialization failed
Permission denied
がでているので、必要な権限がなさそうだったが足りているみたい。
別のバケットで試してみる。
goofys --endpoint https://s3.ap-northeast-1.wasabisys.com exam-result ~/mount-bucket-test/
ls ~/mount-bucket-test
:~$ ls ~/mount-bucket-test
AWS認定 FP IPA
マウントできているのでOK!
アンマウント
umount [パス]
でOK。
umount ~/mount-bucket-test
エラー対応
vi ~/.aws/config
一番下に追加する。
[default]
region = ap-northeast-1
output = json
+endpoint_url=https://s3.ap-northeast-1.wasabisys.com
$ aws s3 ls
をして endpoint_url
がついていなくても実行できることを確認する。
感想
結局、 blog.k-bushi.com
というバケットがマウントできなかったのがよく分からなかった・・・。
アクセスできるDNS名だとだめ?
もしくは、何かおかしなファイルがあってマウントできなかった?
不明である。
参考
kahing / goofys
https://github.com/kahing/goofysWasabi で AWS CLI を使用する方法
https://knowledgebase.wasabi.com/hc/ja/articles/115001910791-Wasabi-%E3%81%A7-AWS-CLI-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95What are the service URLs for Wasabi’s different storage regions?
https://knowledgebase.wasabi.com/hc/en-us/articles/360015106031-What-are-the-service-URLs-for-Wasabi-s-different-regions-How do I use Goofys with Wasabi?
https://knowledgebase.wasabi.com/hc/en-us/articles/360061513591-How-do-I-use-Goofys-with-Wasabi-WSL2環境でaws-cliを使えるようにする
https://zenn.dev/bluesdd/articles/5e45b45c2afd11
おわりに
Wasabi
のストレージにしたが、アクセスが大変ということもあり活用できていなかった。
今回マウントをできるようにすることで、ローカルストレージとして扱えるようにし身近になった。
これで活用できるようにしたい…!