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のインストール
- Minio用のShared Folderの作成
- Minio用のdataフォルダとconfigフォルダ作成
- Minio Docker Imageのダウンロード
- Minioの起動
- 動作確認
- HTTPS対応
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://<Synology NASのIP>:9000にアクセスすると、UI(Minio Browser)が表示される。
AWS CLIからアクセスする。
aws configure
でAccessKeyとSecretKeyを入力。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でアクセス可能になる。