前書き
クラウドベースのバックアップソリューションから高可用性コンテンツ配信ネットワーク(CDN)に至るまで、オブジェクトストレージは現代のテクノロジー環境に不可欠な要素となっています。 また、フットプリントが小さく、インターフェイスが簡単で、複数のクラウドストレージサービスとの互換性があるため、https://www.minio.io/ [Minio]オブジェクトストレージサーバーは多くの機能を備えています。
Minioは、写真、ビデオ、仮想マシンイメージ、コンテナ、ログファイルなどの非構造化データをオブジェクトとして保存するオープンソースのオブジェクトストレージサーバーです。 分散モードでは、Minioは多数のサーバーに分散した複数のドライブをプールする単一のオブジェクトストレージサーバーを提供します。
MinioはGoで記述され、コマンドラインクライアントとブラウザーインターフェイスが付属し、https://www.digitalocean.com/community/tutorials/an-advanced-message-queuing-protocol-amqp-walkthroughのシンプルなキューサービスをサポートします。 [Advanced Message Queuing Protocol(AMQP)]、https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-elasticsearch-on-ubuntu-16-04 [Elasticsearch]、https:/ /www.digitalocean.com/community/tutorials/how-to-install-and-use-redis[Redis]、https://www.digitalocean.com/community/tutorials/how-to-install-and-configure- nats-on-ubuntu-16-04 [NATS]、およびhttps://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-16-04[Postgres]ターゲット。
このチュートリアルでは、次のことを行います。
-
DigitalOceanサーバーにMinioサーバーをインストールし、systemdサービスとして構成します。
-
Let’s Encryptを使用してSSL / TLS証明書を設定し、サーバーとクライアント間の通信を保護します。
-
HTTPSを介してMinioのブラウザーインターフェースにアクセスし、サーバーを使用および管理します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
sudo non- rootユーザーとファイアウォール。
-
完全に登録されたドメイン名。 https://namecheap.com [Namecheap]で購入するか、http://www.freenom.com/en/index.html [Freenom]で無料で入手できます。
-
Minioサーバー用に設定された次のDNSレコード。 追加方法の詳細については、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このホスト名チュートリアル]を参照してください。
-
サーバー名を含むAレコード(例:
++
)オブジェクトサーバーのIPv4アドレスを指します。 -
サーバーがIPv6経由で到達できるようにする場合は、オブジェクトサーバーのIPv6アドレスを指すサーバー名を持つAAAAレコード。
-
サーバーにインストールしてくださいhttps://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04[Ubuntu 16.04にGoをインストールするためにこのガイドを使用]。
手順1-Minioサーバーのインストールと構成
Minioサーバーは、ソースコードをコンパイルするか、バイナリファイルを介してインストールできます。 この手順では、バイナリを介してサーバーを最も簡単な方法でインストールし、その後すべてを構成します。
まず、サーバーにログインします。
ssh sammy@
パッケージデータベースを最近更新していない場合は、今すぐ更新してください。
sudo apt-get update
次に、Minioサーバーのバイナリファイルをダウンロードします。
curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio
「+ minio +」という名前のファイルが作業ディレクトリにダウンロードされます。 実行可能にします。
sudo chmod +x minio
次に、ファイルをMinioのsystemd起動スクリプトが検出するはずの `+ / usr / local / bin +`ディレクトリに移動します。
sudo mv minio /usr/local/bin
セキュリティ上の理由から、Minioサーバーを* root として実行したくありません。 また、ステップ2で使用するsystemdスクリプトは、 minio-user *というユーザーアカウントとグループを検索するため、ここで作成します。
sudo useradd -r minio-user -s /sbin/nologin
バイナリの所有権を* minio-user *に変更します。
sudo chown minio-user:minio-user /usr/local/bin/minio
次に、Minioがファイルを保存するディレクトリを作成する必要があります。 これは、ステップ5で作成する_buckets_の保管場所になります。
sudo mkdir /usr/local/share/
そのディレクトリの所有権を* minio-user *に付与します。
sudo chown minio-user:minio-user /usr/local/share/
`+ / etc +`ディレクトリはサーバー設定ファイルの最も一般的な場所であるため、そこにMinioの場所を作成します。
sudo mkdir /etc/
そのディレクトリの所有権も* minio-user *に与えます。
sudo chown minio-user:minio-user /etc/minio
nanoまたはお好みのテキストエディターを使用して、デフォルト構成の変更に必要な環境ファイルを作成します。
sudo nano /etc/default/
そして、次の変数を追加します。
/ etc / default / minio
MINIO_VOLUMES=""
MINIO_OPTS="-C --address :"
-
* MINIO_VOLUMES *:以前に作成したストレージディレクトリを指します。
-
* MINIO_OPTS :サーバーの動作を変更します。 * -C *フラグはMinioが使用すべき構成ディレクトリを指し、-address フラグはバインドするIPアドレスとポートをMinioに伝えます。 IPアドレスが指定されていない場合、Minioは_localhost_およびDocker関連のIPアドレスを含む、サーバーで構成されたすべてのアドレスにバインドします。したがって、このファイルでIPアドレスを明示的に指定することをお勧めします。 デフォルトのポートは 9000 *ですが、別のポートを選択できます。
最後に、変更が完了したら環境ファイルを保存して閉じます。
Minioがインストールされました。次に、サーバーをシステムサービスとして実行するように構成します。
ステップ2-Minio Systemd起動スクリプトのインストール
このステップでは、Systemdサービスとして管理されるようにMinioサーバーを構成します。 まず、次のコマンドを使用してMinioサービス記述子ファイルをダウンロードします。
curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
ダウンロードが完了したら、 `+ minio.service +`という名前のファイルが作業ディレクトリにあるはずです。
適用する前に `+ minio.service +`のコンテンツを監査するには、テキストエディターで開いてそのコンテンツを表示します。
nano minio.service
スクリプトの内容に満足したら、テキストエディターを閉じます。
Systemdでは、ユニットファイルをsystemd設定ディレクトリに保存する必要があるため、 `+ minio.service +`をそこに移動します。
sudo mv minio.service /etc/systemd/system
次に、次のコマンドを実行して、すべてのsystemdユニットをリロードします。
sudo systemctl daemon-reload
最後に、ブート時にMinioを開始できるようにします。
sudo systemctl enable minio
systemdスクリプトがインストールおよび構成されたので、サーバーを起動しましょう。
ステップ3-Minioサーバーの起動
この手順では、サーバーを起動してファイアウォールを変更し、ブラウザインターフェースからのアクセスを許可します。
まず、Minioサーバーを起動します。
sudo systemctl start minio
次のコマンドを使用して、Minioのステータス、バインドされているIPアドレス、メモリ使用量などを確認できます。
sudo systemctl status minio
次のような出力が得られます。
Outputminio.service - Minio
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-04-07 00:26:10 UTC; 11min ago
Docs: https://docs.minio.io
Process: 25069 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /etc/default/minio" (code=exit
Main PID: 25073 (minio)
Tasks: 6
Memory: 20.7M
CPU: 544ms
CGroup: /system.slice/minio.service
└─25073 /usr/local/bin/minio server -C /etc/minio --address :
Apr 07 00:26:11 minio[25073]: Browser Access:
Apr 07 00:26:11 minio[25073]: http://:
次に、構成されたポートでMinioサーバーへのファイアウォールを介したアクセスを有効にする必要があります。 このチュートリアルでは、それはポート「++」です。
したがって、最初にルールを追加します。
sudo ufw allow
次に、ファイアウォールを再起動します。
sudo systemctl restart ufw
Minioはトラフィックを受け入れる準備ができましたが、サーバーに接続する前に、SSL / TLS証明書をインストールして通信を保護しましょう。
手順4-Let’s Encrypt SSL / TLS証明書によるMinioサーバーへのアクセスの保護
この手順では、コンソールベースの証明書生成クライアントhttps://docs.minio.io/docs/concert[Concert]を使用して、オープンソースhttps:// letsencryptを使用してSSL / TLS証明書を作成します。 org / [Let’s Encrypt]認証局。 Let’s Encrypt証明書を生成する他の方法がありますが、ConcertはMinioの開発者と公式のhttps://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-forの一部によって書かれています-minio [インストール手順]。
まず、次のコマンドを使用してコンサートをダウンロードします。
go get -u github.com/minio/concert
完了すると、 `+ concert `という名前のファイルが_GOPATH_の ` bin +`ディレクトリにあるはずです。
次に、証明書を生成します。
`+-dirs +`フラグを使用して次のコマンドを実行し、使用する出力ディレクトリ、メールアドレス、ドメイン名をConcertに伝えます。
sudo /bin/concert gen --dir
出力は以下のようになります。
Output2017/04/09 01:21:08 Generated certificates for under will expire in 89 days.
そして、Concertは + private.key`と
+ public.cert`ファイルを生成します。これらのファイルは、指定したディレクトリで `+ ls +`を実行することで確認できます。
次に、これらの2つのファイルをMinioのサーバー設定フォルダーの下の `+ certs `ディレクトリにコピーします。このチュートリアルでは、これは ` / etc / minio +`です。
sudo cp /private.key /certs/
sudo cp /public.crt /certs/
次に、ファイルの所有権を* minio-user *に変更します。
sudo chown minio-user:minio-user /certs/private.key
sudo chown minio-user:minio-user /certs/public.crt
Minioサーバーを再起動して、証明書を認識し、HTTPSの使用を開始します。
sudo systemctl restart minio
生成されたLet’s Encrypt証明書は90日間のみ有効であり、手動で繰り返し更新するのは非効率的であるため、サーバーモードでConcertを起動して、システムをセットアップして証明書を自動更新します。
sudo concert server --dir @
これにより、Minioの接続が安全になり、SSL / TLS証明書が自動的に更新されます。 次のステップでは、ブラウザを介してMinioに接続し、サーバーを使用および管理します。
ステップ5-HTTPSを使用してMinioのWebインターフェイスに安全に接続する
このステップでは、HTTPSを介してMinioウェブインターフェースに安全に接続し、バケットを作成してオブジェクトをアップロードします。
ブラウザで「+ https://:+」を指定して、Webインターフェースにアクセスします。
次に、ログイン認証情報を見つける必要があります。 Minioは、ステップ3でサーバーを起動したときに、設定ファイルを `+ / etc / minio `ディレクトリに書き込みました。 その構成ファイルである ` config.json +`には、サーバーにアクセスするために必要な* accessKey および secretKey *の値が含まれています。 両方のキーをコピーし、将来のためにアクセスしやすい安全な場所に保管してください。
/etc/minio/config.json
{
"version": "19",
"credential": {
"accessKey": "",
"secretKey": ""
},
"region": "us-east-1",
...
}
ここで、資格情報を入力し、入力フィールドのすぐ下にある矢印の付いた丸いボタンをクリックして、メインインターフェイスにログインします。
そこから、メインインターフェイスの右下にある明るい赤の* + *ボタンをクリックして、2つの追加の黄色のボタンを表示します。
image:http://assets.digitalocean.com/articles/how-to-set-up-an-object-storage-server-using-minio/61120-ssb.png [Minioのメインインターフェース]
真ん中の黄色のボタンをクリックし、プロンプトに新しいバケットの名前を入力し、 `+ ENTER +`キーを押して応答を保存します。 これで、新しいバケットをストレージに使用する準備ができました!
バケットにオブジェクトを追加する場合は、以前と同じ明るい赤色のボタンをクリックしてから、top、黄色のボタンをクリックして、ファイルアップロードプロンプトを開きます。
この時点で、基本的なウェブインターフェース全体を操作しましたが、バケットを作成してオブジェクトをアップロードするだけでなく、新しいログイン認証情報を生成し、オブジェクトの共有可能なリンクに有効期限を設定し、オブジェクトを完全に削除することもできます。
結論
これで、Minioを使用した独自のオブジェクトストレージサーバーがあり、Let’s Encrypt SSL / TLS証明書を使用してウェブインターフェースから安全に接続できます。 オプションで、オブジェクトストレージを使用および管理する別の方法として、FreeBSD、Linux、Mac、およびWindows用のhttps://dl.minio.io/client/mc/release/[Minio desktop clients]を参照することもできます。サーバ。
さらに、サーバーのディスクサイズを超えてMinioインストールのストレージ容量を増やしたい場合は、https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitaloceanを使用できます。 [DigitalOceanのブロックストレージサービス]は、ボリュームをサーバーに接続し、同じサイズのDropletを数分の一のコストで80 TBほどストレージ容量を拡張します。
Minioの詳細については、https://docs.minio.io/ [プロジェクトのドキュメントウェブサイト]をご覧ください。