Ruby on Railsアプリケーションのデータベースを、RDSからPlanetScaleに移行することでコストを削減しました。
Amazon EC2とAmazon RDSを利用してWebサービスを運営していましたが、本番環境とステージング環境を常時起動する構成だったため、費用がそれなりにかかっていました。
サーバーレスRDBであるPlanetScaleを使うことで、データベースの本番環境のコストを削減しつつ、検証環境のコストを無料にすることを目指しました。
また、移行前のMySQLのバージョンは5.7であり、8.0へのアップデートも同時に行う計画としました。
utf8mb4_0900_ai_ci
)だったり、外部キー制約が使えなかったり等の制限について詳細を調査しました。当時の為替レートでの計算で、約61.9%の費用削減に成功しました。
旧アーキテクチャーではRDSのリザーブドインスタンスを利用してコスト削減した上でこの価格でした。
月額 | 削減率 | |
---|---|---|
旧アーキテクチャー | ¥19,388 | - |
新アーキテクチャー | ¥7,388 | 61.9% |
PlanetScaleは高パフォーマンスなサーバーレスRDBで、コネクションプーリング機能も内包されているのでサーバーレス(Lambda, Next.js等)と組み合わせて使うパターンも選びやすいです。管理画面上でクエリを分析できたり、インデックスをつけるべきカラムを教えてくれたりという機能もあり、RDSのメトリクスよりも便利に運用できる印象です。
照合順序が選べない点や、データベースをプライベートなネットワークに配置できない点が懸念となりますが、要件的に問題ない場合は積極的に活用したいです。