Speee DEVELOPER BLOG

Speee開発陣による技術情報発信ブログです。 メディア開発・運用、スマートフォンアプリ開発、Webマーケティング、アドテクなどで培った技術ノウハウを発信していきます!

Shifter を導入した話

これは Speee Advent Calendar 2018 13日目の記事です。

昨日は id:bino98ty による 「あなたのなりたい姿はなんですか?」に答えられますか。 でした。


イエウールでサーバサイドエンジニアをやっています id:kawakubox です。

先月(2018年11月)の業務で、Shifter を利用する機会があったのでその時の話になります。

ことの始まり

業務でコラム記事のメディアを複数立ち上げることになりました。

要件は以下のような感じです。

  • WordPress
  • サービスの稼働は 24/365
  • 最大瞬間トラフィック想定:3,000pv/sec
  • HTTPS
  • HTTP/2 対応
  • ストレージ:80GB/メディア

なぜ WordPress だったのか

これまで記事エディタツールを内製しましたが、十分なメンテナンス要員を貼り付けられず編集チームの改善要望などに応えられない状況にありました。

今回のメディア立ち上げは、「すぐにでも立ち上げてイエウールとの接続を高めたい」という要望が強く、かつ協力先のパートナーが WordPress によるメディアグロースを強みにしているということもあり、WordPress による構築が必須条件となっていました。

実現案

さっと思いつくのは以下の2案と思われます。

  • AWS などの(IaaS)
  • WordPress ホスティングサービス

AWS WordPress:BestPractice

ググると以下のような構成パターンが公式で見つかりました。

aws.amazon.com

ちょっと盛り盛りな気がします。 極力簡素な構成で見積もってみました。

構成要素
  • Route53
  • ALB
  • EC2インスタンス x 2
  • RDS(Aurora)
  • CloudFront

f:id:kawakubox:20181213101935p:plain
AWS見積もり

月間トラフィック量を考慮していない数字ですが、それでも 140$/month くらいは固定でかかってしまいそうです。

結構かかる。。。

そんな折に id:pataiji から Shifter を紹介されます。

f:id:kawakubox:20181213102842p:plain

Shifter とは

一言で言うと Serverless な環境で運用される WordPress ホスティングサービスでしょうか。

中の人のスライドがあるので、そちらを見ていただくのが間違いないと思います。

speakerdeck.com

Shifter Features (https://www.getshifter.io/features/)

提供機能群を見る限りほぼ要件は満たせています

f:id:kawakubox:20181213115420p:plain

記事は静的コンテンツにアーカイブされて CDN 上にアップされるので、想定外のトラフィック増によるスケールなども Shifter なら心配ないですね。

Shifter Price (https://www.getshifter.io/pricing/)

- FREE PERSONAL BUSINESS AGENCY AGENCY PLUS
Price - $20 $40 $90 $150
WordPress Sites 1 3 10 30 50
Custom Domain Disabled Enabled Enabled Enabled Enabled
Storage 1 GB 10 GB 500 GB 1 TB 1 TB
Data Transfer 10 GB 1 TB 5 TB 10 TB 10 TB
Users 1 Unlimited Unlimited Unlimited Unlimited
Backups Disabled 1 Year 1 Year 1 Year 1 Year

※2018.12.13時点

上記は月払いでの価格なので、年払いにするともっとお安くなります。

データ転送量の 1TB の肌感が分からなかったのですが、周囲からは動画配信などやらなければ大丈夫でしょということなので、 BUSINESS プランで利用しています。

AWS での構築に比べて 1/4 以下で済みそうです。

まだメディアは絶賛グロース中ではありますが、現時点の利用が

Storage : 1.75GB of 500GB

Data Transfer : 148.48MB of 5TB

なので、当分気にせずメディアグロースに励んで良さそうです。

Shifter アカウントまわり

実際に使ってみてアカウント周りは以下のような感じです。

  1. Root アカウントとなる owner ユーザーを作成
  2. Organization を作成
  3. 必要な member ユーザーを Organization に招待

Owner ユーザは、新たにサイトを作ったり、 カスタムドメイン周りの設定したり、プラン設定や課金まわりのなどに利用します。

Member ユーザは、WordPress コンテナの起動/停止をすることができます。

Member は新しく作っても良いですし、すでに Shifter アカウントを持っているのであれば、そのアカウントに対して invite することもできます。

f:id:kawakubox:20181213123107p:plain
ユーザ管理画面

Shifter 運用の流れ

実際の Shifter での運用フローは以下のような感じになります。

1. Shifter へサインインして、 WordPress コンテナを起動する

f:id:kawakubox:20181213133919p:plain

30〜60秒くらいで起動します。

f:id:kawakubox:20181213134156p:plain

2. Dashboard から WordPress に飛ぶ

初回起動であれば、 WordPress の Install 画面に飛びます。 すでに WordPress の Install が済んでいる場合、管理画面に飛びます。

3. あとは普通に WordPress の運用と同じ

f:id:kawakubox:20181213134630p:plain

ライター、エディター用の WordPress アカウントを用意してあげましょう。

WordPress 自体のアカウントと、 Shifter のアカウントは別物なので、 WordPress のみ使えればいい場合は Shifter のアカウントは不要です。

Shifter のアカウントを Organization に招待するかどうかは、 WordPress コンテナの起動を含めてお任せしたいか、コンテナの起動/停止はこちらでハンドリングしたいかという観点で判断すればよいかと思います。

とはいえ、コンテナが起動するたびに WordPress 管理画面の URL は作り直されるので、Organization に招待してしまって Shifter のWebコンソールから WordPress に飛んでもらう運用を オススメ します。

また、WordPress コンテナ自体は、しばらくアクセスがないと自動で落ちるようになっているので、明示的な WordPress コンテナの停止はあまりすることはないと思います。

終わりに

さらっと Shifter というサービス、運用の流れなどを紹介しましたがいかがでしたでしょう?

WordPress の運用は、セキュリティ対策やそれに伴うバージョンアップなど、結構ヘイトが溜まる作業だと思います。

先にあげた BestPractice の構成をバチっと用意できたら満足度は高いかもしれませんが、死活監視やメンテナンスの要員確保といった面を鑑みると正直やりたくないです。

ソフトウェアエンジニアのリソースを WordPress のおもりに割かなくて済むので、まさに Shifter は救世主のような存在でした。

FREE プランでも規模の小さな個人メディアなどの要件は満たせそうなので、導入事例は増えてきそうですね。


明日は Tei1988 の「プラモデルの話をしようかな」になります。

お楽しみに。