利用するプラットフォームを選んだはなし


前回の記事(ゆゆゆに突きつけられた要求仕様)では、どんな要求があったかをまとめました。 今回は、その要求からプラットフォームやフレームワークの選定までの流れを書いていきます。

要求仕様

まず、要求仕様のおさらいです。
要求仕様
  • 容量を気にせず画像を投稿したい
  • 独自ドメインを使いたい
  • ブログもつくりたい(Adsenseを後々にいれたい)
  • 自分でページを増やせるようにしたい
  • 画像は検索できるようにしたい
  • SEO対策をページ毎に設定できるようにしたい
  • スマホとPCでUIを変えたい
  • 直リンクの場合は、固定のバナーを出したい
  • httpsにしたい
  • 独自デザインにしたい

実装方法

次に、実装方法について検討しました。 Node.jsがマイブームだったので、KeystoneJSも検討をしてみましたが、UIをほぼ作り直さないといけない雰囲気だったので断念しました。 フルスクラッチで書くのも、時間が掛かりそうだったので断念。 消去法でWordPressにしましたが、コンテンツ管理といえばWordPressというくらい認知されてますし、普段あまり触らないので良い機会だと自分を納得させました。 ページ公開後もデザインの修正や機能追加などをすることも考慮して、WordPressはDockerで構築します。KUSANAGIが良さそうなので、PHP7で使ってみることにしました。

サイトのサーバ構成

実際にできたサイトの構成はこんな感じです。
cloudflare
CDNサービスで、cssや画像などをキャッシュしてくれます。キャッシュの有効期限が切れたときだけオリジンサーバにアクセスが来るため非力なサーバでも比較的高速である程度リクエストを捌けるようになります。
Mailgun
メール送信時に使います。メルマガの配信と開封数なども計測できるようです。今回はメールサーバを立てるのを省略するためにサービスを利用しました。
Google Cloud Platform
永年フリーのプランもあるので、リクエストをさばけるうちはフリーでも良さそうです。
Docker
GCPで立てたLinuxサーバ上にDockerの環境を構築します。
KUSANAGI
素のWordpressよりもかなり早いらしい。Dockerのイメージ(まだ試用版らしいです)が用意されているのも良いところです。
Let’s Encrypt
無料のSSL認証局です。今回はこちらのDockerImageを利用しました。


CIは今後課題ですが、Dockerを使ったので環境の複製は簡単にできます。 次回は、(順番が違う気がしますが)開発環境の構築について書きたいと思います。