🤩

Core Web Vitals検証用:海外からcurl&Firefoxを叩く最安構成

に公開

なぜ海外からcurlやブラウザを叩くの?

Core Web Vitalsの検証で、NitroPackによるPreload Cache WarmupがCloudflareの世界中のエッジに対して行われているか?確認したくなりました(NitroPackの公開IPアドレスを見れば不可能であることは推測できます)。デバイスタイプ別にキャッシュされているか?という観点も。
日本にいながら海外からcurlやブラウザ表示を行う最安手段を探した結果、Vultrにたどり着きました。

メリット

• 月5ドルで海外からGUIブラウザ&curl検証環境が持てる
• Cloudflareの海外エッジキャッシュ検証を激安で出来る
• GUI環境構築はVNC+XFCEが軽量でおすすめ

事前のお断り

この記事ではセキュリティ設定などは一切省略し、最速でUbuntu構築してGUIでブラウザやcurlを使うことだけに特化しています。ご了承ください。

Atlantaで数回計測 USD 0.09ドル/mo!!!激安で海外Ubuntu+GUIブラウザ

  • Vultr
    • Shared CPU
    • ロケーション:Atlanta
    • プラン:vc2-1c-1gb
      • 1vCPU 、 1GB Memory 、 25GB SSD 、 1TB/mo(Bandwidth)
      • 価格:USD 5/月(USD 0.007/時間)

※さらに安い(USD 2.5/月)はIPv6のみ&Ubuntu選択不可。メモリ不足でブラウザが真っ白になり、透視能力が鍛えられました。最初から1GBプランをおすすめします。

Vultr USD 0.09 /mo !!
衝撃の0.09ドル!Lambdaか?笑

構築手順

Vultrアカウントを作る

  • アカウント登録+2段階認証を設定

Vultr Firewall Group 作成

事前にFirewall Group(AWSだとセキュリティグループです)をつくります。ポートは22だけ穴開けします。VNCの5901はSSHトンネル経由ですので穴開け不要です。

  1. Dashboard > Network > Firewall > Add Firewall Group
  2. Descriptionに任意の名前を入力
  3. Inbound IPv4 RulesでSSH(ポート22)を下記の赤枠部分に設定し、許可
    IP制限を忘れずに!

Vultr Firewall Group Inbound IPv4 Rules

SSH Key を作る

ssh-keygen -t ed25519 -C email@example.com

Vultr に SSH Key 登録

  1. Dashboard > Account > SSH Keys > + Add SSH Key
  2. 任意の名前をつけて、公開鍵の中身をコピペで貼り付けます。
  3. Add SSH Key を押下します。

Billing登録

仮想マシン購入からお金が必要になるので、このタイミングで登録します。

  1. Dashboard > Account > Make a Payment
  2. 支払い方法
    1. Credit Card
    2. Paypal
    3. Crypto
    4. Alipay
    5. Wire Transfer
    6. Gift Code

Vutr 仮想マシン購入(起動)

  1. Dashboard > Compute > + Deploy
  2. Choose Type : Shared CPU
  3. Location : Atlanta
  4. Plan : vc2-1c-1gb
  5. Automatic Backups を 外す。Disableを押下します。←0.5ドル安くなります(必要な方はEnabledのままにしてください)
  6. 右下のConfigureを押下し、Deploy a Server 画面に変わったことを確認。
  7. Operating System : Ubuntu 25.04×64
  8. Server Settings > SSH Keys:事前に登録したものを選ぶ
  9. Server Settings > Firewall Group:事前に登録したものを選ぶ
  10. Server Hostname and Label:任意の識別名
  11. Deploy(サーバ起動、課金開始)
  12. Cloud Compute の画面で仮想マシンを押下
  13. OverviewでUbuntuのIPとrootパスワードを確認

GUI環境構築(VNC+XFCE)

RealVNC Viewerインストール

UbuntuへSSH接続(キーペア認証)

~/.ssh/vultrも、ご自身のPC内などに配置した秘密鍵のパスに変えてください。

ssh -i ~/.ssh/vultr <user>@<UbuntuのIP>

※vultrのダッシュボード画面の中から使えるコンソールがあるのはとてもありがたいのですが、ちょっとコピペしにくいので、手元の端末のターミナルを利用するとテキストをコピペしやすくなります。

UbuntuでGUI環境のインストール

sudo apt -y install xfce4 tigervnc-standalone-server dbus-x11

※sudo apt updateとupgradeを事前に行うことを推奨します。

Ubuntuでvnc初期パスワード設定

vncpasswd

Would you like to enter a view-only password (y/n)?
は、y にするとリードオンリーとなります。

Ubuntuでxstartup(XFCE起動)

