KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

今日の午後には無理なく大胆にコスト削減できるようになります。サーバレス化しましょう

お金は好きですか?

コストを削減したいみなさん、ようこそ。
原価を低減したいみなさん、ようこそ。

サーバレスのビジネスでの優位性は多数ありますが、今回はその中でもコスト最適化の面から説明します。

やればやるだけ成果が見える: 努力が必ず報われる物語

レイテンシを1ms削るようなリリースができたとしましょう。(ネットワーク系のコストは同等と仮定します)

従来の開発では、CPUやメモリ利用量が若干減った程度では、コストは変わりませんでした。利用率が100%にならないようバッファを持たせており、多少削ってもサーバーの台数削減につながらないからです。あえてリソースを減らすとしても、利用率100%のリスクを取ることになります。

サーバレスコストの世界は違います。従量課金であり、使った分だけ課金されるということは、改善をリリースした瞬間から支払金額が削減されます。リクエスト数を減らせば、パフォーマンス改善をすれば、やればやるほど努力が必ず報われる、RPGゲームのレベル上げの世界です。即時効果が出て、翌日には請求書を見て結果がわかるのでコスト削減のモチベーションに繋がります。人間はわかりやすいものからやり、わかりにくいものは後回しにすることを考えればなおさらです。Cash is Kingの観点でもすぐキャッシュアウトを落とせるのは嬉しいですね。

細かく可視化しやすい: cost per transaction

誰が、何が、どれくらい利用しているか。分解して可視化することがコスト削減の第一歩です。

従来の開発では、どのAPIリソースにコストが掛かっているのか、その背後のどのDBアクセスにどれくらい費用がかかっているのか見えていないことがほとんどです。請求から推測するしかありません。また、複数のチームからAPIを呼び出しているときなら費用配賦が大雑把になりがちです。

サーバレスなら、APIリソースごとのリクエストあたりコストのように、より細かい粒度で可視化できます。サーバレスDBも明瞭会計です。突き詰めると、活動単位で原価を算出することも可能です。顧客セグメントや機能ごとのコストが見えるということです。

*アンチパターンであるLambda monolithだと従来の開発と同レベルです
*顧客の行動ごとの原価を計算できれば、料金体系としてより粒度の細かい従量課金を採用できるようになります

優先順位付けしやすい

APIごとに1リクエストあたりいくらかかっているのかわかれば、あるAPIのアクセス量を半減できたら、レイテンシを50ms削減したら、いくらコストが削減されるのかわかります。DBサービスを別のものに置き換えた場合にいくらコストが増減するのかも見えます。ユニットエコノミクスを採用していれば、ユニット単位での収益性がどれくらい改善するのか、利用者数の伸びから期末までに総額がどれくらい削減できるのかが計算できます。効果が見えればあとは開発難易度や他の機能開発との兼ね合いです。

コスト削減のための作業をしやすい

コスト削減対応の多くはインフラやアプリケーションの変更を伴います。システムアーキテクチャがコスト効率を決めるためです。特にある程度成熟した組織なら、小さな作業で大きなリターンが得られるものはやりつくしており、小さな作業で小さなリターンか、大きな作業で大きなリターンのどちらかになります。

従来の開発では、共通部分が多く大きな変更が必要となり、コスト削減のために大きなリスクを取る必要がありました。現場レベルではやりたがらないことが多いでしょう。
サーバレスでは個々の関数単位といったような段階的移行により変更を局所化でき、リリースが容易になります。リリース障害時のロールバックも単純です。API単位でのリソース最適化も可能です。

リスク・リターン比でいうと、リスクは下がり、成果を早く出せるようになる分リターンも高くなると見なせるでしょう。金利も上がるなか、時は金なりです

使わなければタダ: Scale to Zero

固定費として地味にお金がかかる部分が、ステージング環境、開発環境といった本番以外の環境です。節約するために本番と微妙に異なる環境にしてしまうと、本番で障害になるような不具合を見逃すリスクもあります。

従来の開発では、節約するにはスペックを下げたり、使っていない時間帯や休日にサービスをシャットダウンするスクリプトを準備したりといった手間がありました。むしろ手間を惜しんでそのままにするところがほとんどかもしれません。

サーバレスならば、使わなければ無料です。toBであれば土日はもちろん、祝日や大型連休、少人数チームで担当者休暇のときも何もしなくても勝手に安くなります。さらには開発環境を全エンジニア分準備してもほぼお金がかかりませんし、脆弱性診断用の環境や、PRごとのテスト環境、その他特殊な環境も作りたい放題です。

より変動費へ

オンプレミスからクラウドへの移行でサーバ費用は固定費から変動費になりました。一方、RDBのように、まだ固定費に近い部分も金額としては無視できません。
サーバレス化することでほぼ完全に変動費に移行することが可能です。償却や配賦を考えなくてすみシンプルになります。今日コスト削減すれば、今日からキャッシュアウトが減ります。蛇口をさっと締めましょう。

最後に

コスト削減は全社的な取り組みが必要ですが、現場レベルでは動機がないものです。サーバレス化を進めれば、やればやるほどすぐに効き、モチベーションが高まるので、コスト削減に繋がります。

文責:高木