Claude Code を使い始めた。いろいろやってみたことをメモ的に書いておく。
Nginx のログを集計して、日ごと、時間ごとのリクエストタイムと HTTP ステータスコードを集計するようにした。こんな感じ。
アクセスランキングとかリファラーランキングとかを集計するシェルスクリプトは以前自分で書いていて、それらのコードを参考にして Claude Code に書かせてみたらほんの 10 分くらいでいいのができあがるのでびっくりする。特にリクエストタイムの集計は中央値も出すようにしたので、自分でやってたら awk の学習で 2 ~ 3 日時間を使ったと思うので、こういうのをサクッとやれるのはマジですごい。
リクエストタイムに関して、 15 年くらい前のクックパッド社は Rails アプリでトップページのレスポンスが 200ms を切るのが目標だと言っていた。それ以来、自分のウェブサイトでもそのくらいのパフォーマンスを目指していたが、こうやったあらためて集計してみると全然 200ms を切れていないことがわかった。リクエストログのうち時間がかかっているものを抽出し、これまた Claude Code に読ませて対策を考えさせた。 Cache を適切に設定したり、コードを読んで N+1 クエリになってるところやメソッド呼び出しを変数にメモ化できていないところを見つけてきて直してもらった。おかげで平均レスポンスタイムが 1/2 ~ 1/3 になっている。
HTTP ステータスコードにもちゃんと確認したことがなかったが、集計してみると結構 500 エラーがあることがわかった。エラーログを Claude Code に与えるとサクッと直してくれた。以前は 1 日 40 ~ 50 件くらいあった 500 エラーがいまはほぼなくなった。
500 エラーの次に問題だったのが 404 エラーだ。存在しないパスへボットが絨毯爆撃のようなクローリングをしかけている。 Claude Code 先生によるとこういうアクセスは 444 ステータスコードを返して接続を切るのがサーバーに負荷をかけないということだったのでそうすることにした。 1 時間あたり 3 桁あることもあった 404 エラーが 1 桁になり、無駄に puma にリクエストが到達することがなくなった。
一昔前なら、こういうチューニングとかは専門のコンサルタント的な人を雇わないとできなかったかもしれない。そういうところに頼むと 50 万円とか 100 万円とか費用がかかっただろう。個人の趣味のブログでそういう費用を払うのは割に合わないけど、 Claude Code なら 100 ドルでそれをやってくれる。マジですごい世の中になってしまった。