NE株式会社開発統括部所属の大嶋(@atsusics) です。
この記事はNE Advent Calendar 2022 7日目の記事になります。
概要
弊社でサービス提供しているネクストエンジンのコスト周りを担当した私が、この1年間で行ったことを紹介させていただきます。
プロダクトのサーバー費用管理で悩んでいる方や、AWS費用を削減したいけどどこから手をつけたら良いかわからない方の少しでも手助けになればと思います。
実施したこと
- コストを眺める会を主催
- AWSリソースの適正化
順番に紹介していきます。
コストを眺める会を主催
コストを眺める会とは?
月末に当月のコストの確認と、来月以降のコスト予想を確認するMTGを行っています。
参加者は当初SRE(インフラエンジニア)+CTOのみで行っていましたが、現在はすべてのエンジニア+αが任意で参加できるように広げています。
基本的には主催者からコスト関連について一気に説明しつつ、都度質問を受け付けながら進行していきます。
事前準備
事前に主催者が以下のことを準備し、スムーズに進行・説明できるようにしています
- コスト共有情報準備(今月実績予想+来月以降の予想)
- 翌月のコストを眺める会の仮予定確保
- AWS RI&SP購入案作成
- その他。クラウド化によるコスト影響等
お品書き
[第1部]
- zoomに集合
- 来月の実施日を決める
- 当月コスト、翌月のコスト予想を共有
3-1. AWS費用
3-3. さくらインターネット費用
3-4. その他、、、、(多数) - RI/SPSs購入案の話
[第2部]
- 改善できるところを話したり、雑談したり
第1部では、主催者が一気に説明していきます。第2部では雑談しつつ新たなコスト削減策がないかコミュニケーションを取るように設計しています。
実際に使用しているコスト共有用のスプレッドシートは流石に紹介することはできませんでした。すいません。。
効果
毎月メンバー内でコストを確認することで、予算消化割合や、過度にコストが掛かっている箇所について、共通認識を持つことができます。そうすることでインフラチーム全体で毎月少しづつでもコスト削減策の実施を行うことができました。
また、参加者枠をインフラエンジニア以外に広げた影響で、アプリケーションエンジニアからアプリケーションコード変更時のコスト影響について相談してもらえるといった、コスト意識の醸成につながっていきました。
例えば、在庫連携間隔短縮の際には、パフォーマンスだけではなく、コスト影響がどれほどあるのかを相談いただき判断材料の一つして提供することができました。
コスト意識の醸成は簡単なものではありませんが、今後この会を継続していけば意思決定の際にユーザー目線だけでなく、コスト意識がいい判断材料になるのではないかと考えております。
AWSリソースの適正化
上記で紹介したコストを眺める会では、毎月のコスト推移から、変化があった物にをキャッチし、コスト削減策を実施することができますが、次は現在稼働しているAWSリソースについて攻めのコスト削減をしていく一つの方法を紹介させていただきます。
前提
攻めのコスト削減と言っても、とりあえずリソースを小さくしたり、台数を少なくすればよいというわけではないのは周知の事実かと思います。
私もリソース適正化前に最低でも以下の準備はしておきました。
- パフォーマンスを想定可能な状態にしておく
- Webアクセスであれば、レイテンシ等
- バッチ処理であれば、処理時間、処理待機時間等
- DBであれば、クエリレイテンシ、キャッシュヒット率、CPU使用率等
- コンテナのリソース消費状況
- エラー、異常状態をすぐに検知できる状態にしておく
- 5XXエラー
- バッチ処理状況
- DB異常
また、アラート設計についてはNew Relic Advent Calendar 2022の17日目で紹介させて頂ければと思っております。
実施方法
各リソースごとの詳細な方法はいつか記事にしようと思います。今回は概要だけです。
- パフォーマンスを確認し余剰リソースを見つける
- 少しだけリソース適正化をする(ex. ECSタスク数を3少なくする)
- 数日様子見
- パフォーマンスを確認し、問題ないことを確認
- 少しだけリソース適正化をする
- 数日様子見
- パフォーマンスを確認し、問題ないことを確認
これを繰り返していきます。
とても泥臭い方法になりますが、何よりもユーザー影響を出さないようにNewRelic・Datadog等の画面と睨めっこしながら少しずつ進めていきました。
効果
実際のコスト削減額は、、、、(すいません。今回は非公開にさせてください)
項目としては
- ECSのタスク数削減、スケジュール調整
- RDSサイズ変更
- 不要なサーバー停止等
を行いました。
無駄なコストを削ることで、セキュリティを高めることにお金を掛けられたりと良いことばかりでした。
まとめ
プロダクトのサーバー費用周りの担当1年目の私が、この1年間で行ったことを紹介させていただきました。
プロダクトの成長のためには必要な場所にお金を掛けていくことは大切だと思っています。
しかし、無駄遣いはもったいないので削れるところは削ってコスパ良いプロダクトにしていきたいと思います。