🐘

最近話題のサーバーレスWordPressホスティングサービス「Shifter」を試してみた

2020/02/04に公開

こんにちは、たつきちです。

最近、人気上昇中の サーバーレス・スタティックWordPressホスティングサービスShifter」を試してみたので、メリット・デメリットなどをまとめます。

Shifterとは?

公式サイト のトップページには、

Serverless Static WordPress Hosting
Shifterは世界で一番使われているCMS「WordPress」を、超高速・安全・メンテフリーにするオンラインサービスです。サーバーレスによる全く新しいアプローチで、WordPressユーザーから伝統的なホスティングにつきものの、遅延・停止などソフトウェアやサーバー保守にかかる負担・セキュリティの不安を排除します。

と書かれています。

具体的には、以下のような機能を提供してくれるサービスです。

  • Shifterの管理画面上で「サイトを作る」という操作をすれば、それだけでWordPressサイトが作られてURLが発行される
  • ただし、この時点ではまだURLにアクセスしてもサイトは表示されない
  • さらに「アーティファクトを作る」(=静的ファイルをビルドする)という操作をすれば、WordPressサイトを高速かつ安全な静的サイトとして公開することができる

より具体的な使い方の手順を追いながら、詳しく説明していきます。

ShifterでWordPressサイトを作る具体的な手順(前半)

実際にサイトを作るまでの具体的な手順は以下のとおりです。

  1. Shifterにサインアップ(アカウント作成)
  2. Create New ボタンをクリック
  3. 料金プランを選択 (無料プランもあります)
    • ちなみに料金プランごとの機能の違いは このように なっています。無料プランだと独自ドメインが使えないので、本格的に利用するなら月額$16の Tier 1 からという感じになるでしょうか
  4. サイト名を入力
  5. しばらく待つ

これで、以下のようにWordPressサイトが1つ出来上がります🙌

画面右上の Dashboard をクリックすると、以下のようにWordPressサイトの管理画面にアクセスできます。(WordPressユーザーを自分で作成してパスワードを管理する必要もありません)

なお、サイト作成直後はキャプチャ画像のとおり英語表示になっていますが、 Settings > Site Language日本語 を選択すれば日本語表示に変更できます。

また、同じくShifter管理画面右上にあった Visit Site ボタンをクリックすると、以下のようにWordPressサイト自体も表示されます。

やったー完成!めでたしめでたし。と思いきや、実はまだ完了ではありません。

試しに、Shifter管理画面に表示されていたURLにアクセスしてみると、

以下のようなページが表示されます。

実は、先ほど Visit Site ボタンで表示したWordPressサイトのURLは、以下のようなものになっていました。

https://a75d05d7-9e27-4860-9cf0-a4dbfd009ac7.app.getshifter.io:31683/

一方、 No site is deployed. になってしまったURLは

https://gracious-ptolemy4442.on.getshifter.io

です。

実は、公開用のURLは下のもので、上のものは あくまで一時的にWordPressが起動しているだけの仮想的な環境のURL なのです。

ShifterでWordPressサイトを作る具体的な手順(後半)

どういうことか説明しましょう。

実は、ShifterはWordPressサイトを直接ホストしてくれるサービスではなく、 WordPressによって出力される全ページを一旦静的ファイルとして保存(ビルド)しておき、それらの静的ファイル群を「静的サイトとして」ホストしてくれるサービス なんです。

これが、"Serverless Static WordPress Hosting" という言葉の意味です。

なので、ここまでの手順で「サイト」を作っただけではまだ足りず、そのサイトの 「公開用の静的ファイル群」 を生成する作業が必要になります。

この、「公開用の静的ファイル群」のことを、Shifterでは 「Artifact(アーティファクト)」 といいます。

Artifactは以下の手順で生成します。

下記のように、「Artifact名」を入力して、 Generate ボタンをクリックします。

ちなみに、後から特定のArtifactを指定してロールバックすることもできるので、「どんな変更をしたバージョンなのか」が分かるような名前をつけるのがよいです。

