LoginSignup
12
16

More than 5 years have passed since last update.

AWS CLI を Amazon S3 じゃなくて S3 API 互換オブジェクトストレージで使うときの方法

Posted at

はじめに

ことのきっかけは、このリポジトリをたまたま発見したせいだ。

openstack/ec2-api

元々 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 というファイルを作成して必要な情報を入力する。

~/.aws/config
[default]
aws_access_key_id = 1b0e3f78d53d47at8ed4fbb8debc036b
aws_secret_access_key = 9bb06f230ffg4dldbe1e896947f41df3
region = us-east-1

使ってみる

とりあえず上記のオブジェクトストレージのうちどれかを使って試してみる必要があるので、オープンソースである LeoFS を構築した。なお、構築方法は省略する。192.168.1.10:80leo_gateway が起動していると仮定する。

以下のコマンドでバケットの一覧を出力できる。

$ aws --endpoint-url http://192.168.1.10 s3 ls
2016-03-11 15:10:12 mybucket

他にもサブコマンドが沢山あるが一通り問題なく実行可能なはずである。

試してないが、たぶん Riak S2 でも Minio でも問題なく AWS CLI が使えるはずである。というか、たぶん上記のオブジェクトストレージなら全て問題ないであろう。

12
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
16