僕は一寸
2021/08/11

Cloudflare Pages を Zola で使ってみた感想

JAMStack の思想に基づいた静的サイトジェネレーターの勃興とと共に、そのようなサイトをホスティングするためのサービスが増えてきました。有名なところだと、GitHub PagesNetlifyVercelFirebase Hosting などは名前を聞いたことがある方も多いのではないかと思います。

そんな群雄割拠するホスティングサービス界に遅ればせながら参戦したのが Cloudflare Pages です。後発のサービスらしく無料枠の制限も競合と比べると緩く、注目を集めていました。当サイトを Zola で作り直すにあたって Vercel から Cloudflare Pages に移行してみたので、少し使ってみた感想を書いてみます。

Cloudflare Pages のトップページ

良いと感じた点

早い

日本を含む世界中に CDN サーバーが配置されているため、十分に早いです。Netlify の無料プランでは日本リージョンの CDN が利用できず、日本からアクセスするとかなり遅くなってしまいます。

参考: Netlifyは遅い / Yuuniworks Blog

IPv6 に対応している

小規模なサイトではあまり恩恵はないかもしれませんが、元来 CDN を生業としている企業というだけあって IPv6 、HTTP/3 、QUIC などの最新技術にもしっかり対応しています。Vercel や GitHub Pages では IPv6 に対応していません。

個人的に今からサイトを立ち上げるのに IPv4 のみというのは良くないと思っているので、Cloudflare Pages が IPv6 に対応しているというのは大きなメリットだと思います。と言いつつこの前まで Vercel を使っていましたが。

2021-10-17 追記: GitHub Pages は 2021-09-30 より IPv6 に対応しているようです (Enabling IPv6 Support for GitHub Pages | GitHub Changelog)

GitHub と連携できる

GitHub と連携して、GitHub 上のリポジトリをソースに利用し、プッシュに応じて自動でビルドすることが出来ます。GitHub Pages を利用する場合のように GitHub Actions の設定を自前で用意することなく、GUI 上での数クリックで完結するためとても手軽です。

良くないと感じた点

ビルドが遅い

明らかにビルドが遅いです。小規模なサイトということもあり、Netlify や Vercel ではせいぜい 1 分もあればビルドが終わりデプロイされていたのですが、Cloudflare Pages では 2 分以上、下手したら 3 分近くかかります。

ビルドに 2 分 50 秒かかっている

デプロイの詳細を確認してみると、ビルドそのものは数秒で完了しているのですが、ビルド環境の初期化に時間がかかっていることが分かりました。今まで使ったことのあるホスティングサービスではこんなに待たされたことはなかったので、ちょっと面食らいました。

エラーメッセージが優しくない

Cloudflare Pages では環境変数から Zola のバージョンを指定しないとビルド環境 Zola がインストールされずビルドに失敗する仕様になっています。しかし、その際のログには zola: command not found としか表示されず、環境変数の設定が必要である旨は表示されません。

環境変数の設定画面

ちゃんとドキュメントを読まないユーザーの問題ではありますが、バージョン指定がなければ最新バージョンを利用するとか、エラーメッセージに環境変数の設定が必要な旨を表示するなど、気を利かせてくれればとも思います。

まとめ

カタログスペックは優れていますが、ビルド環境の初期化の遅さなどの未成熟な点が見受けられます。1 度だけですが、デプロイ段階で原因不明のエラーが発生し失敗することもありました。クリティカルな問題には遭遇していませんが、まだ改善の余地があるサービスといった印象です。

Cloudflare のグローバルネットワークへのデプロイに失敗

しかし、IPv6 対応、Cloudflare の世界中に張り巡らされた CDN などは魅力的です。今回は利用していませんが、Cloudflare Workers との連携、Web Analytics なども他サービスにない強みになると思われます。本サイトではとりあえず、引き続き Cloudflare Pages を利用するつもりです。ビルド時間が改善されたら追記します。

← このサイトをリニューアルしました Arch Linux で Canon のインクジェットプリンターを使う →