自作ブログの構成更新
k8s を趣味でも使うか、、と思ってこのブログでも DigitalOcean の k8s を使うようにしてみたのだが、DigitalOcean への月々の支払いが $100/mo とかになってきて、さすがにたけーなと。円安だし。。
というわけで、もう少し安くすることを考えてみた。
DigitalOcean Apps というのがあったので、これを使うようにしてみる。これは AWS App Runner みたいなやつで、簡単に docker image をホスティングできるし、TLS 終端とかもいい感じにやってくれる。
- DigitalOcean Apps は、ghcr.io に対応していないのでまず docker hub に移行
- docker image の push は github actions でやっている
- https://github.com/tokuhirom/blog3/blob/main/.github/workflows/docker-publish.yml
- DigitalOcean Apps のインスタンスを作る
- 1つのポートしか EXPOSE できないのがちょっと不便。このブログアプリ、1つのイメージの中で、外向け用のポートとadmin用のポートを開放する、みたいな構成になってるので微妙。
- しょうがないので一旦、2個インスタンスを起動する。
- Secrets 的なのを環境変数で渡せるので、適当に接続情報などを渡していく
- CNAME 受け入れ可能ドメインを設定。blog.64p.org とか。
- Route53 側で、DigitalOcean Apps を CNAME として設定する
- 既存の k8s クラスタを終了させる
といった感じのオペレーションをしたらとりあえず完了。
これでとりあえず $40/mo ぐらいにはなった。本当は、admin サイトと web サイトを統合して一つの app に入れるようにしたらもう少しコストを圧縮可能だが、、アプリのコードをそこそこいじらないと行けないと思うので、一旦ここまで。