前書き

クラウドベースのバックアップソリューションから高可用性コンテンツ配信ネットワーク(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サーバーは、ソースコードをコンパイルするか、バイナリファイルを介してインストールできます。 この手順では、バイナリを介してサーバーを最も簡単な方法でインストールし、その後すべてを構成します。

まず、サーバーにログインします。

パッケージデータベースを最近更新していない場合は、今すぐ更新してください。

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/ [プロジェクトのドキュメントウェブサイト]をご覧ください。