はじめに
ことのきっかけは、このリポジトリをたまたま発見したせいだ。
元々 OpenStack Nova には ec2-api が組み込まれていたのだが、そっちは現在廃止予定になっている。その代わりに別途このリポジトリが出来て Nova とは切り分けて開発されている。
このリポジトリの README を読み進めると、AWS CLI を使った使い方が記載されている。普段、AWS を使っていない自分としては AWS CLI など全く馴染みがなかったのだが、かなり昔に確認した時には --endpoint-url
などどいうオプションはなかった気がしたのである。
EC2 はこの際どうでもいいのだが、ここでふと気になったのは本家 Amazon S3 ではない S3 API 互換オブジェクトストレージを使う際に AWS CLI が使えるんじゃねーかということである。
S3 API 互換オブジェクトストレージ
S3 API 互換のオブジェクトストレージはいくつかある。他にもあった気がするがパッと思い浮かんだのはこれくらい。
AWS CLI のインストール
インストールには pip
を利用する。
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$ sudo python get-pip.py
$ sudo pip install awscli
~/.aws/config
というファイルを作成して必要な情報を入力する。
[default]
aws_access_key_id = 1b0e3f78d53d47at8ed4fbb8debc036b
aws_secret_access_key = 9bb06f230ffg4dldbe1e896947f41df3
region = us-east-1
使ってみる
とりあえず上記のオブジェクトストレージのうちどれかを使って試してみる必要があるので、オープンソースである LeoFS を構築した。なお、構築方法は省略する。192.168.1.10:80
で leo_gateway
が起動していると仮定する。
以下のコマンドでバケットの一覧を出力できる。
$ aws --endpoint-url http://192.168.1.10 s3 ls
2016-03-11 15:10:12 mybucket
他にもサブコマンドが沢山あるが一通り問題なく実行可能なはずである。
試してないが、たぶん Riak S2 でも Minio でも問題なく AWS CLI が使えるはずである。というか、たぶん上記のオブジェクトストレージなら全て問題ないであろう。