はじめに
クラウドストレージサービスとして、Wasabi
を使用しているのだが、アクセスするのが大変なので、AWS CLI
と goofys
を使用してマウントしてみる。
環境
1
2
| Windows 10 Professional
WSL2 (Ubuntu22.04 LTS)
|
Wasabiの設定
AccessKey, AccessSecretを取得する
- ログインをする。
- ログイン後に、メニューから「ユーザー」を選択する。
- ページ上部の「ユーザーを作成」を選択する。
ユーザを作成
のポップアップが出てくるので、ユーザー名とあアクセスの種類「プログラム(APIキーを作成)」を選択し、次を押す。
- 次を押す。
WasabiFullAccess
を選択し、次を押す。
- ユーザーを作成を押す。
- アクセスキーが表示されるので、控えておく。
CSVの場合は下記のようになっているので確認する。
これで、Access Key Id
と Secret Access Key
を取得できた。
AWS CLIのセットアップ
AWS CLIのインストール
1
2
3
| curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
|
1
2
| :~/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の設定
1
2
3
4
5
| $ 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
動作確認をする。
1
2
3
| 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をつけてみる。
1
| $ aws s3 ls --endpoint-url=https://s3.ap-northeast-1.wasabisys.com
|
1
2
3
4
| $ 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のインストール
バイナリを配置する。
1
2
| sudo curl -L https://github.com/kahing/goofys/releases/latest/download/goofys -o /usr/local/bin/goofys
sudo chmod +x /usr/local/bin/goofys
|
1
2
| goofys --version
goofys version 0.24.0-45b8d78375af1b24604439d2e60c567654bcdf88
|
goofysを利用してマウントする
- マウント用のディレクトリを作成する。
1
| mkdir ~/mount-bucket-test
|
blog.k-bushi.com
というバケットをマウントする。
1
| goofys blog.k-bushi.com ~/mount-bucket-test
|
エラーが出たので、 syslog
を見てみる。
1
2
| 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がついていないからと思われる。
コマンドを下記に変更
1
| goofys --endpoint https://s3.ap-northeast-1.wasabisys.com blog.k-bushi.com ~/mount-bucket-test/
|
1
2
3
4
5
| 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
がでているので、必要な権限がなさそうだったが足りているみたい。
別のバケットで試してみる。
1
| goofys --endpoint https://s3.ap-northeast-1.wasabisys.com exam-result ~/mount-bucket-test/
|
1
2
3
4
| ls ~/mount-bucket-test
:~$ ls ~/mount-bucket-test
AWS認定 FP IPA
|
マウントできているのでOK!
アンマウント
でOK。
1
| umount ~/mount-bucket-test
|
エラー対応
一番下に追加する。
1
2
3
4
| [default]
region = ap-northeast-1
output = json
+endpoint_url=https://s3.ap-northeast-1.wasabisys.com
|
をして endpoint_url
がついていなくても実行できることを確認する。
感想
結局、 blog.k-bushi.com
というバケットがマウントできなかったのがよく分からなかった・・・。
アクセスできるDNS名だとだめ?
もしくは、何かおかしなファイルがあってマウントできなかった?
不明である。
参考
おわりに
Wasabi
のストレージにしたが、アクセスが大変ということもあり活用できていなかった。
今回マウントをできるようにすることで、ローカルストレージとして扱えるようにし身近になった。
これで活用できるようにしたい…!