---
title: Synology NASにMinio on DockerをインストールしてS3互換サーバーにする
tags: ["NAS", "Synology", "Minio", "S3", "Docker"]
categories: ["Dev", "NAS", "Synology", "Minio"]
date: 2018-01-07T04:05:12Z
updated: 2018-01-07T04:38:00Z
---
[Synology DiskStation DS718+](https://www.amazon.co.jp/exec/obidos/ASIN/B074BYFKZ2/ikam-22/ref=nosim/)を買いました。
NASとしてだけではなく、SysLogサーバー、LDAPサーバーとしても使えて便利です。
このNASに[Minio](https://minio.io/)をインストールして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"タブを開くと`AccessKey`と`SecretKey`を確認できる。
### 動作確認
`http://:9000`にアクセスすると、UI(Minio Browser)が表示される。
[AWS CLI](https://aws.amazon.com/cli/)からアクセスする。
```
aws configure
```
で`AccessKey`と`SecretKey`を入力。Regionは任意で可。
`foo`バケットを作成し、`hello.txt`をコピーする。
```
$ s3_url=http://: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](https://www.amazon.co.jp/exec/obidos/ASIN/B074BYFKZ2/ikam-22/ref=nosim/)良い。