Generate をクリックしてから2〜3分程度待つと、以下のようにArtifactが作成されます。デフォルトで Auto Deploy がONになっているので、Artifactを生成すると自動でそれが公開されます。

この状態で View Site ボタンをクリックして公開用URLにアクセスしてみると、

このように、WordPressサイトと同様の内容が表示されます。

Shifterのメリット

ちょっと変わった仕組みに思えるかもしれませんが、このように動的なWebサイトのレンダリング後のページを一旦ビルドして静的サイトとしてホストするという仕組みは、ここ数年流行の兆しを見せている JAMstack に近いですね。

このような仕組みになっていることで、普通にWordPressサイトを動的にホストするのと比べて以下のようなメリットあります。

  • 通常はページアクセスの度にWordPressがページを動的に生成するけど、それが不要になって静的ファイルを読み込むだけになるので、 サイトの表示速度が早くなる
  • WordPress自体は普段は起動しておらず、Shifter管理画面からWordPress管理画面にアクセスしたときに一時的に起動してすぐに終了するので、 セキュリティリスクが極めて少ない

また、変化球とは言えWordPress環境を無料でホストしてくれるサービスはShifter以外におそらくないので、その点も魅力だと思います。

あとは、実は運営会社が 日本の会社 なのでいざとなったら日本語でサポートしてもらえそう?なのもメリットかもしれません。

実際、公式がOSSとして開発しているShifterの機能にGitHub上で質問したら、日本語で丁寧に対応してくださいました

Shifterのデメリット

一方で、この仕組みになっていることによるデメリットもあります。

  • WordPress管理画面からサイトの内容を変更する度に、毎回Artifactのビルドが必要
  • ページ数が多くなるとビルドにかかる時間はかなり長くなりそう(記事なしのサイトでもArtifactのビルドに数分かかる)
  • 管理画面を使いたい度に毎回WordPressを起動する必要がある
  • テーマやプラグインによっては、Artifact化したことによって期待どおりに動作しなくなる可能性がある

最後の2つについて少し詳しく説明します。

管理画面を使いたい度に毎回WordPressを起動する必要がある

セキュリティリスクが減るというメリットの裏返しで、普段はWordPress自体は起動していない状態なので、管理画面を使いたい場合は毎回WordPressを起動する必要があります。(30秒〜1分ぐらい待ち時間が発生します)

テーマやプラグインによっては、Artifact化したことによって期待どおりに動作しなくなる可能性がある

WordPressによって動的に生成される全ページを静的ファイルとして出力するというのがコンセプトですが、実際にはユーザーからの入力に応じて動的に生成しないと表示できないようなページも当然あるはずです。

例えば WordPressの検索機能 は、検索クエリに応じて結果を表示するわけですから、 無限にある検索クエリすべてに対してあらかじめ静的ファイルを作っておくなんていうことはできません よね。

実際に、公開したサイト上でWordPressの検索機能は動作しません。

ただ、検索機能に関しては、Shifter公式が 静的サイトを検索するためのプラグインを開発してくれている ので、これを使えば解決しそうです。

とはいえ、このように静的化してしまうことで本来のWordPressの機能が使えなくなってしまうケースは存在するわけなので、同じ理屈で、テーマやプラグインによっては期待どおりに動作しないケースがありそうです。

まとめ

メリット

  • 通常のWordPressサイトよりも高速化できる
  • 普段はWordPress自体は起動していないので、セキュリティリスクが低い
  • 無料から使える
  • 運営が日本企業

デメリット

  • サイトを変更する度にそれなりに時間のかかるビルドが必要
  • WordPress管理画面を使いたい度にWordPressを起動する必要があって面倒
  • テーマやプラグインによっては正常に動作しない可能性がある

Shifterが向いているサイト

  • 更新頻度の少ないコーポレートサイト
  • キャンペーン・イベントサイト・ランディングページ
  • 中規模までのブログサイト

https://www.getshifter.io/ja/

参考記事

GitHubで編集を提案

Discussion