本セッションの目次
林雅也氏:林と申します。本日は「AWS月額利用料を$137,000→$87,000に削減して信頼性に投資した話」をします。
さっそくタイトルの訂正で恐縮ですが、このセッションの準備にあたっていろいろと数値を振り返っていると、最大値は$146,000だったので、いきなりですが$137,000から訂正します。
そして今日のキーワードから共有したいと思います。今日のキーワードは2つ、「ボトルネックから潰す」そして「『覚悟』を持つ」ということです。今日のセッションが終わったあとに「みなさんボトルネックから潰そう! 覚悟を持たないと進められないな」とコスト削減に対して思ってもらえるとうれしいです。
では今日の目次です。最初に「プロダクトの急成長」というところです。弊社SODAは「SNKRDUNK」(以下、スニダン)というプロダクトを開発しています。それが直近数年で急成長しつつ、それに伴いAWSのコストも急増したので、前提としてそのあたりをインプットしていただきます。そして2番目に「コスト削減もボトルネックから」と題して、弊社SODAがどのような方針でコスト削減を進めていったかをお話しします。
次に「いろいろなコスト削減」と題して、2番で説明した方針に沿ってどのようなコスト削減を行ってきたかを時系列順に説明し、最後4番目に、コスト削減した金額すべてというわけではもちろんないのですが、信頼性やセキュリティへの投資として新たな取り組みもいくつか行ったので、それを紹介して終わりたいと思います。
林氏の自己紹介
遅れましたが自己紹介をさせてください。林雅也と申します。株式会社SODAには2020年10月に入社をしたので、もうすぐ3年になるところです。入社当初はWebエンジニアとしてスニダンのプロダクト開発を進めていたのですが、現在はVPoEとEM、エンジニアリングマネージャーを兼任しています。エンジニアリングマネジメントをいい感じに進めるということをミッションとして担っています。
ちなみに、前職はサイバーエージェントという会社に新卒で入社して、そちらではバックエンドエンジニアとして働いていました。
VPoEとEMを兼任するのがそろそろ大変になってきたので「ちょっと誰かEMをやりませんか?」と。興味がある方はお声がけしてもらえるとうれしいです。
4つの観点から見たプロダクトの急成長
目次1つ目の「プロダクトの急成長」を見ていきたいと思います。弊社SODAは、スニダンというスニーカーやトレカなど、いくつかの商品カテゴリに特化したCtoCのフリマのサービスを開発・運営しています。
スニーカーやトレカのCtoCフリマがメインなのでそういう印象が大きいと思うんですが、今後はこれらに留まらないような事業展開をしていきたいと思っています。
例えばCtoCの取り扱いカテゴリを拡充したり、CtoCがメインですが、そこにBtoCの一次流通も混ざり合うようなかたちを実現したり。あとは日本の商品が海外で人気だったりするので、海外展開にも掛け算できていけるかなと考えています。
そんなスニダン。今話したのは今後の展望ですが、これまでのスニダンの急成長を1番で見ていきたいと思います。MAU、リクエスト数、デプロイ頻度、AWS月額利用料の4つの観点でどれぐらいの急成長具合なのかを見ていきたいと思います。
まずはMAUからですが、直近の2年半で100万人から500万人へと急成長しています。正直僕もここまで大きくなるとは思っていなかったのでビックリしています。
次に、それに伴うリクエスト数の増加ですが、MAU増加もあって、負荷がスパイクする時、つまりスニダンだと新しい人気のスニーカーが発売した時とかが該当するのですが、そういう時には1万から2万rpsぐらいまで負荷がスパイクするような環境になっています。
次にデプロイ頻度を見ていきます。組織が拡大したというのもあって、今はMonthly、1ヶ月あたりのデプロイメントは約100回ぐらい走っています。デプロイ頻度としてよく指標として使われるD/D/Dという指標では、0.3ぐらいの値が算出されるというような規模になっています。
そして最後、AWS月額利用料もサービスの拡大に伴って増加をしていて、2021年は$43,000ぐらいでした。今は削減されたのですが、ピーク時は$146,000までコストが増大していました。
パフォーマンスチューニングの鉄則
前提でどのような状況のプロダクトなのかを見てもらったあと、ここからは、どのように削減をしていったのかの前提となる方針を話したいと思います。
少し脱線しますが「パフォーマンスチューニングの鉄則は?」と問われると、僕はこの2つだと考えています。「ボトルネックから潰すこと」。そして「ボトルネックを放置してしまうと、効果はゼロになってしまうこと」だと思います。
ISUCON本として有名な『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』の書籍でも、このように言及されています。「1ヶ所でも大きなボトルネックが存在していると、システム全体の性能が大きく上がることは決してありません」。そしてこのようなことも言われています。「実際に存在しているボトルネックを解消せずに、他の事例において効果的だった手段だけをいくら積み重ねても効果が薄い」と。
これがコスト削減にも当てはまると思っています。コスト削減も同じく支配的なコストから減らしていくこと、そしてその支配的な部分を放置したらもう効果は薄くなってしまうと考えています。
(スライドの)右下に小さく注釈を入れているとおり、パフォーマンスの議論においては計算量のオーダーが違うことが多いので、それと比べてしまうとコスト削減においてゼロになることはないかなと思っているので、少し誇張していると思ってください。
どのように半年で$60,000の削減を行ったのか
そのような方針のもと、実際スニダンではどのようにコスト削減を進めていったかをまずはサマリーで見ていきます。結論としては、直近半年で$60,000の削減を行いました。ピーク時は2022年8月、ここで最大値である$146,000を迎えて、その後の半年間でコスト削減の取り組みを進めて、2023年1月に$87,000まで削減しました。
支配的なコストから削減するという方針を言っていたとおり、いくつかの削減の取り組みを行ったのですが、上から順番に時系列順に$40,000、$12,000、$2,700と、支配的なコストから減らしていく方針で進めました。
このようなプロダクトの急成長だったりコスト削減を進めた組織の体制みたいなものを軽く紹介したいと思います。エンジニア組織の拡大という意味で言うと、直近の2年半は最初の2名、CTOと僕の2人だけみたいなところから、現在は36名ぐらいのエンジニア組織に拡大しています。コスト削減期間であった2022年8月から2023年1月の間では11名増えるといったような組織拡大具合です。
開発組織の全体像
(スライドを示して)プロダクト開発組織、つまりデザイナーやPdMも含めた開発組織全体の全体像としてはこんな感じになっています。細かい説明は省きますが、プロダクト開発チームとしては各チームが独立してフルサイクルに開発を進められるといったような方針で組織デザインをしています。
今回のセッションをするにあたって、エンジニアリングマネジメントグループの中にあるSREチームに一緒に進めていただき、コスト削減も一緒に進めてもらいました。今日のセッションの資料や数値の振り返りなども一緒にやってもらったので、ここでお礼を述べたいと思います。
コスト削減には覚悟も必要
今日のキーワードの2つ目で上げていたものとして、もう1つ重要なものがあります。それが「覚悟を持つこと」だと思っています。スタートアップは資金調達もあったりPMFもあったりと、事業成長させることが一番重要だと思うので、時にはコストに目をつぶって試作の開発をしたり、インフラの構成を作ったりがあると思います。
ということで、わりと後回しになりがちなのがコスト削減かなと思っているので、それを進めるにはやはり覚悟が必要なんじゃないかなと思っています。
(次回に続く)