MinIOなるものを見つけて、興味を持ったのでちょっとだけ触ってみた。 といっても今日は起動を試して見るだけ。 MinIOは何回かに分けて取り上げようかなと思う。
MinIOとは?
簡単に言うと、goで実装されたオブジェクトストレージ。 クラウドネイティブな利用を想定して開発されたようだ。 S3と互換性があり、SDKからも利用できるらしい。
dockerで触ってみる
クイックスタートガイドはこちら。
MinIO | The MinIO Quickstart Guide
色んな方法があるっぽい。
Macならhomebrewでインストールできたり、Linuxなら実行ファイルをwgetで入手してchmod +x
するだけだったり。
今回はdockerを使ってみる。
起動
docker runを実行するだけでいいらしい。
❯ docker run --name minio_container -p 9000:9000 minio/minio server /data Unable to find image 'minio/minio:latest' locally latest: Pulling from minio/minio a6b97b4963f5: Pull complete 13948a011eec: Pull complete d48558b57ac3: Pull complete fdf2c2f8d59c: Pull complete a5f9b75d1f38: Pull complete 7cff61c3c0cd: Pull complete bf88f6a73948: Pull complete Digest: sha256:84a74cd1db07afdc0a399cc9882af4dcc1dbc39636133e818daf76b4e3da469b Status: Downloaded newer image for minio/minio:latest Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000 Browser Access: http://172.17.0.2:9000 http://127.0.0.1:9000 Object API (Amazon S3 compatible): Go: https://docs.min.io/docs/golang-client-quickstart-guide Java: https://docs.min.io/docs/java-client-quickstart-guide Python: https://docs.min.io/docs/python-client-quickstart-guide JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD'
これだけで使えるようになる。
ログに出ている通り http://127.0.0.1:9000
がブラウザアクセス先、クレデンシャルはデフォルトでminioadmin:minioadmin
が設定される。
ちなみにdocker runするときに -e "MINIO_ACCESS_KEY=foo" -e "MINIO_SECRET_KEY=bar"
と指定すれば、クレデンシャルを指定して起動することができる。
今回は省略。
ブラウザでアクセスしてみる
http://127.0.0.1:9000
にブラウザアクセスするとこんな画面が表示される。
デフォルトのクレデンシャルminioadmin:minioadmin
でログイン。
バケットを作成
画面の右下の+
よりCreate Bucket
を選択。
sample-bucket
を作成してみる。
バケットが作成された。
キーをアップロード
Create Bucket
のうえにUpload file
があるのでそこからアップロード。
アップロードされた。
awsのCLIで触ってみる
クレデンシャルをexportして、endpoint-urlにhttp:/127.0.0.1.9000/
を指定すればOK。
$ export AWS_ACCESS_KEY_ID=minioadmin $ export AWS_SECRET_ACCESS_KEY=minioadmin $ aws --endpoint-url http://127.0.0.1:9000/ s3 ls s3://sample-bucket/ 2021-02-17 23:22:52 0 sample-key
Webコンソールでアップロードしたキーを参照できた。
最後に
まだ詳しいことはよくわかってないけど、面白そうなので今後も触ってブログネタにしようかな。 例えば、S3のAPIをプロダクション環境で使っているとして、その開発環境ではS3の代わりにMinIOをさっと立ち上げて検証する。というような使い方ができそう。