これは 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
ググると以下のような構成パターンが公式で見つかりました。
ちょっと盛り盛りな気がします。 極力簡素な構成で見積もってみました。
構成要素
- Route53
- ALB
- EC2インスタンス x 2
- RDS(Aurora)
- CloudFront
月間トラフィック量を考慮していない数字ですが、それでも 140$/month くらいは固定でかかってしまいそうです。
結構かかる。。。
そんな折に id:pataiji から Shifter を紹介されます。
Shifter とは
一言で言うと Serverless な環境で運用される WordPress ホスティングサービスでしょうか。
中の人のスライドがあるので、そちらを見ていただくのが間違いないと思います。
Shifter Features (https://www.getshifter.io/features/)
提供機能群を見る限りほぼ要件は満たせています
記事は静的コンテンツにアーカイブされて 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 アカウントまわり
実際に使ってみてアカウント周りは以下のような感じです。
- Root アカウントとなる owner ユーザーを作成
- Organization を作成
- 必要な member ユーザーを Organization に招待
Owner ユーザは、新たにサイトを作ったり、 カスタムドメイン周りの設定したり、プラン設定や課金まわりのなどに利用します。
Member ユーザは、WordPress コンテナの起動/停止をすることができます。
Member は新しく作っても良いですし、すでに Shifter アカウントを持っているのであれば、そのアカウントに対して invite することもできます。
Shifter 運用の流れ
実際の Shifter での運用フローは以下のような感じになります。
1. Shifter へサインインして、 WordPress コンテナを起動する
30〜60秒くらいで起動します。
2. Dashboard から WordPress に飛ぶ
初回起動であれば、 WordPress の Install 画面に飛びます。 すでに WordPress の Install が済んでいる場合、管理画面に飛びます。
3. あとは普通に WordPress の運用と同じ
ライター、エディター用の WordPress アカウントを用意してあげましょう。
WordPress 自体のアカウントと、 Shifter のアカウントは別物なので、 WordPress のみ使えればいい場合は Shifter のアカウントは不要です。
Shifter のアカウントを Organization に招待するかどうかは、 WordPress コンテナの起動を含めてお任せしたいか、コンテナの起動/停止はこちらでハンドリングしたいかという観点で判断すればよいかと思います。
とはいえ、コンテナが起動するたびに WordPress 管理画面の URL は作り直されるので、Organization に招待してしまって Shifter のWebコンソールから WordPress に飛んでもらう運用を オススメ します。
また、WordPress コンテナ自体は、しばらくアクセスがないと自動で落ちるようになっているので、明示的な WordPress コンテナの停止はあまりすることはないと思います。
終わりに
さらっと Shifter というサービス、運用の流れなどを紹介しましたがいかがでしたでしょう?
WordPress の運用は、セキュリティ対策やそれに伴うバージョンアップなど、結構ヘイトが溜まる作業だと思います。
先にあげた BestPractice の構成をバチっと用意できたら満足度は高いかもしれませんが、死活監視やメンテナンスの要員確保といった面を鑑みると正直やりたくないです。
ソフトウェアエンジニアのリソースを WordPress のおもりに割かなくて済むので、まさに Shifter は救世主のような存在でした。
FREE プランでも規模の小さな個人メディアなどの要件は満たせそうなので、導入事例は増えてきそうですね。
明日は Tei1988 の「プラモデルの話をしようかな」になります。
お楽しみに。