タイトルで8割書いてるので、あとは補足だけ書く。
サイトはこちら。
背景
理由1: ビルド遅い問題
Jekyll のビルドが遅すぎてどうにかしたいお気持ち
— kheiakiyama (@kheiakiyama) 2021年5月20日
GitHub Actions を使ってビルドしているが、ビルドからデプロイまで、約8分前後の時間がかかっていた。
内容を精査すると、主に Jekyll でビルドするための bundle install
に時間が大半を占めていた。
また、 Gemfile が Dependabot に検知される要因になっていて、地味に嫌な感じだった。
移行先を検討していたところ、Hugo は使ったことがあり、 2021年時点でベストな静的サイトジェネレータの一つらしいのでそれにした。
Best static site generators of 2021 | TechRadar
理由2: Static Web Apps 使いたい
Azure Static Web Apps – App Service | Microsoft Azure
単に使いたかった。
静的コンテンツだけなら Azure CDN と大して変わらないが、 PullRequest でレビューできるのは便利。
Azure Static Web Apps における実稼働前環境での pull request の確認 | Microsoft Docs
そのうち Function 機能もちゃんと使ってあげたい。
移行方法
Jekyll から Hugo
頑張って載せ替えるだけ。
Jekyll to Hugo by kheiakiyama · Pull Request #2 · kheiakiyama/kheiakiyama.github.com · GitHub
個人のレジュメサイトなので、移行前に使っていたデザインテーマはあきらめて別のテーマに移行した。
Static Site 、ビルドエンジン変えるときにデザインを変えないってのは結構大変だと思う。企業サイトなら数年に一度やるであろうリニューアルのときに乗り換えるのが無難かな。
— kheiakiyama (@kheiakiyama) 2021年6月6日
Azure CDN から Static Web App
Static Web App への載せ替えは淡々とやるとして、移行は TXT レコードを使ったダウンタイムなしの移行を試したが動かなかったのであきらめて CNAME を切り替えてしまった。
Set up a custom domain in Azure Static Web Apps | Microsoft Docs
TXT record validation 、現在は Zone Apex しか対応してないのでは?というのが予測。
How to update sub-domain using TXT record without downtime?
— kheiakiyama (@kheiakiyama) 2021年6月6日
We cannot use TXT record with CNAME record on same sub-domain. And Static Web app could not detect TXT record on @ domain(I expected it will work, but it did not). https://t.co/xnuY0wJ7LA
移行後
約8分かかっていたビルド&デプロイが1分10秒前後で終わるようになった。
速いのは正義。