必要なのは覚悟! 急成長サービスでのコスト削減事例
続いて、株式会社SODA 林 雅也氏による「節約は技術!削減は芸術!何より必要なものは覚悟!」の内容を紹介する。
株式会社SODAが運営するフリマアプリ「SNKRDUNK」(スニーカーダンク)は、スニーカーやトレーディングカードを中心に取り扱うCtoC取引プラットフォームで、近年急成長を続けている。ここ3年で、MAUは100万人から500万人に増加した。ユーザーからのAPIリクエスト数は、ピーク時には毎秒1万〜2万リクエストに達する。またデプロイ頻度も、月間60〜90回、日別では3〜4.5回に達するなど、攻めの機能開発を続けている。その結果AWSの月額利用料は、2020年2月には43,000ドルだったのが、2022年8月には146,000ドルに達するなど、大幅なコスト増加に直面した。
ここで林氏は「一箇所でも大きなボトルネックが存在していると、システム全体の性能が大きく上がることは決してありません」(『達人が教えるWebパフォーマンスチューニング』技術評論社刊)という言葉を引用しながら、コスト削減についても同じことが言えると強調した。そこで、まずは削減可能なポイントと予想金額を徹底的に洗い出し、最も削減効果が大きいものから取り組んだ。もちろん、着手しやすい削減施策も重要だ。しかし先程の丹氏の「Elephant in the room」という言葉を引用しながら、支配的なコストから逃げずに向き合うことが重要だと、林氏は言う。
具体的な取り組みの中で最も削減効果が大きかったのは、VPCエンドポイントの導入だ。 従来の構成では、Amazon ECSから、Amazon S3上にあるオブジェクトにアクセスしたり、Amazon ECR上のコンテナイメージをpullしたりする際に、NAT Gatewayを経由しており、通信料が嵩んでいた。特に、デプロイをすると、数十個のECSタスクがローリングアップデートされるので、デプロイの度に数百MBもあるコンテナイメージのPullが大量に行われていた。
そこで、ECSからS3・ECRへのリクエストを、VPCエンドポイント経由にしてPrivate接続に変更することで、通信料を月額40,000ドル削減した。さらにECSタスクの中に、ECR PublicからPullするサイドカーコンテナが存在しており、この通信もNAT Gatewayを経由していた。
そこで、ECR pull through cacheを導入してPrivateなECRにコンテナイメージをキャッシュすることで、さらに月額12,000ドルを削減することができた。
この他AWS WAFのログ配信先をAmazon CloudWatch LogsからS3に変更するなど、削減施策を積み重ね、最終的には2023年1月時点で月額60,000ドルの削減に成功した。
SNKRDUNKのような急成長を続けるサービスで、コスト削減施策をやりきるには「覚悟」が必要だったと、林氏は言う。林氏も、「早く削減するほど成果が大きい」という丹氏のメッセージに同意する。しかし事業成長が最優先のフェーズでは、コストに目をつぶってでも、新規機能の開発を優先しがちだ。特に、スタートアップが資金調達を得る際は、投資家に未来を見せる、つまりプロダクトが成長する姿を見せることが何よりも重視される。その文化の中でコスト削減を断行するには、ロジックだけではない、CTOとしての覚悟を見せることが必要だったと、林氏は振り返った。
