下調べ
とりあえず、始める前に「KUSANAGI on ConoHa」「セキュアな設定」あたりについて、情報収集。
KUSANAGI on ConoHaについて
まずは、公式。
- KUSANAGI for ConoHa – KUSANAGI
- KUSANAGIの初期設定 – KUSANAGI
- KUSANAGIのプロビジョニング – KUSANAGI
- WordPressのインストール – KUSANAGI
- 推奨するセキュリティ対応 – KUSANAGI
よくまとまっているブログ、特に、運用の部分も踏まえて、その点もフォローしているのがいい。
- 連載目次:ConoHaとKUSANAGIで月々630円の格安WordPressサーバを作る | 有限工房
- ConoHaに入会してKUSANAGIを立ち上げる
- KUSANAGIを設定してWordPressを立ち上げる
- KUSANAGIのキャッシュ機能をONにする
- KUSANAGIにSSHでつなぐためにセキュリティを強化する
- KUSANAGI運用のコツ
ディレクトリについてとか、独自ドメインの考慮(DNSでのAレコードの設定とか、ConoHaのコンパネでの設定とか)。
Let’s Encryptに関して、www のあるなし関係なく同一のIPに接続するようにDNSのAレコード設定が必要。
ConoHa利用料のコストに関して、GMOの株主になると、優待でコストが抑えられる。10年使うなら実質4万程度で済む。優待なく、月額900円で10年使ったら10万強の費用(向こう10年、株主優待の内容が変わらない、という前提だけど)。
あと、最小スペックでメモリ512MBがあるけれど、これはスケールアップができないため、サイトが成長する前提の場合は、メモリ1GB以上を使った方が良さそう。
Let’s Encryptの設定には、メールアドレスが必要ということと、事前に、対象のドメインでサーバーにアクセスできるようにしておく必要があるため、ドメインを新規取得の場合は、事前にDNSのレコード設定を済ませておいた方が良いとか。
公式マニュアルに沿った内容で、さらに、キャプチャ付きで全体の流れが解説されている。
別サーバーからの移行方法について記載があり、これを知ることでディレクトリ構造などについて理解を深めることができそう。(追記: が、これが、KUSANAGIの標準的なディレクトリ構造なのかがわからなかった...)
KUSANAGI on ConoHa について、VM作成後のサーバー側の各種設定変更について詳細に書かれている
これが一番細かそう
- ConoHa で KUSANAGI がかなり良い。サーバーセットアップと初期設定 - IMPOV::In My Point Of View
- サーバーの立ち上げ - ConoHa で KUSANAGI その1
- 作業用ユーザーを作成する - ConoHa で KUSANAGI その2
- SSH のポートを変更する - ConoHa で KUSANAGI その3
- ConoHa API を叩いてインフラ側で Firewall を設定 - ConoHa で KUSANAGI その4
- Firewalld を念の為に設定 - ConoHa で KUSANAGI その5
- ユーティリティのインストールと設定 - ConoHa で KUSANAGI その6
- KUSANAGI の設定 - ConoHa で KUSANAGI その7
セキュアな設定
前項のリンクと重複しているものもあるが、セキュリティ関連の設定を抜き出してリスト化。
インスタンス(サーバー)のセキュアな設定に関して
全般的な考慮点。
sudoについて触れられている、この辺りは、別に su -
して作業すりゃーいーじゃん、とも思ったので、「なぜ、sudoしないといけないの?した方が良いの?」というあたりを、おさらいしておく(なんでだったか忘れちゃったw)
iptableでのポート変更と、~/.ssh/configを設定することで、sshコマンド実行時のオプション指定を簡略化
ポート変更時は、コンパネ側も考慮が必要で、コンパネ側の全開放について触れていないブログが多いから要注意。あと、これは、firewall-cmdを使ったポート変更の設定例。
sshのポート変更から、インフラ側のFirewallの設定変更をAPIで行う例(他の解説ブログは、Firewall側は全開放がほとんど)と、サーバー側のFirewalldの設定についても触れられている。
- SSH のポートを変更する - ConoHa で KUSANAGI その3
- ConoHa API を叩いてインフラ側で Firewall を設定 - ConoHa で KUSANAGI その4
- Firewalld を念の為に設定 - ConoHa で KUSANAGI その5
WordPress on KUSANAGIのセキュアな設定に関して
KUSANAGI推奨のセキュア設定については、公式を
ということで、公式のドキュメントには、一通り目を通しておく
技術的なエトセトラ
下調べの中で、引っかかった関連する技術的な情報で、「あっ、これ、見ておくと良さそう」と思ったもの
後々、そうしたいなぁーと思っていたことで、LaravelなどのPHPのプログラム/アプリケーションを同居させたいなぁーと思ったので、関連しそうな情報をピックアップ。
KUSANAGIのPHP環境は、初期設定だとHHVMのようだけれど、Laravelは、HHVMでも問題ない?もしダメなら、PHP7の環境にする。
で、Laravelではないけれど、FuelPHPを動かそうとしているページがあったけれど、最終的な結論が書かれていない。
KUSANAGI特有のPHPの設定とか、あるのかも?でも、これはバージョンが古いと、このようなトラブルが起きるという意味にも取れる。
以下は、所々、説明に違和感(*1)があるけれど、やりたいことの手段の一つになりそう。KUSANAGIで複数サイトをプロビジョニングするってのが、確かに、良さげ。プロビジョニングごとに、httpサーバーやPHPのエンジンは変えられる?フツーは、そんな複雑なことしないよね?
(*1)... 「WordPressの上にKUSANAGI」という表現だけど、違うと思う。そもそも完全な上下の関係というよりは、環境構築&設定の手段がKUSANAGIで、その結果、プロビジョニングされるのがWordPressという格好。
ドンンピチャな質問と、回答が公式にあったw
上記から参照リンクされているのが、以下。
主に、ディレクトリの構成を見直すのと、Laravelプロジェクトの特定のディレクトリに対して、httpd/nginxの動作ユーザーが書き込みできるようにパーミッションを設定する。
公式のフォーラムを見てみると、参考になりそうなことがチラホラ。
複数のプロビジョニングが可能っぽい、httpd.confでいう所のVirtualHostで複数ドメインをホストできるってことだろうから、まぁ、当たり前か
/home/kusanagi配下にしか、httpのドキュメントルートを置けないらしい
- 複数ユーサーでKUSANAGIを使用できますか? | KUSANAGIユーザーグループ
- DocumentRoot以下のサブディレクトリにWordPressを複数インストール | KUSANAGIユーザーグループ
少し、ハッスルした内容だけど、Ansibleで構築作業を自動化。
こちらは、Ansibleではなく、Vagrant... 勉強にはなるかなw
- Conohaへ(ほぼ)CLIだけでCoreOSのインスタンスをセットアップしてみた - くんすとの備忘録
- KUSANAGIのインスタンスをConohaにVagrantを使ってセットアップする方法 - くんすとの備忘録
他社のサービスとのパフォーマンス比較
- s3+CloudFrontよりConoHa+KUSANAGIのほうが速いかもしれない | noldor's blog
- ConoHaとロリポップとXサーバーでWordpressの速度比較した結果wwwwww | ghost_in_the_info
ちょっとマニアックだけれど、ディスクの設定についてConoHaでどのような扱いになっているのかを見ているもの(LVM Volumeなのか?とか、/bootどうなっている?とか)
考慮点
- VPS作成
- ポチポチで起動
- ドメイン
- 取得ドメインのDNSのAレコードの設定
- ConoHaのコンパネでの設定
- サーバー側の初期作業
- 後項に出てくる諸々の設定
- WordPress on KUSANAGIのセットアップ
- マニュアル通りにすれば、とりあえずは、良さそう
- WordPress自体の設定
- よく使うプラグインとか(これは、まだ特に何も調べていない)
- ssh関連
- ポート変更
- コンパネの設定が影響する
- 全開放、もしくは、API叩いて制御?
- サーバ側の設定で絞る
- iptablesが入っていないという情報もあったが、定かではない
- systemctl stop firewalld.service
- systemctl mask firewalld.service
- systemctl enable iptables.service
- ローカルからのsshコマンドでポート指定
- ssh -i {keyfile_path} {user}@{host} -p {port_number}
- ~/.ssh/configで指定
- ssh conoha などの略式で利用可能になる
- コンパネの設定が影響する
- 鍵認証
- ssh-keygen -t rsa -b 2048
- ローカルのユーザー、サーバー上の作業ユーザー、それぞれで作成?
- id_rsa.pub, authorized_keys, .pem のぞれぞれの意味は?(前者2つが公開鍵で、.pemが秘密鍵)
- ポート変更
- root禁止
- ssh2
- sudo, su
- 作業用ユーザー追加
- なぜ、sudoはセキュア?
- ディレクトリ構成を考える
- KUSANAGIのプロビジョニングで作成されるディレクトリ構造が不明 /home/kusanagiにできる?
- WordPress
- /home/wordpress/site/
- Laravel
- /home/laravel/site/
- DB名
- 命名規則 {site_name}_wp とか?
- KUSANAGI
kusanagi autorenewal on
kusanagi https redirect
- wp-config.php の配置場所の変更
- ConoHa使ってアフィリエイト
ということで、具体的なコマンド例などは割愛しているので、時間があれば、その辺りは作業しつつ記録していく予定