ありがとう AWS
AWS ではパブリックな IPv4 的なものを使うとお金がかかるようになりました
https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-charge-public-ip-insights/
IPv4 は枯渇してきているので仕方ないですね。こうして IPv6 への移行が加速していけば世の中は実際に良くなりそうです。
一方で IPv4 の有料化は僕のお財布にとっては良くない話です。嫌だ
業務で使う分には AWS は非常に便利で強力で素晴らしいのですが、たかがポートフォリオごときに AWS を使うのは多分やりすぎです。
だいたい1ヶ月につき$7くらいかかっていたらしく、2ヶ月ちょっとで$14以上とられていました。
僕はあと100年くらい生きる予定なので、このままだと$8400くらい損してしまいます・・・・・・
移行するしかない
ところでこのブログは Cloudflare Pages によってホスティングされています。
というわけでこれを機に S3 でのホスティングから Cloudflare Pages でのホスティングに変えていきましょう!
移行する!
これを見るんだ!
https://github.com/SeeLog/portfolio/pull/14
あとこれがポートフォリオだ!
https://seelog.me
TTL の設定
僕はめんどくてやらなかったですが、事前に該当ドメイン(うちの場合は seelog.me)の TTL を短くしておくとよいでしょう。
移行時間を減らせそうです(たぶん)
ビルドの設定
久々に触る場合、適切にビルドができるか、まずはローカルで確かめましょう
gatsby 等で S3 に上げるやつを消す
1 "deploy": "gatsby-plugin-s3 deploy"
gatsby でポートフォリオはビルドされているのですが、上記のようなスクリプトがあったので消します。
またこれに関連するパッケージとプラグイン設定も消しましょう。
GitHub Actions のビルドワークフローを解除
ビルドとデプロイは Cloudflare Pages にやってもらいます。
よって、ワークフローから消しておきましょう。
テストとかは必要であれば残しておくとよいです。
環境変数の移行
これまでビルドは GitHub Actions で行っていたので、そこで管理されていた秘密情報とかを必要であれば移行しましょう。
ただ S3 へアクセスするための情報は必要なくなるはずなのでほとんど移行は必要ないはず?
Cloudflare Pages で設定
Pages の方で設定をします。
該当のリポジトリを選択し、ビルドするためのコマンド(e.g. npm run build
)は確認してあるはずなので、それを適当に設定すれば OK です。
設定し終わるとビルド & デプロイが始まります。
無事に完了したら、ドメインの向き先を変える前に発行された URL でおかしなところがないか確認しましょう。
DNS の設定を変えて向き先を変える
直接 DNS の設定をいじってもよいですが、Cloudflare でドメインを取っている場合は Cloudflare Pages の Custom domains から設定することでそのまま上書きできるので楽でよいです。
正しくページが表示できることを適当な方法で確認しましょう(ホスティング先が S3 じゃなくなっていることも適当に確認しましょう)
お片付け
不要になった AWS リソースを消しましょう。
VPC(というかサブネット) とかは設定によっては存在するだけでお金を食べている場合があるので気をつけよう。
感想
もともと Cloudflare でドメインを取っていたので簡単にできました。
よくできていますね
ちょっとした個人開発とかであれば Cloudflare のサービスは無料だったり、めっちゃ安かったりでお財布に優しくてとても良いと思います!