はりうすブログ (のすけのメモ)

はりうす代表 ”のすけ”のブログです

ConoHaのKUSANAGIで追加ディスクやオブジェクトストレージを設定する

こんにちは、のすけです。
前回、conohaで高速WordPress実行環境であるKUSANAGIを動かす記事を書きました。

hollywis.hatenablog.com

とても速くて快適なのですが、1つ問題があります。

それはディスク容量です。初期設定でルートドライブがSSD50GBになっており
多少、心もとないのが実情です。

そこで、cohohaのサービスを使ってその問題を解決します。

方法は2パターン

  1. 追加ディスクを購入してマウントする
  1. オブジェクトストレージを使う

それではざっくりと順番に説明していきます。

追加ディスク

conohaには追加ディスクと呼ばれるSSDを追加で利用する機能があります。

2018年10月現在 200GBだと 2,500 円/月 ( 3.5 円/ 時間 )で利用できます。

また、500GBだと4,500 円/月 ( 6.3 円/ 時間 )で利用できます。

作成方法

追加SSDの設定方法|ConoHa VPSサポート

VPSの「ディスク」メニューから追加することができます。

f:id:hollywis:20181011151256p:plain

「新規ディスク」を選んで、名前を適当につけて「追加」を押すだけです。
ちなみに保存したディスクイメージも利用できるようです。

そして、ディスクの画面から任意のVPSに接続させます。「接続先」の項目が未接続になっていると思いますので、そこを任意のVPSを選んであげます。

そうすると、VPSから認識可能になります。

追加ディスクのマウント

パーティションを初期化します

parted -s -a optimal /dev/vdb -- mklabel msdos mkpart primary ext4 1 -1

ファイルシステムを作成します(この例ではext4)

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のアップロードデータをオブジェクトストレージに突っ込んであげればいい感じになると予測できます。

ちなみに適していないデータは

オブジェクトストレージに適していないデータ

  • データベース(SQLiteのような1ファイルに書き出すものや、RDBMSのデータファイル)
  • リアルタイムに書き込みのあるログファイル
  • 頻繁に更新のあるキャッシュファイル

では設定していきましょう。

Conoha APIの有効化

まずVPSの「API」メニューからConohaのAPIを有効にします。

そうすると、テナント情報、エンドポイントが書かれていると思います。

あとで利用するので覚えておきます。

WordPressプラグイン「ConoHa Object Sync」を使う

有志の方がプラグインを作ってくれていますので、ありがたく利用させていただきます。

WordPressの管理画面からメディアを追加すると、自動的にオブジェクトストレージにアップロードを行います。オブジェクトストレージは容量無制限なため、空き容量を気にすること無くメディアファイルを扱うことができます。

また、このプラグインはメディアファイルのURLを変更し、オブジェクトストレージから直接配信するように設定します。これにより、WordPressを運用しているサーバに負荷をかけずに、メディアファイルを配信することができます

WordPressの管理画面から新規追加で「ConoHa Object Sync」で検索してインストール&有効化します。

設定値

ConoHa Object Syncの設定画面で設定を入れていきます。

ここでかなり悩んだのですが、次のように入れると正しく動きました。

APIアカウント名:テナント情報のテナント名を入れる
APIパスワード:設定したパスワードを入れる
テナントID:テナント情報の長いIDを入れる
Auth URL:API情報のエンドポイントの「Identity Service」のURLを入れる
リージョン:「Identity Service」のURLについてる「tyo2」みたいなのを入れる
サービス名:「Object Storage Service」と入れる
コンテナ名:任意(URLに利用される)

追加設定

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円/月)で設定して利用して行けば良いかと思う。

追加ディスクよりこっちの方が圧倒的に安いので、こっちの方が良いかと思います。

おまけ KUSANAGIドメインの再設定方法

ちなみに、設定中にKUSANAGIドメインを再設定したくなったので方法をメモしておきます

ドメイン設定変更(IPやドメインを再設定)

kusanagi setting --fqdn xxx.xx.xx.xx
--fqdnの後ろにIPやドメインを設定

そして、KUSANAGIを再起動させると反映されます。

kusanagi restart
Done.


続き
hollywis.hatenablog.com