📝 BLOG.IK.AM

@making's memo
(🗃 Categories 🏷 Tags)

Synology NASにMinio on DockerをインストールしてS3互換サーバーにする

🗃 {Dev/NAS/Synology/Minio}

🏷 Docker 🏷 Minio 🏷 NAS 🏷 S3 🏷 Synology

🗓 Updated at 2018-01-07T04:38+09:00 by Toshiaki Maki  🗓 Created at 2018-01-07T04:05:12+09:00 by Toshiaki Maki  {✒️️ Edit  ⏰ History}


Synology DiskStation DS718+を買いました。

NASとしてだけではなく、SysLogサーバー、LDAPサーバーとしても使えて便利です。

このNASにMinioをインストールしてS3サーバーにもしてみました。

Package CenterにMinioは用意されていないのですが、Docker経由でインストール可能です。sshでログインしてminioコマンドを直接実行してもいいですが、Docker経由の方がGUIベースで管理できて、Synology NAS的には楽です。

https://docs.minio.io/docs/minio-docker-quickstart-guide
の内容をGUIで行います。

以下、作業メモです。自分が買ったのはDS718+ですが、他のモデルでも同じだと思います。

目次

Dockerのインストール

"Package Center" => "Utilities" => "Docker"でInstallボタンをクリック。

Minio用のShared Folderの作成

"Control Panel" => "Shared Folder"でCreateボタンをクリック。

"Name"はminioにし、ゴミ箱は不要なので"Enable Recycle Bin"のチェックを外しておく。
OKボタンをクリックして作成。"Permission"もデフォルトでOK。

Minio用のdataフォルダとconfigフォルダ作成

"File Station" => "minio"を選択 => "Create" => "Create folder"でdataを入力してフォルダ作成。同様にconfigを入力してフォルダ作成。

Minio Docker Imageのダウンロード

"Main Menu"から"Docker"を開く。

"Registry"タブをクリックし、"Insert keywords"にminioを入力し、minio/minioを選択。

"Download"をクリック。Tagは好きなものを選択していいが、ここではlatestを使用。

Minioの起動

"Image"タブをクリックし、minio/minio:latestを選択。

"Launch"ボタンをクリック。"Container Name"にminioを入力。

"Advanced Settings"ボタンをクリック。"Enable auto-restart"にチェックを入れる。

"Volume"タブをクリックし、"Add Folder"ボタンをクリック。

minio/data/dataに、minio/config/root/.minioにマウントする。

"Port Settings"タブをクリックし、"Local Port"に9000を入力。

"Environment"タブをクリックし、"Command"にminio server /dataを入力。

"Apply"ボタンをクリックして"Advanced Settings"ウィンドウを閉じる。

"Next"ボタンクリック => "Apply"ボタンクリックでminioを起動する。

"Container"タブをクリックし、minioコンテナが"Running"になっていればOK。

minioコンテナをクリックし、"Details"ボタンをクリック。"Log"タブを開くとAccessKeySecretKeyを確認できる。

動作確認

http://<Synology NASのIP>:9000にアクセスすると、UI(Minio Browser)が表示される。

AWS CLIからアクセスする。

aws configure

AccessKeySecretKeyを入力。Regionは任意で可。

fooバケットを作成し、hello.txtをコピーする。

$ s3_url=http://<Synology NASのIP>:9000
$ aws --endpoint-url $s3_url s3 mb s3://foo
make_bucket: foo
$ aws --endpoint-url $s3_url s3 ls
2018-01-07 12:38:01 foo
$ echo Hello > ~/hello.txt
$ aws --endpoint-url $s3_url s3 cp ~/hello.txt s3://foo/
upload: ./hello.txt to s3://foo/hello.txt

Minio Browserにログインするとコピーしたファイルを確認できる。

HTTPS対応

https://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-for-minio

/minio/config/certsフォルダを作成し、その下に秘密鍵はsecret.key、公開鍵はpublic.crtというファイル名でコピーする。

minioコンテナの"Restart"ボタンをクリック。

https://<ドメイン名>:9000でアクセス可能になる。


Synology DiskStation良い。