Hosting💸 コスト削減⚡ パフォーマンス・速度

テラーノベル

テラーノベル、GAE/GoからCloud Runへ移行。アイドル時にも発生していた課金をなくし、インスタンス費用が4分の1に

Google App Engine/Go(GAE/Go、F2インスタンス)Cloud Run(CPU 2・メモリ512MB)

小説プラットフォーム「テラーノベル」を運営するテラーノベルは、サービス開始当初から使ってきたGoogle App Engine/Go(GAE/Go)からCloud Runへの移行を行った。GAEは最後のリクエストを処理してから15分後にインスタンスが終了するまで課金が続くため、時間帯によってリクエスト数の変動が大きいサービスではアイドル状態にも費用が発生していた。リクエスト処理中の時間のみが課金対象になるCloud Runへ、まずteller.jpのWebアプリケーションのAPIリクエストから切り替えた。結果、1台あたりの処理能力は5QPSから40QPSに、APIレイテンシ(95%)は950msecから360msecに改善し、インスタンス費用は1日あたり平均4万円程度(2023年12月)から1万1000円程度(2024年3月)へと4分の1になった。

課題

GAEは最後のリクエストから15分間課金が続き、変動の大きいトラフィックでアイドル費用が発生

アプローチ

処理時間のみ課金のCloud Runへ、teller.jpのWeb向けAPIリクエストから段階的に切り替え

効果

インスタンス費用が4分の1に。処理能力は5→40QPS、95%レイテンシは950→360msec

背景

テラーノベルは、小説プラットフォーム「テラーノベル」を起点に、小説を原作とした漫画の制作やショートドラマの制作・配信まで手がけるエンタメカンパニーである。サービスのバックエンドはGoogle App Engine/Go(GAE/Go)で運用しており、インスタンスクラスはF2(CPU 1.2GHz、メモリ768MB)を使っていた。GAEの課金体系では、インスタンスは最後のリクエストを処理してから15分後に終了するまで課金され続ける。テラーノベルは時間帯によってリクエスト数の変動が大きく、トラフィックが落ちた時間帯にもアイドル状態のインスタンスに費用がかかる構造だった。これに対してCloud Runはリクエストを処理している時間のみが課金対象になるため、変動の大きいサービスほど無駄な費用を抑えやすい。移行前に正確なコスト試算ができていたわけではなかったが、この課金体系の違いからコスト削減が見込めると判断し、移行に踏み切った。

移行のプロセス

移行は一度に全体を切り替えるのではなく、影響範囲を絞って始められた。

  • 第一段階として、teller.jpのWebアプリケーションのAPIリクエストだけをCloud Runに切り替え
  • 実行環境はGAEのF2インスタンス(CPU 1.2GHz、メモリ768MB)から、Cloud Run(CPU 2、メモリ512MB)へ
  • インスタンス単価はGAEの$0.13/hourに対し、Cloud Runは$0.09/hour
  • Cloud Runのスピンアップ時間は500-700msec程度(GAE側は未測定)

記事ではCloud Runの同時実行数や最小インスタンス数といった具体的な設定値、全APIの切り替え完了時期については触れられていない。

移行前後の変化

指標BeforeAfter
実行環境GAE/Go F2(CPU 1.2GHz、メモリ768MB)Cloud Run(CPU 2、メモリ512MB)
インスタンス単価$0.13/hour$0.09/hour
QPS/インスタンス5 QPS40 QPS
APIレイテンシ(95%)950msec360msec
インスタンス費用(1日あたり平均)4万円程度(2023年12月)1万1000円程度(2024年3月)

結果

移行後、インスタンスあたりの処理能力と応答速度、費用のいずれも改善した。

  • 1インスタンスあたりの処理能力: 5QPS → 40QPS
  • APIレイテンシ(95%): 950msec → 360msec
  • インスタンス費用: 1日あたり平均4万円程度(2023年12月)→ 1日あたり平均1万1000円程度(2024年3月)

インスタンス費用は4分の1になった。ただし処理速度が向上した理由については、著者自身も「よくわかりません」と述べており、リクエストの特性やアーキテクチャによって結果は変わりうるとしている。

学び

サービス開始当初から使ってきたGAEやDatastoreを刷新するには大きなエンジニアリングコストがかかるが、テラーノベルではそれに値するだけのコスト削減と開発体験の向上を実現できたとし、スタートアップでも取り組む価値があると振り返っている。事前に精緻な試算がなくても、課金体系の違いを理解していれば削減の見込みは立てられるという実例でもある。

2024-05-27
他の事例も見る