Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Scality S3 Server を試してみる

More than 1 year has passed since last update.

2017/7/11 update

以下で取り上げた、「S3 Server」 は Zenkoになっています。

https://ja.scality.com/about-us/press/scality-zenko-multi-cloud-controller-ja/

https://www.zenko.io/

S3 Server とは

AWS S3 に準拠したOSSのオブジェクトストレージ。詳しくは"プレスリリース"へ。
他にも、S3互換は、OpenStack Swift3 はもとよりMinioRiak CS といったものもあるようだが、新しいし、エンタープライズ性、そしてDockerコンテナが提供されているのでまずは使ってみた。まだAWS S3のオペレーションも詳しいわけじゃないので、これを機に慣れてアプリを作ってみたりしたいという目論見もある。

特徴

  • クラウドアプリの開発・テストには最適
  • Node.jsでできてる
  • Scality RING と同一コード
  • 有償でのエンタープライズサポートもある

S3 Server 試す

Githubからソースを落としてもできるが、過去Node.jsに泣かされたことがあるのでそこで時間使よりも本質を早く見極めたいためにまずはコンテナで。

コンテナ起動

Docker 操作は割愛。下記のようにRunする。

$ docker run -d --name s3server -p 8000:8000 scality/s3server
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
633ebc483779        scality/s3server    "npm start"         15 hours ago        Up About an hour    0.0.0.0:8000->8000/tcp   s3server

Cyberduck で操作・確認

Getting Started のページにあるように、まずは Cyberduck で操作してみる。
自分の手持ちの環境は Windows 7 Home 64bit なので、落としていれる。同ページにはプロファイルを落として使う手順だが、使わない。

プロファイルは後で結局書き換えちゃうのであんまり意味ない気がするが

Cyberduck を起動して 新規接続 からポップアップされた画面で入力。

2016-09-18 0-14-18.jpg

  • S3(HTTP) を選択
  • サーバ:(ここではDockerのホスト側のIPアドレス)
  • ポート:8000ポートがDockerホストからコンテナにフォワードされるので、8000を指定
  • アクセスキーID:デフォルトの「accessKey1」
  • シークレットキー:デフォルトの「verySecretKey1」

接続を押す。

2016-09-18 0-19-01.jpg

ここまで来たらOK.適当にbucket作ったり、ファイルアップロード・ダウンロードしてみる。操作は直感的にできる。

2016-09-18 0-17-48.jpg

s3cmd で操作・確認

コマンドラインでも確認したいので s3cmd を使ってみる。

はじめ手持ちの Vine Linux で試したがどうもうまく繋がらなかったので、Ubuntu や CentOS7.X にしたら普通にできた。

  • s3cmd version 1.6.1
  • Ubuntu 14.04 / CentOS 7.2

インストールは pip で。

# pip install s3cmd

接続に必要なcfgファイルを作る。必要な情報は以下の通り。だいたい見たままの内容。

# cat s3cfg
[default]
access_key = accessKey1
secret_key = verySecretKey1
host_base = 192.168.0.154:8000
host_bucket = 192.168.0.154:8000
signature_v2 = True
use_https = False

s3cmd を使ってバケットの中身を見る。

$ s3cmd -c s3cfg ls s3://takeshidir
2016-09-16 23:40      7005   s3://takeshidir/Eula.txt
2016-09-16 23:42    231667   s3://takeshidir/zfsonlinux-manila-image.jpg

s3cmd のオプションでいろいろ試して、バケット作ったりファイルのアップロード・ダウンロードが確認できた。

console > s3cmd -c s3cfg ls s3://
# 何もない

console > s3cmd -c s3cfg mb s3://tkbk
Bucket 's3://tkbk/' created
console > s3cmd -c s3cfg ls s3://
2017-01-10 06:10  s3://tkbk
# バケット作成

console > s3cmd -c s3cfg put known_hosts s3://tkbk/
upload: 'known_hosts' -> 's3://tkbk/known_hosts'  [1 of 1]
 3106 of 3106   100% in    0s    22.22 kB/s  done
console > s3cmd -c s3cfg ls s3://
2017-01-10 06:10  s3://tkbk
console > s3cmd -c s3cfg ls s3://tkbk
2017-01-10 06:11      3106   s3://tkbk/known_hosts
# バケットにファイルアップロード

所感

Docker コンテナ使ったので、自由に使えるS3互換のオブジェクトストレージが一瞬の内に手に入る。開発・テストには確かに便利そう。 AWS S3をバックアップ先にする既存のアプリとかもあるので、その宛先をこっちで(自分で)用意しちゃうとかもできそう。

参考

Scality S3 Server

s3tools (s3cmd)

Riak CS

Minio

tksarah
tis
創業40年超のSIerです。
https://www.tis.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away