vi ~/.vnc/xstartup

#!/bin/sh
xrdb "$HOME/.Xresources"

chmod +x ~/.vnc/xstartup

UbuntuでVNC起動(Ubuntu内でローカルバインド)

vncserver :1 -localhost yes -geometry 1600x900 -depth 24

SSHトンネル作成

念のため、直上までのターミナルとは別のWindows PowerShell使いました。

ssh -L 5901:127.0.0.1:5901 <user>@<UbuntuのIP>

Real VNC Viewerから接続

  • RealVNCアカウントのSign inは不要。
  • File > New Connection
    • Address: localhost:5901
    • Name に任意の識別名
    • OKを押下
  • 作成されたConnectionをダブルクリック(VNCでGUI接続)

ブラウザ(firefox)インストール

元のターミナルで

sudo snap install firefox
sudo apt -y install fonts-noto-cjk

XFCE上のTerminalでFirefox起動

firefox &

XFCE上のTerminalでcurl

Cloudflare Cache Hit 状況確認

curl -v https://sample.com/ 2>&1 | grep cf-cache-status

Core Web Vitals対応で見えてきたこと

にしラボ トップページでは、Cloudflare NRTなどの日本国内で「合計ブロック時間(TBT) 0」が時々、出るようになってきました。自身でも嘘じゃないか?と疑います。
パフォーマンス対策は、簡単ではないことに変わりはないですが生成AIによりハードルは下がりました。PageSpeed Insightsでモバイルのパフォーマンス、スポット100は小規模Webサイトであれば比較的に速く到達できます。

しかし、ここで安定100を目指すと、凄まじい泥試合になります。施策を10個やって2個効果出たら御の字。残りは8個は、むしろ不安定やスコア低下を招いて逆効果!くらいのことも高精度状況であるため、発生します。

LCP(読み込み) 2.5秒以下、INP(応答性) 0.2秒以下、CLS(視覚安定) 0.1以下に到達後、PageSpeed Insightsでモバイルでスコア100パーフェクトを目指すと、恒常で安定100を叩き出すのはほぼ無理だと体感しました(スポット100はいけます)。

売上が大きいWebサイトなら

売上が大きいWEBサイトで重要になる視点として、心くじけずに安定100を目指すことで、結果、不安定時のスコアが底上げされ、不安定時の離脱対策になると考えられます。ビジネス成果の最大化のため、数字で成果が出たら、チーム内や上長などねぎらいあう文化と報酬でこたえることは非常に大事だと思います。

Preload Cache Warmupの精度漏れは目立つ

あらためて、Core Web vitals対策を行って実感したのですが、Preload Cache Warmupの精度漏れは非常に残念ですが目立ちます。泣けてきます。Warmup Requesterの暴走に細心の注意を払いながら精度を確保する大変な作業なのに…。

Preload Cache Warmupの精度確認は、vultr様のおかげで極めてお安く世界規模で検証できます。本日2025/10/7時点のvultr様が制覇している大陸は以下のようになっています。
Vultr Locations

Cloudflare Tiered Cacheを使っていれば、グローバルな全エッジPoPではなく、各大陸でいくつか観測拠点を決めて継続計測することで、安心できるレベルの安定度は見えてくると感じています(私は規模が小さいのでAtlantaだけやってます)。見落としを避けるためにも観測点をいくつか作っておくと、さらには観測点のデプロイまで自動化スクリプトを用意しておけば(暇を見てやれたらやります)、非常にコスパの良い精度確保戦略になるので超おすすめです。

AtlantaのUbuntuで計測

にしラボ https://4649-24.com PageSpeed Insights Mobile Score 100 in Atlanta
私はAtlantaに行ったこと無いですが、仮想マシンだけでも、海外旅行してくれたと喜んでおきます。

にしラボ https://4649-24.com PageSpeed Insights Mobile TBT 10ms in Atlanta
海外からINPも良好かつ「TBT 0」を狙って、難関デバイス別キャッシュキーの最適化に向けて無駄かもしれない挑戦をしています。

自身で細かくオリジンサーバ内のアプリケーションでパフォーマンスチューニングを施したとは言えども、CDN / Core Web Vitals最適化Saas の技術革新がここまでくると、Egressコスト回避の部分的な脱クラウド、高付加価値なSaasとクラウドのコスト最適化Mixは日本でも加速し、成果を増やし続ける中長期のトレンドであると改めて再確認しました。

【追記】Ubuntu上のFirefoxが文字化けする場合

日本語フォントパッケージのインストールを行ってください。
OS再起動無し、ブラウザ再起動だけでいけます。

sudo apt update
sudo apt install task-japanese task-japanese-desktop

Discussion