2021-01-05
今までこのブログのCI/CDとホスティングはNetlifyを使っていた。GitHubのリポジトリを連携するだけでビルドとデプロイとホスティングを担ってくれて、無料で使えるのでめちゃめちゃ便利なサービスなのだが、CDNのエッジサーバが日本になく、一番近いところがシンガポールで、TTFB(Time To First Byte)が少しかかるという課題があった。そのうち日本にも来るだろうと思って2年くらい待っていたのだが、一向にサポートされる気配がなさそうなので、年末年始に暇だったので、移行してみてどれくらい計測値が改善されるかを試してみた。
Testmysite.io というサービスを使ってTTFBを計測した。奇しくもNetlifyが運営しているサービスのようだ。
Website Speed Test Tool - Testmysite.io by Netlify
TTFBが 106ms
と遅くて困る程ではないが、スコアも 92/100
と改善の余地ありといった感じだ。CNAMEレコードで指定するとCDNをもっと活用できると書かれているが、サブドメインなしのNaked DomainではCNAMEレコードはDNS側の制約でサポートされていない。Netlifyの言い分としては、www.
付きのドメインをメインにすると良いとのことだが、 www.
なしの kikunantoka.com
というドメインで運用したかったので、Naked DomainにAレコードで指定する形を取っていた。
一応、NetlifyのCNAMEの指定先のURLでも計測してみた。
上記より改善はされているが、どのみち日本は少し遅いし、カスタムドメインでNaked Domainを使おうとするとこの数値は出ない。
NetlifyはCI/CDとホスティングを担ってくれているのでそれぞれ移行する必要がある。
Gatsby Cloudを使用することにした。無料で使えてCMSやデプロイ先の連携先が豊富でビルドとデプロイを担ってくれる。有料だが、Incremental Buildsを行うこともできる。Gatsby CloudはFirebase HostingやS3やFastlyやVercelなど、様々な連携先にデプロイができるのでホスティング先はその中から選ぶ。Netlifyにデプロイすることも可能。
Firebase Hostingを使用することにした。今のアクセス数だと無料枠に収まりそうで、Googleの強力なCDNを使えて、カスタムドメインの設定やSSL対応が楽そうだったので使ってみることにした。あと、最近Firebaseを触っていたので、使ってみたかったというのもある。
TTFBが 7ms
、スコアも 100/100
と改善された。どの国においても優秀な値を出しているのも注目だ。
/public
配下にコピーされるように設定を追加するxxxxxx.web.app
の xxxxxx
の部分を指定するwww.kikunantoka.com
のサブドメインを kikunantoka.com
にリダイレクトされるように設定を追加するhttps://
でアクセスしようとすると この接続ではプライバシーが保護されません
の警告が出るので注意Netlifyを使っていた時は /public/_redirects
というファイルを配置してリダイレクトの設定を行っていたが、Firebase Hostingでも /firebase.json
に設定を追加することでリダイレクトが可能だ。ちょうど、年明けの1月の記事を書く際にフォルダ構成を間違えて、リダイレクトの設定を書いたので、載せておく。
"headers": [
...
],
"redirects": [
{
"source": "/2021/01--update-google-analytics",
"destination": "/2021/01/01--update-google-analytics",
"type": 301
},
{
"source": "/2021/01--yatteiki-of-2021",
"destination": "/2021/01/01--yatteiki-of-2021",
"type": 301
}
]
ビルド + デプロイの時間が 5分
から 2分
と短くなったので良かった。ビルド時間が遅くてどうしようもなくなったらIncremental Buildsを活用することもできるので、良さそう。PR作成時にプレビューをできたり(パスワードをかけれる)、Lighthouseのスコアを表示してくれる機能もあって便利だ。CMSの連携が豊富なのも良い。Netlfyにもデプロイできるので、GatsbyJSで作っているサイトのCI/CDはGatsby Cloudに寄せてしまっても良いとは思う。
TTFBが改善されたので、さすがGoogleさんとなった。簡単にホスティングやSSL対応ができるので、良いサービスだと思った。上述した通り、リダイレクトもできるので、機能として不足はなさそう。
今の所、 Gatsby Cloud + Firebase Hosting
の構成で無料枠に収まりそうなので、しばらくこの構成でいってみようと思う。