インターネットの各サイトで一番多いデータの形式は画像のデータだと言われる。


うちのサイトでも画像のデータが大半を占め、

現在借りているさくらのVPS 1Gプラン(ストレートがSSD 30G)も気付けば残り200MBになり、

夜間のバックアップスクリプトを実行するとサーバのリソースが限界を超えるのか、

朝起きてサイトを表示したら何らかの不調でサイトが開けないことが多くなった。


というわけで、

追加ストレージ(NFS)を借りて、

画像データをNFSのサーバに移すことにした。

Network File System - Wikipedia


設定に入る前に簡単にサーバの構成を可視化してみると、



インターネットからサーバにアクセスする時はアプリケーションサーバ(ウェブサイト)のみで、

アプリケーションサーバからスイッチを介してストレージサーバにアクセスする構成になる。


これらを踏まえて、

さくらのVPSでNFSを借りて使用する手順をメモとして残しておく。




VPSの環境

サーバ:1Gプラン(SSD 30GB)

OS:Ubuntu 18.04.2

NFS:100Gプラン

さくらのVPSにUbuntu18.04を入れてSOY CMSを動かした時のメモ


はじめにアプリケーションサーバとストレージサーバの中継地点となるスイッチの設定から始める。


さくらのVPSのコントロールパネルにログインし、

サイドバーにあるスイッチのページを開き、スイッチ作成のボタンをクリックし



ゾーンの個所に現在利用中のアプリケーションサーバを借りた時に指定したゾーンを選択してスイッチを作成する。

名前と説明は任意の値。


スイッチを作成したら、ネットワークインターフェースに作成したスイッチを紐付ける。


サイドバーにあるサーバをクリックし、

NFSを使用したいサーバの詳細画面を開く。



サーバをシャットダウンした後、各種設定にあるネットワークの設定を開く。



ネットワーク設定でeth1に先程作成したスイッチを設定する。

設定後にサーバの再起動は忘れずに




続いて、

サイドバーにある追加ストレージ(NFS)をクリックし、

次の画面で追加のボタンをクリックする。



ゾーンは先程のスイッチと同じゾーンにし、

下の画面でNFSのプランを選択する。


※上の画像は一度契約を終えてから、詳細画面を開いた時のもの。内容は追加時と一緒


追加ディスクの設定でIPアドレスとネットマスクは、

ローカルエリアネットワークの知識がなければキャプチャにあるIPアドレスが192.168.1.2、

ネットマスクは255.255.255.0にしておくと良い。

Local Area Network - Wikipedia


NFSの契約が完了したら、



(起動してしまったら)シャットダウンし、

設定にあるネットワーク設定を開く。



eth1に先程作成したスイッチを設定しておく。

以後はSSHでリモートアクセスしての作業となる。




今回はNFSを/var/www/html/storageにマウントすることを前提に話を進める。


$ sudo mkdir /var/www/html/storage
$ sudo chmod -R 777 storage

sudo nano /etc/network/interfaces

## 下記を末尾に追加 ##
auto ens4
iface ens4 inet static
        address 192.168.1.1
        netmask 255.255.255.0
##################

$ sudo ifup ens4

# NFSと接続できたことを確認
$ ping 192.168.1.2

# アプリケーションサーバにNFSのexportディレクトリをマウントする
$ sudo apt update
$ sudo apt -y install nfs-common
$ sudo mount -t nfs 192.168.1.2:/export /var/www/html/storage

これで設定は終了。




最後にサーバの再起動後に指定のディレクトリにマウント出来るように、

$ sudo crontab -e

## 下記をcrontabの最初の命令として追加 ##
@reboot mount -t nfs 192.168.1.2:/export /var/www/html/storage
####################################

追記

SOY CMSのNFSを利用するためのプラグインの作りかけがあります。

利用したい場合は下記ページにてお問い合わせ下さい。

https://saitodev.co/soycms/inquiry