最近の開発環境とモヤモヤ
最近は Vercel や Neon を使ってアプリケーションを開発している。 概ね楽だし、Sentry などの監視ツールを入れれば大きな問題もない。
ただ、開発を進める中で「もう少しインフラを学びたい」という気持ちが強くなってきた。
TerraformでVercelを管理できるとはいえ、あれは「設定をコード化する」感じで、AWS のように複数サービスを組み合わせて構築する感覚とは少し違う。 そのため、以前から気になっていた k8s や ArgoCD を本格的に触ってみたいと思うようになった。
ローカルで試したり、EKSにデプロイしてみたり、自分の手で構築して理解を深めていきたい。
理想:自分用のPaaSを作る
将来的には、自分だけのインフラを構築して、EKS上で動くアプリケーションをArgoCDリポジトリで一元管理できるようにしたい。
GitHubリポジトリの作成やデプロイ設定を自動化できれば、「自分専用の PaaS」のような仕組みが作れる。そう考えるとワクワクする。
さらに、Self-hostできるサービス(例:Google Photo 代替の immich など)を動かせば、既存のOSSを使いつつ構成を理解できるし、自分のクラウド上で便利なツールを運用することもできる。監視が必要になったら追加していけばいい。
少しずつ「自分の街」を育てていくみたいな感覚があって楽しい気がする。
現実とのギャップ:焦りと時間の制約
とはいえ、現実には育児や仕事との両立で時間が限られている。k8sを自在に扱う人を見ると圧倒されてしまうし、自分には到底追いつけない気がしてしまう。
30歳を過ぎてくると「結果を出さなきゃ」という焦りもある。地道に積み上げるしかないと分かっていても、時間が足りないのが現実。
それでも、勉強している間に世界がどんどん変わっていく。昨日まで使っていた技術が古くなるのは怖いけど、それでも波に乗れるように前に進むしかない。
泥臭く学ぶしかない
結局のところ、泥臭く学ぶしかないと思う。
最初から綺麗に自動化された仕組みを作るのではなく、「何が辛くて」「何を便利にしたいのか」を体感しながら学んでいくのが一番。
ローカルでk8sを動かして詰まったら調べ、少しずつ前に進む。
完璧を目指さず、小さく触って理解を積み上げる。慣れてきたらHelmやArgoCDで管理してみればいい。
フロントエンドとインフラのバランス
ずっとフロントエンドやテスト・CI/CDの整備だけを考えていても、「いざという時にスケールできない」と感じている。厳密にはお金を払えばスケールできるけど、お金を払って解決しかできないってのもなんかなという感じ。無限に金があればいいけど、そうもいかないし。
インフラを理解することで、より広い視野でシステム設計ができるようになると思う。Next.jsやMonorepoも引き続き極めたいけど、それに加えて自分で構築・運用できる力をつけたい。
SaaSに頼るのは楽だが、使い方に縛られたりコストがかかったりもする。
一方で、自分で構築してみると「なぜ便利なのか」「どこが自動化されているのか」が実感できる。
それが理解につながり、応用力も上がると思う。
「支えることで、世界を形づくる」
自分の中での将来像として
「支えることで、世界を形づくる」
ってのができたら幸せかなー。
- 支える:自分がいなくても回る仕組みを作る
 - 世界を形づくる:自分の思想で、街や国のような構造をデザインする
 
自分の設計した世界の中で、人が動き、満たされ、感謝してくれるみたいな状態になると嬉しい。
これから
とりあえず、playgroundリポジトリでローカルのk8sを触ってみる。慣れてきたらHelmやArgoCDで管理して、Self-hostサービスを増やしてみたい。
詰まったら調べ、焦らず少しずつ前へ。