当サイトで利用しているCloudflareをProプランにしてみました

当サイトで利用しているCloudflareをProプランにしてみました
Photo by Max Böhme / Unsplash

当サイトではDNS/CDNにCloudflareを利用してます。このドメインsakashita.pageでオンラインショップも立ち上げたこともありウェブページの読み込みや画像に関してお手軽に最適化したいなあと考えたのがきっかけです。

CloudflareのProプランは個人向けのプランだと思うのですが、調べてみても使っている人が見つからないんですよね。海外ではRedditなんかにそこそこいるようですが、日本で使っているユーザーさんのブログ記事なんかを見つけられませんでした。あるんでしょうが、参考にしようと検索しても引っ掛かりませんでした。せっかくなので、人柱といいますか、誰かの参考になればと思い、利用した記録を残しておきます。


環境について

当サイトはGhost(Pro)を利用しています。Ghost(Pro)はfastlyのCDNを利用していますし、そこにCloudflareのCDNも二重にかかっている状態です(たぶん)。そもそもGhostが速いこともあり、速度的な不満は特にありませんでした。画像の読み込みもテーマのほうで遅延読み込みをかけていますし、Ghostが自動的にオリジナル画像のほかにリサイズしたものを生成しています。

問題は今回作成したECショップです。こちらはShopifyのサービスであり、バックではWordPressが動いています。ShopifyはCloudflareと提携しているのでCDNは自動的に利用されている状況だと思われます。問題はキャッシュがされていないページの読み込み、つまり(Cloudflareのいうところの)オリジンへのアクセスがまあまあ遅いということです。ECショップでは画像が多く使われるうえに、カートなど管理でまあまあリソースが多いです。そもそもおっそいWordPressの上に成り立っているシステムなので仕方ないといえば仕方ないのですが、かといってテーマをちまちま最適化するほど暇じゃありません。CloudflareのProプランではHTTP/2の並列読み込みが利用可能になります。これによって見た目上の速度が向上するという算段です。HTTP/3という規格もありますが、Firefoxがデフォルトでは対応していないなどまだまだ発展途上という感じでした。

Proプランについて

Cloudflareにはfreeプランがあります。Proプランでは何が使えるのかというと、実はたいしたことは使えるようになりません。

Proプラン概要 | 機能と料金設定
CloudflareのProプランは、基本的なセキュリティ機能とパフォーマンス機能を必要とするWebサイト、ブログ、スタートアップ企業向けです。Proプランの機能と料金設定の詳細をご確認ください。

Proプランでできること(公式サイトから引用)

  1. 可逆圧縮と非可逆圧縮による画像最適化
    1. Polishを使って、メタデータを取り除き、可逆または非可逆の圧縮により画像から冗長バイトを削除して、画像サイズを縮小しましょう。
  2. モバイルへの画像配信を高速化
    1. Mirageを使って、Web訪問者のデバイスに応じて画像配信を加速しましょう。Mirageは、画面サイズと接続速度を自動検出し、画像配信を最適化します。
  3. 主要なサイトアセットを優先的に読み込み
    1. Enhanced HTTP/2 Prioritizationを使って、サイトリソース読み込みの優先順位を、Web訪問者のブラウザでなくお客様のサーバーで決定できるようにしましょう。
  4. CDNキャッシングの分析と改善
    1. 紛失、期限切れ、キャッシュ対象外といった理由でCloudflare CDNが使えないサイトアセットを把握しましょう。このデータを基に変更を行い、キャッシュされたリソースの数を増やしてサイト速度を上げましょう。
  5. WordPressプラグイン
    1. CDN、インテリジェントキャッシングなどに自動プラットフォーム最適化(APO)プラグインを使って、WordPressサイトを最適化しましょう。有効化すればすぐに使えます(最大300%の高速化を実現します)。
  6. Google検索のためのコンテンツプリフェッチ
    1. Largest Contentful Paint(LCP)など、有機的検索ランキング(SEO)の主要要因であるコアWebバイタルを改善しましょう。Automatic Signed Exchangeを使うと、Chromiumベースのブラウザを有効にして、Googleの検索結果ページでWebサイトをプリフェッチし、Webサイトを高速化することができます。

基本的には画像と通信の最適化を行うことでWebサイトが速く読み込めるようになり、おまけ程度にWordPressやGoogleの面白機能をつかえるよ~という感じです。

オプションについて

