去年夏に Chef に出会い、スマートWPのセットアップ方法を変えました。
今までは「AWS EC2 を手動でセットアップして AMI 保存」を繰り返すことでサーバをバージョンアップしてきた方法から、まっさらな AWS AMI を Chef で一気にセットアップするように切り替えました。
何が良いかというと、
- 最新のバージョンが常に保たれる
- AWS AMI もバージョンアップされるし、各アプリケーションも常にバージョンアップされるので
- AMIを更新し続けると古いバージョンのままになってどこかでバージョンアップの作業が必要になる
- すべての作業内容がレシピに残る
- どうしても手動だとやったことの記録漏れが出がち
- 手動よりも圧倒的に早い
というところかと思う。
そんな Cehf で作ったスマートWPのレシピを公開します。
このレシピで作られたスマートWPのサーバ環境は私の個人ブログ hirofukami.com と会社のサイト ShakeSoul inc. があって、負荷状況に応じて自動的にサーバを増減させるオートスケーリングが動くようになっています。
ご興味のある方は スマートWPのサービス紹介ページを見てみてください。
レシピは2つ使っていて、他の環境とも共用しているベースとなるセットアップの後にスケーラブルな構成のためのレシピを適用しています。
では、以下。私の Github Gist からの貼付けです。
まずはベースの設定。recipe[swp_setup]です。
続いて、recipe[swap_scale-org]です。
これを nodes/[hostname].json で、
のように書いて適用させています。
こんな感じで、Webサーバとしては nginx + php-fpm、それに Dropbox linux と s3fs を使っているのがお分かりかと思います。 今後、ここで読み込んでいるテンプレートの nginx のコンフィグとかなんかも公開しようかなと思っています。
色々やっている方とディスカッションしてみたいので、違うやり方しているよとかこっちのほうが良いよみたいなのがあればフィードバックください〜
あと、Chef 学びたいとかスケーラブルなサーバ環境つくりたいとかもあれば相談いただければです。