先日からECSの勉強をしていた。僕がサーバサイドの仕事をしてたのはもう10年ほど前で、その当時からECSはあった?ように思うんだけど、うまく使いこなすことができずサーバのイメージを保存してそこからEC2立ち上げる感じでいつも作業してた。10年前とかそれくらいだとこんなもんではなかろうか。
その後はモバイルアプリのエンジニアとしての業務が本業になっていったこともあり、プライベートでDockerはなんとなく使ったことはあるものの、業務で使ったことはなかった。そんなわけでECSやK8など、それらがなんとなく何をしてくれるものぞ、というのは知ってるけど、自ら手を動かして使ったことはなかった。
が、ちょっと諸事情あり、ECSでの本番環境構築やその運用周りをもっと把握する必要が出てきたので、勉強しよう、となった。やってみたいことは簡単で、
Next.jsが動く環境をECS使ってどう作るんだろうか、
本番運用を考えるときに出てくる諸々はどんな感じになるんだろうか、
みたいなこと。その辺の本読んで、そこに載ってるサンプル通りに手を動かせばまあ大丈夫だろうと考えていた。最近AWSの本多いし、良い本もいっぱいありそうなことはわかってたから。そしてお勧めされてた本として以下を購入。評判通りとてもわかりやすくて助かった。
が、はじめてみるとどうも作業が進まない。本を読むこと自体はもちろんサクサク進んだんだけど、本に書いてある通りにサンプル動かすことはやっぱりできない。内容を理解しながら部分的に読みかえしながら手を動かすしかない。
"そんな難しいことやろうとしてないはずなんだけどなー"
と考えながら色々試行錯誤するもうまくいかず、
"Copilotに聞きながらやるか"
と思い立ち、Edgeを開いてそこでやりたいことを伝えつつ、
そうじゃない、こうしたい、
どうやるの?、
この理解で良いの?、
と話をしながら作業を進めていた。
そうこうしてるうちに、
"あれ、Dockerに対する理解が浅いのかもしれない"
と気づいた。実際にそっち方面での質問をCopilotに投げてた。そんなわけでDockerについての本を購入しそれをサクッと読み、作業を続けていたら、ECSなんとか使えそうな気がしてきた。
プライベートの空いた時間にゴニョゴニョしてるのもあって、まだ作業終わってないけど、LLMとのこういった壁打ちがあることによって、自分の学習スピードが飛躍的に上がってることを改めて認識した。以前もFlutterを業務で使うようになって、色々聞きながらアプリ作ったらすごいスピードで理解が深まったことを思い出した。昔なら近くにいる詳しい同僚に聞いてたことがLLMに質問すれば答えが返ってくるというのは本当に素晴らしい。
何がわからないかわかってない時、そのフェーズを抜けるためには、
- 本を読み漁る
- ググりまくる
- 検証しまくる
- 詳しい人に聞きまくる
みたいなことしかアプローチってないと思うんだけど、詳しい人が身近にいないケースってままある。が、LLMの登場によってやっぱこういう何がわからないかわかってない時の脱出速度が格段に上がったように思う。前からわかってたけど、ほんとすごい時代だと感じた出来事だった。終わり。