ネットワークの輻輳を避け、サイトの応答速度を爆速にするArgoと、大量のアクセスを複数のサーバーで裁くときに使うLoad Balancerをオプションにつけることができますが、大したサイトではありませんので、オプションはつけません。こういった特殊ユーザーのオプションは別に用意されているあたりがCloudflareのいいところだと思います。

さて、Proプランの魅力ですが、Freeプランで提供されるよりも高度なCDN機能が必要な方向けと分かります。

プランをアップグレードする

プランのアップグレードは超がつくほど簡単です。Proプランを購入するボタンをクリックするだけです。あっけないですね。一つ気を付けなければいけないのは、Cloudflareではドメインごとにプランが適用されています。Proプランにアップグレードしたいドメインを選択した状態でプランのアップグレードを行いましょう。どうでもいいドメインのプランをアップグレードしてしまわないようにしましょう。

機能をいろいろ変更していく

さて、Proプランで使えるようになった機能で私がいじった項目は以下の部分です。

  • SSL/TLS
    • エッジ証明書
      • Encrypted Client Hello(有効化)
  • セキュリティ
    • 設定(テンプレートから好きなようにルールを設定する)
  • Speed
    • 最適化
      • サイトの推奨事項(全有効化)

ほんとこれだけなので、拍子抜けするほど簡単です。今の時点ではあまりうまみが感られませんが、詳細なアナリティクスにアクセスできるようになります。わかりやすく地図にプロットされるので、眺めてふーんとなる程度には面白いです。

効果について

セキュリティの向上という効果のほうが大きな気もしますが、そもそもはページの読み込みを早くする目的でした。開発者ツールを開き、キャッシュを無効化した状態で読み込みをしてもまるでキャッシュから読み込まれたかのような速度でページが表示されますね。実際には通信が完全に終わったわけじゃないので、Lighthouseなどのインサイトツールを使えば体感しているほどの高速化の恩恵は感じませんね。現在のスコアが気になる人はこのページやトップページのLighthouseスコアを調べてください。

参考までに記事執筆時点でのサイトトップページのスコアおよびCNAMEレコードで飛ばしているECサイトのトップページのスコアをPro機能で利用可能になった機能を切り替えて比較をします。オンオフを切り替える機能は次にあげるものです。

  • Polish
  • Mirage
  • Enhanced HTTP/2 Prioritization

測定の仕方

Google Chromeのシークレットタブでwww.sakashita.pageを開き、開発者ツールにあるLighthouseから測定を行います。測定は以下のような環境設定で行いました。

Dev ToolsでLighthouseを開き、設定を済ませたところ
全機能オフ(このブログ)
全機能オン(このブログ)

遅延読み込みをすることによっておそらく通信が完全に終わるまでの時間が伸びてしまい、評価が下がってしまいましたね。というかたぶん誤差ですね。アイコン画像などがプログレッシブ画像になったのでしょうか。大きな画像のあるショップのほうでは1だけ評価が上がりましたね。ほんとうはCDN読み込むキャッシュがパージされてないので、Proプランに上がる前にLighthouseスコアを測定しておくべきだったのですが、やり忘れました。そのせいでLighthouseスコア的には意味のない検証になってしまっていますが、実際には体感できるほど速くなりました。ウェブページがちまちま部分ごとに読み込まれるのと、一瞬で全体が表示されるのでは快適度が大きく変わります。

じつはProプランを契約してからShopifyではCloudflareのプロキシ機能を利用できないことを知りました。プロキシをしないのであれば、CloudflareのDNS機能以外はすべてスルーです。意味がありません。

おわりに

ちょっとした便利機能が使えるCloudflareのProプランですが、皆さんの目にはどう見えましたか?へたくそな比較のせいで意味がないサービスに見えてしまっていたらすみません。使ってみた感想としては無茶苦茶いいなと思ったのですが、数値として表せなくなっているのが無念です。

人柱になれれば幸いです。

Read more

怪物の口に幸福が吸い込まれる

