こんにちは、のすけです。
前回、conohaで高速WordPress実行環境であるKUSANAGIを動かす記事を書きました。
とても速くて快適なのですが、1つ問題があります。
それはディスク容量です。初期設定でルートドライブがSSD50GBになっており
多少、心もとないのが実情です。
そこで、cohohaのサービスを使ってその問題を解決します。
方法は2パターン
- 追加ディスクを購入してマウントする
- オブジェクトストレージを使う
それではざっくりと順番に説明していきます。
追加ディスク
conohaには追加ディスクと呼ばれるSSDを追加で利用する機能があります。
2018年10月現在 200GBだと 2,500 円/月 ( 3.5 円/ 時間 )で利用できます。
また、500GBだと4,500 円/月 ( 6.3 円/ 時間 )で利用できます。
作成方法
VPSの「ディスク」メニューから追加することができます。
「新規ディスク」を選んで、名前を適当につけて「追加」を押すだけです。
ちなみに保存したディスクイメージも利用できるようです。
そして、ディスクの画面から任意のVPSに接続させます。「接続先」の項目が未接続になっていると思いますので、そこを任意のVPSを選んであげます。
そうすると、VPSから認識可能になります。
追加ディスクのマウント
パーティションを初期化します
parted -s -a optimal /dev/vdb -- mklabel msdos mkpart primary ext4 1 -1
mkfs.ext4 /dev/vdb1
マウント先のディレクトリを作成します(ここでは/home/kusanagi/dataにマウントするものとします)
cd /home/kusanagi/ mkdir data
ここで、マウント先を/home/kusanagi/DocumentRoot/wp-content/uploadsみたいな感じに¥にすれば、ファイルのアップ先を追加ディスクにすることもできそうです。
(未検証)
マウントを実行します
mount /dev/vdb1 /home/kusanagi/data
確認します。
df -h
次のような結果になってれば成功です。
/dev/vdb1 197G 60M 187G 1% /home/kusanagi/data
オブジェクトストレージ利用
オブジェクトストレージとは
ConoHaのオブジェクトストレージは、インターネット経由で使用できるオブジェクトストレージサービスです。
容量無制限、転送量無制限、可用性が高いストレージサービスを、わかりやすい価格体系で利用できます。ConoHaのVPSサービスから利用することはもちろんですが、ConoHaを 利用していなくても利用することができ、APIを経由してウェブ上のどこからでもデータを保存、取得することができます。また、ConoHaオブジェクトストレージは、一般的なオブジェクトストレージの機能を満たしつつ、ConoHaのVPSからも簡単に利用でき、コントロールパネルが共通なため管理が簡単で、決済などもまとめることができます。
AmazonAWSのS3みたいなやつですね。違いとしてはデータ転送に課金されないのでConoHaの方がお得です。
オブジェクトストレージに適したデータは
- 画像ファイル
- 動画ファイル
- バックアップファイル
- ログファイルのアーカイブ
- 仮想マシンイメージ
なので、まさにWordPressのアップロードデータをオブジェクトストレージに突っ込んであげればいい感じになると予測できます。
ちなみに適していないデータは
オブジェクトストレージに適していないデータ
- リアルタイムに書き込みのあるログファイル
- 頻繁に更新のあるキャッシュファイル
では設定していきましょう。
Conoha APIの有効化
まずVPSの「API」メニューからConohaのAPIを有効にします。
そうすると、テナント情報、エンドポイントが書かれていると思います。
あとで利用するので覚えておきます。
WordPressのプラグイン「ConoHa Object Sync」を使う
有志の方がプラグインを作ってくれていますので、ありがたく利用させていただきます。
WordPressの管理画面からメディアを追加すると、自動的にオブジェクトストレージにアップロードを行います。オブジェクトストレージは容量無制限なため、空き容量を気にすること無くメディアファイルを扱うことができます。
また、このプラグインはメディアファイルのURLを変更し、オブジェクトストレージから直接配信するように設定します。これにより、WordPressを運用しているサーバに負荷をかけずに、メディアファイルを配信することができます
WordPressの管理画面から新規追加で「ConoHa Object Sync」で検索してインストール&有効化します。
追加設定
KUSANAGIの初期状態だと、ファイルがアップロードできませんでした。
アップロードしよとすると「最大アップロードサイズ: 0 B」になっていました。
そこでWordPressのアップロード可能サイズを変更します
php系
vi /etc/hhvm/php.ini
次のように変更
upload_max_filesize = 400M post_max_size = 512M memory_limit = 512M hhvm.enable_zend_ini_compat = false
nginx系ファイル
(xxxxはkusanagiでプロヴィジョニングした名前)
vi /etc/nginx/nginx.conf vi /etc/nginx/conf.d/xxxx_http.conf vi /etc/nginx/conf.d/xxxx_ssl.conf
次のように変更
client_max_body_size 400M;
最後にKUSANGI(dbとかnginxとか)をリスタートして設定を反映させます。
kusanagi restart
そしてwordpressからアップロードしてみると次のようなURLでアップされました。
https://object-storage.tyo2.conoha.io/v1/nc_[apiのID]/[コンテナ名]/[年]-[月]-[ファイル名]
結構読み込み速度も速いのでこのURL直でもいいと思います。もし速度が必要ならCDNを間に入れればより速くなるのではと思います。
オブジェクトストレージはアクセス量の課金はないので安心ですね。いやぁ便利便利。
オブジェクトストレージは3TBまでサイズを変えることができるので、最初は100GB(450円/月)で設定して利用して行けば良いかと思う。
追加ディスクよりこっちの方が圧倒的に安いので、こっちの方が良いかと思います。