LayerX エンジニアブログ

LayerX の エンジニアブログです。

バクラク事業部による AWS コスト管理の課題に対して行った3つの取り組み

こんにちは!バクラク事業部 Platform Engineering 部 DevOps チームの多田(@tada_infra)です。7月はLayerX エンジニアブログを活発にする期間でして、ぜひ左記のリンクを辿って気になる記事を見ていただけるとありがたいです!先週の金曜日は Natsuo さんのLayerX のエンジニアインターンって実際どうなん?に答えていくでした。この記事では DevOps チームで行った AWS コスト管理の課題にまつわるお話になります。

AWS コストに関して持っていた課題感

今回の取り組みの紹介をする前に AWS のコスト管理においてどんな課題が存在したかを記載します。大きく2つありました。

1. サービスのコスト高騰の検知が遅いこと

DevOps チームでは月のはじめに前の月のサービスごとのコストをスプレッドシートに記録し、管理しています。前月の請求書から特定のサービスが以前の推移より高くなっているということを感知し、削減策を打ってきました。ただ、これではコストが高くなっていることや異常値の分析が翌月以降にならないと実施できない状況です。AWS の課金は従量課金制でなるべく早くコストの上昇を感知して対処を講じていくのが良いと思いますが、それが後手になっていました。

2. コストの可視化ができていなかったこと

上述のようにスプレッドシートでコストを管理していたのですが、サービスごとで月ごとの費用がわかるものの、日別やサービス別でのコスト推移が追えない状況でした。また、プロダクトの運用に当たって関係者が閲覧コストの状況を DevOps チーム以外のメンバーが簡単にアクセスできる場所がなかったことも課題に感じていました。

課題に対して取ったアクションの紹介

続いて、これらの課題に対して取ったアクションを3つ紹介します。

1. コストが高騰している特定サービスのコスト削減・最適化

まず、コストが高騰していたサービスの詳細を AWS Cost Explorerで確認してコスト削減余地があるか、コストは最適になっているかを確認していきました。ここで Reserved Instance や Saving Plans の購入でしたり、特定サービス(例えば CloudWatch Logs の ログ取り込み利用料や AWS Config レコーダーの料金、S3 ストレージタイプ等)のコスト削減余地があるものはコストを減らすように見直しを行いました。その結果、以前と比較して 約30% ほどコストを削減することができました。

2. コストの上昇を検知するために AWS Budget Alert と Cost Anomaly Detection を設定

次に、コストの上昇を素早く検知していけるように AWS Budget Alert の閾値の見直しと AWS Cost Anomaly Detection の設定を行いました。前者はコスト削減の対策後のランニングコストの監視目的で使い、後者は月中のコスト異常値を通知する目的で使っているのですが、個人的には Cost Anomaly Detection の検知がとてもありがたい気づきを与えてくれていると感じています。具体的な例を上げますと、弊社ではコンテナレジストリとして ECR を使っているのですが、そのイメージのスキャンに Amazon Inspector が使われています。コンテナイメージが増えてきてスキャンが大量に走っていました。詳細は伏せますが、コストが前日と比べて3倍以上増えていたのを素早く気づいて改善の対応をチームで取れてよかったです。

3. コストの可視化を Locker Studio で実施

最後にコストの可視化です。バクラク事業におけるデータ組織とデータ基盤 2023で紹介されていたようにデータ基盤が整備されていっており、コストの可視化においてもこの基盤を使っていくことにしました。AWS Cost Usage Report を S3 に出力し、GCP の Storage Transfer Service で Google Cloud Storage にデータを転送するようにしてコスト情報を BigQuery でクエリできるようにしています。dbt を使ってデータを変換し、Locker Studio で可視化していってます。まだ完全に運用に載せきれてはいないのですが、このダッシュボード上にまずは AWS のコストを可視化していくことで関係者が速やかにランニングコストを確認できるようにしていきます。

まとめ

AWS コストにまつわる課題とそれに対応するために取ったアクションをまとめました。以前と比較すると我々は AWS コストの状況を掌握する力が向上したと感じます。とはいえ、新規サービスの開発や既存のシステムのリプレイス等でコスト推移は日々変化するため、作った仕組みで継続的な監視と見直しを行っていければと考えています。

最後に

弊社では共に世の中をバクラクにしてくれる仲間を絶賛募集中です!もし気になることがありましたらお話しましょう!

jobs.layerx.co.jp