【導入編】今更KUSANAGI for ConoHaを試してみる。

· 6 min read
【導入編】今更KUSANAGI for ConoHaを試してみる。


超高速でWordPressの仮想マシンが動かせるというKUSANAGI。
結構以前からバズってましたが、今更ながら試してみました。

KUSANAGIについての解説はこちらから。


とりあえずここを参考に仮想マシンの作成までは完了。

ちなみにインストール直後にサーバのIPをブラウザで叩いたら404エラーが出てました。
おそらくWordpressをインストールせなアカンのですね。

ちなみにコンソールに接続するとこんな感じ。なかなかカッコいいでロゴですね。


KUSANAGI の初期設定

仮想マシンにログインできたら、初期設定を行います。
初期設定には専用の「KUSANAGIコマンド」を使用します。

「KUSANAGIコマンド」は、初期設定のほか、Webサーバーの切替え、
キャッシュの制御なども行えるKUSANAGI専用のコマンドです。

ここからの手順ではWordPressが利用できる状態になるよう準備を行う手順について説明します。


1. 初期設定の開始

KUSANAGIコマンドによる初期設定を行う前に、
まずCentOSやKUSANAGIシステムのアップデートを yum を利用して行います。

# yum --enablerepo=remi,remi-php56 update -y

結構時間がかかるので、サーバ内を色々調査。

# df -h                                                                                                                                     
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   19G  3.2G   16G  17% /

# free -m                                                                                                                              
              total        used        free      shared  buff/cache   available
Mem:            489         136         161           7         191         319
Swap:          1023         333         690

一番安いプランなので、DISK20GB、メモリ512MBです。
KUSANAGIは推奨メモリが4GBなので、本来のパフォーマンスより劣るかも…。

そうこうしている内にアップデートが完了したので、一度再起動します。

# reboot

再度ログインしてから root ユーザーへ切り替え
KUSANAGI仮想マシンにおけるLinuxやデータベースのユーザーパスワードの設定、変更を行います。

# kusanagi init

2. TLS用ホスト鍵ファイルの生成

最初にTLSセッション用のDH鍵の生成が始まります。
パラメータファイルの生成って時間がかかるんですよね。低スペだから余計に…。

# kusanagi init

Checking KUSANAGI Version.
KUSANAGI is already latest version.
Generating 2048bit DHE key for security
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
............................................................+................................................................................................................................................................................................................................+...............................................................................+..............................................................................+......................................................................

~ 省略 ~

...........++*++*
Finish.
Checking certbot-auto update.
certbot 0.14.2

3. サーバタイムゾーンの設定

サーバのタイムゾーンの設定を行います。以下のように対話的にタイムゾーンを選択します。

Search or select timezone:
Africa/Abidjan
Africa/Accra
.
.
.

タイムゾーンを設定すると、下記のように表示されます。

Applying Location: Asia/Tokyo.

4. ロケールの設定

使用言語の選択を行います。
ここでは日本語である2を選択します。

Select your using language.

1 : English
2 : 日本語

q : quit

Which are you using?: 2

5. キーボードタイプの設定

キーボードタイプの設定を行います。

Select your keyboard layout.

1 : English
2 : Japanese

q : quit

Which are you using?:2

1 を選択すると英語キーボード(us配列)を、2 を選択すると日本語キーボード(jp106配列)を設定します。
こちらも2を選択。

6. ユーザーパスワードの設定

ユーザー kusanagi のパスワードの設定を行います。

Changing password for user kusanagi.
New password:

「passwd: all authentication tokens updated successfully.」
の表示がでればOK。

7. 鍵認証の設定

ユーザーkusanagi のSSHユーザ鍵の作成を行います。

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):

SSH鍵認証を行う場合のパスフレーズを設定します。
任意のパスフレーズを入力し、Enter(Return)キーを押します。
※こちらは空欄でOk。

Your identification has been saved in /root/kusanagi.pem.
Your public key has been saved in /root/kusanagi.pem.pub.

このタイミングで鍵認証に必要な公開鍵がルートディレクトリ(/root)に
kusanagi.pemとして生成されますので、初期設定完了後、必要に応じてダウンロード等を行ってください。

8. MySQL rootパスワードの設定

MySQLのrootパスワードを設定します。

Enter MySQL root password. Use [a-zA-Z0-9.!#%+_-] 8 characters minimum.

9. Webサーバの選択

起動するWebサーバをNGINX、httpd(Apache2) から選択します。

KUSANAGI can choose middlewares.
Please tell me your web server option.
1) NGINX(Default)
2) Apache

Which you using?(1): 

デフォルトはnginxなので1を選択します。空エンターでNginxを選択。

10. アプリケーションサーバの選択

起動するアプリケーションサーバをHHVM、PHP7、PHP-FPM(PHP5)から選択します。

Then, Please tell me your application server option.
1) HHVM(Default)
2) PHP7
3) PHP5

Which you using?(1):

