え、Notionで設定した画像消えるんだけどぉぉぉ!
ということがありました。
本番環境の画像が見れたり見れなかったり。。
このブログはGitlabのCI/CDでビルドしているのですが12時間に1回走るスケジューラを設定していて、それがおかしいのかなと思っていました。
1時間だ、それ以上は待てない
と、ハンターハンターでゴンが言っていたように、Notionで設定した画像はAWSのサーバーに置かれておりそれを参照しているのですが、この画像は1時間でアクセスできなくなるみたいです 😨
たしかにビルドしてから1時間後に見てみると大量の404エラーが。。
ローカルで開発しているときは見れていたので原因がわからなかったのですが、そりゃローカルでは毎回ビルドするし1時間以上放置することも少なかったので気づかなかったわけです。
対応を考えた
参考にしたサイトでも書かれていますが、自分は以下の対応を考えました。
- 1時間に1回 gatsby build を走らせる
- ビルドしたときに画像を公開ディレクトリに保存する
- SSRにする
- 画像を手作業で公開ディレクトリにいれとく
4は流石にしんどい、Notionで記事を書いている意味がなくなるので却下。
2か3でも良かったのですが、2はつくるのがめんどくさい。。
3もサーバー負荷を考えるとあんまりやりたくない。
結局30分に1回ビルドを走らせることにした
結局ビルドを走らせる1の対応でいくことにしました。
1時間に1回だと、たまにビルドに失敗すると1時間画像が見れないことになるので、それはそれでユーザー体験を損なうと思いました。
30分に1回であれば2回連続でビルドに失敗しない限りは常に画像が見れることになります。
ということでGitlabのCI/CDのスケジューラで30分に1回ジョブを実行するようにして対応しました。