運用を預かっている写真ストレージアプリで、AWS の費用を51パーセント下げました。何をしたのかを書きます。
調べて最初に驚いたのは、いちばん大きな費目が「古いバージョンを使い続ける料金」だったことです。データベースの MySQL 5.7 がサポート期限を過ぎており、そのまま使うための延長料金が全体の4分の1近くを占めていました。機能は1つも増えません。上げないまま置いていただけで払っていたお金です。
では上げればいい、とはなりませんでした。8系に上げた途端に、アプリが動かなくなりました。
原因が重なっていました。まず groups という語が MySQL 8 で予約語になり、その名前のテーブルを読むクエリが構文エラーを返すようになりました。フレームワークの設定で名前を引用符で囲ませたところ、今度はその副作用で別の集計が壊れました。最後に、集計の規則が厳しくなったぶんを設定で戻そうとして、RDS では再起動のたびに値が元へ戻ることに気づき、パラメータグループ側を直しました。1つ直すと次が出てくる、という進み方です。
残りの作業は地味でした。夜も動いていた開発環境を止める。使われていないディスクを消す。置いたまま取り出していないファイルを安い保存先へ移す。新しい技術の話は1つもありません。
インフラの費用を下げる仕事は、新しいものを入れる仕事ではなく、要らないものを見つけて止める仕事でした。そして要らないものは、誰かが意図して置いたわけではなく、作ったときのまま誰も見にいかなかったものです。