リターンのみ入力するとデフォルトの HHVM を選択します。
デフォルトなのでとりあえずHHVMを選択しましたが、実際なとこはよくわかりません。。

こんな記事がありましたので、詳しくはこちらをご参照ください。
HHVM(HipHop Virtual Machine)とは

11. 初期設定の完了

次のようなメッセージが表示されれば、初期設定は完了です。

innodb_buffer_pool_size = 128M
query_cache_size = 64M
monit is already on. Nothing to do.

これで初期設定は完了です。
続いてWordPressのプロビジョニングへ進みます。

KUSANAGIのプロビジョニング

初期設定ができたら、KUSANAGIでWordPress などを使用するためのプロファイルを作成します。

これにより、Webサーバの設定ファイル、MySQLのデータベースや、
ドキュメントルートなどがプロビジョニング(配置)されます。

1. kusanagi provision コマンドの実行

次のように入力します。

# kusanagi provision html

上記の例では /home/kusanagi/html/というディレクトリが作成され、
この中にドキュメントルートが作成されます。
こちらはWordPressのインストールに必要なデータが格納されます。

Target directory is /home/kusanagi/html.

この表示がでればOK

2. WordPressの言語選択

WordPress をプロビジョニングする際、WordPressのインストール時の言語選択を行います。
WordPress プロビジョニング時以外は無視されます。

Choose the installation language of WordPress.

1 : en_US
2 : ja

q : quit

Which do you choose?: 2

今回は日本語で行きたいので2を選択。

3. ホスト名の設定

作成するプロファイルで使用するホスト名(FQDN) を指定します。

Enter hostname(fqdn) for your website. ex) kusanagi.tokyo

例 : www.example.com
※http://や末尾の/は不要です。

今回はkusanagi.hdserver.infoのドメインを使ってみます。

4. Let’s Encryptの設定

3で指定したホスト名に対応するLet’s EncryptのSSL証明書を発行します。

In order to use Let's Encrypt services, you must agree to Let's Encrypt's Term of Services.
If you agree this TOS, put in your e-mail adress, otherwise carriage enter key.
TOS of Let's Encrypt : https://letsencrypt.org/repository/

メールアドレスを入力します。
例:kusanagi@example.com

Let’s Encryptを使用しない場合は、入力は行わず空のまま2度エンターキーを入力してください。

5.データベース名の設定

データベース名を設定します。
今回はDB名 kusanagi で作成しました。

Enter the name of your database.

※ここで設定したデータベース名は後ほどWordPressのインストール設定の際に使用します。
忘れないよう控えておいて下さい。

6. データベースのユーザー名の設定
5で作成したデータベースのユーザー名を設定します。

Enter user name for database kusanagi.

ここもkusanagiで設定しました。

7. データベースユーザーのパスワードの設定

6で作成したデータベースユーザーのパスワードを設定します。

Enter password for database user 'kusanagi'. USE [a-zA-Z0-9.!#%+_-] 8 characters minimum.

8. プロビジョニングの完了

7までが終わるとWordPressの場合には下記のように表示されます。
これでプロビジョニングは完了です。

--2017-05-26 22:35:05--  https://ja.wordpress.org/latest-ja.tar.gz
Resolving ja.wordpress.org (ja.wordpress.org)... 66.155.40.250, 66.155.40.249
Connecting to ja.wordpress.org (ja.wordpress.org)|66.155.40.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8500101 (8.1M) [application/octet-stream]
Saving to: ‘wordpress.tar.gz’

100%[===================================================================================================================>] 8,500,101   4.89MB/s   in 1.7s   

2017-05-26 22:35:08 (4.89 MB/s) - ‘wordpress.tar.gz’ saved [8500101/8500101]

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for kusanagi.hdserver.info
Using the webroot path /home/kusanagi/html/DocumentRoot for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/kusanagi.hdserver.info/fullchain.pem. Your
   cert will expire on 2017-08-24. To obtain a new or tweaked version
   of this certificate in the future, simply run certbot-auto again.
   To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Enabling auto renewal certificate
Provisioning of html completed. Access kusanagi.hdserver.info and install WordPress!
Done.

ここでWordpressまでのインストールは完了となります。
あとはブラウザ上でWordpressのセットアップをしておしまいとなります。

がしかし

正直表示速度遅いです。…あれ?なんでw
今使っているこのWordpressのほうが全然早いです。。

KUSANAGI専用プラグインを利用する

 

KUSANAGIには「KUSANAGI専用プラグイン」が同梱され、有効化されています。

「KUSANAGI専用プラグイン」は、ページキャッシュや
翻訳アクセラレーターなどの高速化関連機能と、デバイスによるテーマ切り替え機能などを備えています。

こちらが未設定だったので再設定をしてみます。

ページキャッシュの設定

コンソール上で下記コマンドを実行します。

# kusanagi bcache on

それ以外は特に変更する場所はなさそう・・・。
次回はKUSANAGIへ現Wordpressのデータを移設する方法をまとめます。

今しばらくお待ちを。。