目的
IBM Cloud Object Storage (ICOS)はS3 APIに対応していますので、AWSのS3と同様の操作が可能です、つまり巷の様々なツールからも利用が可能です。今回はS3をローカルにマウントするツールとして有名なgoofysを使ってICOSをマウントしてみます。
検証環境
- IBM Cloud Infrastructure
- Red Hat Enterprise Linux Server release 7.5 (Maipo)
手順
巷のガイドではgoofysをビルドするマシンと実行するマシンの区別をつけていないものが多いので、それに従うと無駄にgoのコンパイラを実行マシンに導入してしまう可能性があります。ここではビルドするマシンと実行するマシンを区別して扱います。
goofysのビルド
ビルドマシンで行います。
Goのインストール
$ sudo yum install -y golang
ソースの取得とビルド
# デフォルトで~/goが使われるので必要に応じて変更
$ mkdir ~/go
$ export GOPATH=~/go
# ビルド
$ go get github.com/kahing/goofys
$ go install github.com/kahing/goofys
問題なければ ${GOPATH}/bin/goofys が生成されています。
$ ls ${GOPATH}/bin
goofys
goofysのインストール
実行マシンで行います。
goofysコマンドの配布
先ほど生成したgoofysファイルをコピーします。/usr/local/binなどパスが通っているところがいいでしょう。
fuseのインストール
マウント時にfuseを使用しますので、インストールします。
$ sudo yum -y install fuse
クレデンシャルファイルの作成
一般的にはawscliを使ってクレデンシャルファイルを作成しますが、今回はIBM Cloudということもあり、変な気持ちになるので、手動で作成します。
アクセスキーとシークレットはIBM Cloudのポータルから確認してください。
$ sudo su -
# mkdir ~/.aws
# cat <<EOF >~/.aws/credentials
[default]
aws_access_key_id = xxxxx
aws_secret_access_key = yyyyy
EOF
# chmod -R o-rwx ~/.aws
マウント
マウントします。エンドポイント名はIBM Cloudのポータルから確認してください。バケット名はあらかじめ作成したものを指定してください。
# goofys --endpoint https://エンドポイント名 バケット名 /マウントポイント
以上です。