幸福の総量を最大化する。それが正しいと言われてきた。しかし1974年、ロバート・ノージックはたった一つの問いでその前提を破壊した。もしある存在が、他の全員よりも圧倒的に多くの快楽を得られるなら、功利主義は全員の取り分をその「怪物」に差し出すことを要求する。 あなたの幸福は計算の端数だった。切り捨てられた。 幸福を貪る口 1974年、ロバート・ノージックは『アナーキー・国家・ユートピア』のなかで一つの思考実験を置いた。 功利主義は、効用の怪物の可能性によって困惑させられる。怪物は、他の人々の犠牲から、その人々が失う以上に圧倒的に大きな効用の増加を得る。 仕組みは単純だ。功利主義の原則に従えば、社会全体の幸福を最大化する資源配分が「正しい」。ここに一人、あらゆる資源からとてつもない快楽を引き出す存在が現れたとする。りんご一個で他の百人分の快楽を得る。映画を一本見れば千人分の歓喜を感じる。 功利主義はこの怪物にすべてを差し出すことを要求する。他の全員が飢えても、怪物の快楽が総量を上回る限り、それが「最善」だと計算は告げる。 ノージックが示したかったのは、功利主義が論理的に正し

By Sakashita Yasunobu

綱を引く手が一本ずつ消えていく

あなたは集団のなかで、少しずつ消えている。 それは比喩ではない。測定可能な事実だ。19世紀末、フランスの農学者マクシミリアン・リンゲルマンは、人が集団で綱を引くとき、一人あたりの力が確実に減少することを発見した。人数が増えるほど、個人は薄まる。誰のせいでもなく、誰も怠けているわけではなく、ただ構造がそうさせる。 もしあなたがいま、何かのチームに属しているなら、あなたはすでに全力を出していない。そしてそのことに、おそらく気づいてもいない。 綱を引く手が教えたこと リンゲルマンの実験は素朴だった。 1880年代から1900年代初頭にかけて、彼は農業機械の効率を研究する過程で、人間が集団で水平方向に荷を押したり引いたりする際のパフォーマンスを測定した。その結果は1913年に報告されている。一人で綱を引くとき、その人間は持てる力をすべて発揮する。二人になると、一人あたりの出力は約93%に落ちる。三人で85%。八人になると、49%。半分以下だ。 この数字の意味を考えてみてほしい。八人で綱を引いているとき、あなたは一人のときの半分も力を出していない。しかもそのことに自覚がない。全員が

By Sakashita Yasunobu

嘘が真実を食い尽くす朝

「この文は嘘である」 この一文を前にして、あなたは立ち往生する。もし真だとすれば、文の内容に従って偽になる。もし偽だとすれば、「嘘である」という主張が間違っていることになり、真になる。真だと仮定しても偽だと仮定しても、反対の結論にたどり着く。出口がない。 これは言葉遊びではない。2300年以上にわたってこの問いに取り組んできた哲学者と論理学者たちは、いまだに合意に至っていない。解決策はいくつも提案されてきた。どれも、別の問題を抱えている。 あなたが自分自身について何かを語ろうとするとき、同じ構造がそこにある。 循環の入口 試しにやってみてほしい。「この文は嘘である」が真か偽か、判定する。 真だと仮定する。この文は「嘘である」と主張しているのだから、偽になる。仮定と矛盾する。 では偽だと仮定する。「嘘である」という主張が偽ということは、嘘ではない。つまり真になる。やはり仮定と矛盾する。 どちらに転んでも矛盾する。そしてこの矛盾は、推論のどこかでミスを犯したから生じたのではない。前提そのものに埋め込まれている。 エピメニデスの不発弾 よく混同されるが、古代ギリシアの

By Sakashita Yasunobu

何でも飾れる額縁だけが残った

1917年、マルセル・デュシャンは既製品の男性用小便器に「R. Mutt」と署名し、「泉(Fountain)」と名づけてニューヨーク独立芸術家協会の展覧会に出品した。拒否された。それだけの話だ。だが「それだけ」のはずの出来事が、それ以降のすべての芸術を汚染した。美しさも技巧も素材の選択も関係ない。署名ひとつ、提示の身振りひとつで、便器が「芸術」を名乗れる。そしてその瞬間から、「芸術とは何か」という問いは回答不能になった。回答不能のまま、100年以上が過ぎている。 目で見えないものが芸術を決める 1964年、アンディ・ウォーホルはスーパーマーケットに並ぶブリロの箱と見た目がまったく同じ「ブリロ・ボックス」をギャラリーに置いた。哲学者アーサー・ダントーは、この事態に根本的な問いを見出した。視覚的に区別できない二つの対象のうち、片方だけが芸術である。では芸術を芸術にしているのは何なのか。 ダントーの答えは「アートワールド」だった。芸術作品を芸術たらしめるのは知覚可能な性質ではなく、理論と批評と歴史が編み上げた解釈の共同体、その「理論的雰囲気」なのだと。あなたには何も見えていない。文字

By Sakashita Yasunobu