開発

StrapiをデプロイしたいならEC2ではなくHerokuがおすすめだって話

対象

  • Strapiのデプロイ先に迷っているフロントエンジニア
  • AWSを触れても深い知識や経験がない方

Strapiを触ろうと思ったきっかけ

近年流行りのヘッドレスCMSを検討している中、Contentfulは1スペースしか作れず文章の書き心地が悪いので他のサービスを利用したいと思いました。そこで色々と調べていたところ、簡単に環境構築ができるStrapiが目に留まり、とりあえずターミナルでnpx create-strapi-app ...と入力。すると、良い感じの管理画面が現れてまるでWordPressのように使える(Sttrapiの方がシンプルで使いやすい!)ことに惹かれました。しかもCRUD機能も備えていて、今後プラグインで拡張性も高まっていきそうです。

Strapiを開発環境でクイックスタートさせると一瞬でCMS環境を構築することができます。しかも、記事の作成やAPIの取得も容易なので、めちゃくちゃ便利!と思いました。

Strapiの罠

しかし、いざデプロイしようと思ったらできませんでした。(私の場合、EC2へのデプロイを試みました。)これはStrapiの罠というか、Strapiが普及してこない一番の要因な気がする。

  • ubuntuしか対応してない(Amazon LinuxでAMIを構築してしまった(やりようはあるのだろうけど))
  • S3やRDSの構築も必要(純粋に面倒くさい)
  • node.jsサーバーの構築とかわけわからん
  • マニュアル通りやってるつもりなのに上手く表示できない(???)

バックエンドのエンジニアであれば何でも大丈夫だと思いますが、インフラ側に触る機会の少ないよわよわフロントエンジニアからすると、どこに上手くいかない原因があるのか掴めず、5時間経ってもデプロイできる見通しができませんでした。(Node.jsサーバー(pm2を使用)は起動しているのに1337ポートでアクセスしてもなんも起こらんかった(泣))

諦めかけたその時、Herokuを使ってみようと思う

もうContentfulで良いやと思ったのですが、Strapiなら手軽にCRUDを構築できる...その魅力に惹かれてもう一度だけ試してみようと決めました。

Strapiのマニュアル通りに進めると、Herokuでなら5分でデプロイが完了。(Azure等でもデプロイはできますが、フロントエンジニアなのでインフラ知識にリソースを割きたくなく、Herokuでダメなら諦めようと考えていました。)
参考:公式デプロイマニュアル for Heroku

結論、Strapiをデプロイするなら、Herokuがおすすめです。

Herokuにデプロイするメリット・デメリット

Herokuを使うメリデメは、知っているかもしれませんが、一応確認しておきます。

メリット

  • 手軽に使える
  • 無料枠でスモールスタートできる
  • 定額なので費用が見えやすい
  • 膨大なアクセスには耐えられなそう
  • 環境構築が楽

デメリット

  • 定額課金でガッツリ使う場合は割高になりがち
  • 自由度が低い
  • 不具合が怖い(ここが一番のデメリット)
  • スケールしてきたら別のサービスに移行する手間が生じる

ただ、今回の利用目的は、ブログ記事を管理すること、できたらログイン機能も作ってみようかと考える程度の個人利用目的でした。であれば、Herokuで十分。むしろHerokuが良い。

多分Herokuで十分

Strapiを利用しようと思う理由は何か。それはコンテンツ管理であるはずです。膨大な量のコンテンツを管理・運用する会社はStrapiを使う場合を考えてみると、それだけコンテンツを運用する予算があればバックエンドに詳しいエンジニアを雇えるはずですし、そうした詳しい人間がいなければStrapiに興味を持つことはないでしょう。

となった時に、Strapiのデプロイに困っているのは、個人利用目的や小規模(月100万PV以下)のメディア運用を考えている人だと思われます。

また、リッチコンテンツを多用するなら画像圧縮等を自動ででき、複数人でも運用に困らないWordPressが主力の選択肢となるはずで、Strapiは除外されると考えます。

よって、Strrapiを使うならHerokuで良いと思います。(無料プランのRAMは512MBであるので、文章メインのコンテンツであれば運用に困ることはないはず)

基本無料プランで、必要に応じて課金していきましょう。課金が必要になったとしても、インフラ構築や管理の費用を考えれば、コスパは十分ではないでしょうか。