18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

minioを普通のサービスっぽく動かす

Last updated at Posted at 2018-06-12

前提条件

  • Fedora Server 28 にて実施
  • サーバがインターネットに接続できること

制約事項

  • この手順で構築を行うと、nginx(Webサーバ)はminio専用になります

minioって何?

Amazon S3 互換のオブジェクトストレージ。

公式サイト

設定の手間がほとんどいらず、手軽に立てることができる。

たとえば公式の立て方の(drive)にあるように、minioのバイナリを取得して

$ minio server /data

とするだけで動作する。本当に簡単。

目的

  • systemctl (start|restart|stop) minio.service できるようにする。
  • 設定ファイルを外出しする。
  • http (or|and https) 経由でserveできるようにする。
  • 専用ユーザで動かして、セキュリティにも配慮する。

構築手順

minio専用ユーザの作成と、ディレクトリの用意

サービスはユーザ権限でのみ動くようにしたい

一般ユーザ作業
# minioユーザを作る
$ sudo adduser minio
minioユーザ作業
$ pwd
/home/minio
$ mkdir data
$ mkdir config
$ mkdir bin

minioバイナリの取得

/home/minio/bin に置いて、実行できるようにする

公式のインストール手順に則ってバイナリを取得、実行できるようフラグを付与する

minioユーザ作業
$ cd bin
$ pwd
/home/minio/bin
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod +x minio
$ ls -l
合計 27360
-rwxrwxr-x 1 minio minio 28014688  6月  9 12:43 minio

minioのサービス化

systemdを用いている。

サービス用設定ファイルの作成

一般ユーザ作業
$ sudo vi /etc/systemd/system/minio.service
minio.service
[Unit]
Description=minio Object Storage Service
After=network.target

[Service]
Type=simple
User=minio
ExecStart=/home/minio/bin/minio server --config-dir /home/minio/config /home/minio/data
Restart=on-abort
WorkingDirectory=/home/minio/

[Install]
WantedBy=multi-user.target

minioユーザ権限で動かし、コマンドライン引数にて設定ファイルおよびデータ格納ディレクトリを指定している。
minio serverはフォアグラウンドで立ち上がるタイプのようだったので、typesimpleとしてみた。
restart 他オプションはお好みで。

サービスの起動

まず、サービス用設定ファイルを読み込ませる。

一般ユーザ作業
$ sudo systemctl daemon-reload

エラーが出ないようであれば、読み込めているか確認する。

一般ユーザ作業
$ sudo systemctl status minio.service
● minio.service - minio Object Storage Service
   Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: disabled)

動かしてみる。

一般ユーザ作業
$ sudo systemctl start minio.service
$ sudo systemctl status minio.service
● minio.service - minio Object Storage Service
   Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-06-09 12:53:09 JST; 54s ago
 Main PID: 4944 (minio)
    Tasks: 6 (limit: 1149)
   Memory: 7.1M
   CGroup: /system.slice/minio.service
           └─4944 /home/minio/bin/minio server --config-dir /home/minio/config /home/minio/data

 6月 9 12:53:10 minio minio[4944]: Browser Access:
 6月 9 12:53:10 minio minio[4944]:    http://10.1.1.5:9000  http://172.17.0.1:9000
 6月 9 12:53:10 minio minio[4944]: Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
 6月 9 12:53:10 minio minio[4944]:    $ mc config host add myminio http://10.1.1.5:9000 (AccessToken) (AccessTokenSecret)

:tada: Active! やったね!

表示からも分かる通り、TCP/9000で待ち受けしている。
(ファイアウォール等でポートが塞がれてなければ)ブラウザからアクセスするとログイン画面が表示される。

必要に応じて、自動起動するように設定する。

一般ユーザ作業
$ sudo systemctl enable minio.service

nginxでリバースプロキシ

このままだとちょっと不格好だよねってことで、流行りの(?)リバースプロキシをかける。

何らかの方法でnginxを入手する。たとえばyum

一般ユーザ作業
$ sudo yum -y install nginx

設定ファイルをさわる。

一般ユーザ作業
$ sudo vim /etc/nginx/nginx.conf

※さわった部分のみ抜粋

nginx.conf
http {

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    client_max_body_size 1000M;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        access_log  /var/log/nginx/access_log;
        error_log   /var/log/nginx/error_log warn;

        location / {
                # minio settings
                proxy_set_header Host $http_host;
                proxy_pass http://localhost:9000;
        }
}

大事なのは以下の3点。

  • デフォルトで TCP/9000に流すようにしましたよ
  • アクセスログを取るようにしましたよ
  • 最大データ量(client_max_body_size)を大きくしましたよ

ファイアウォールを開ける

firewalldを用いている。

一般ユーザ作業
$ sudo firewall-cmd --add-service=http --zone=FedoraServer --permanent
$ sudo firewall-cmd --reload

動作確認する

ブラウザからアクセスする。

画面キャプチャ

こんなのが出たら成功。 :tada:

あとがき

  • 自分用にメモした手順です。必要に応じて読み替えてください。
  • こうしたほうがいいよ的なアドバイスを頂けると大変助かります

TODO

  • minioの設定ファイルの内容を確認
  • 動作確認項目の追加

以上

18
13
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
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?