Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
k8s(EKS)でマルチテナントプラットフォームを運用する際のコスト按分の実装 / 25012...
Search
OPTiM
March 13, 2025
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
k8s(EKS)でマルチテナントプラットフォームを運用する際のコスト按分の実装 / 250124_LT_SRE
OPTiM
March 13, 2025
More Decks by OPTiM
See All by OPTiM
Storeに頼りすぎないフロントエンド
optim
0
38
OPTiMized SRE 〜共通基盤で、SREの改善を個別対応から横展開へ〜
optim
0
92
地図が指し示す場所を、機械に検索させてみる
optim
0
540
「人間を最適化するAI」から「AIを最適化する人間」への主語転換 〜Agentic Engineeringの実践〜
optim
0
150
フロントエンド開発者のための「厄払い」
optim
0
2.5k
レイアウト構築の基本を理解しよう ~ 横スクロールが起きない!? Flex脱却編 ~
optim
0
610
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
1.1k
落ちてほしかった単体テスト
optim
0
170
Goのカバレッジ計測の仕組みをコードリーディングで理解する
optim
1
380
Other Decks in Technology
See All in Technology
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1k
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
340
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
420
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
250
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
620
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
140
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
170
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
200
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
170
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
290
4人目のSREはAgent
tanimuyk
0
370
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
810
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
180
The Cult of Friendly URLs
andyhume
79
6.9k
How to build a perfect <img>
jonoalderson
1
5.8k
Rails Girls Zürich Keynote
gr2m
96
14k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
160
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Thoughts on Productivity
jonyablonski
76
5.2k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
© 2019-2025 OPTiM Corp. All rights reserved. k8s(EKS)でマルチテナントプラットフォームを運用する際の コスト按分の実装 最終更新日:2025/01/24
株式会社オプティム 菅野
© 2019-2025 OPTiM Corp. All rights reserved. 2 自己紹介
職歴 ◼ 2023年4月: オプティム 総合職(ポテンシャル職 = 非エンジニア) 入社 ◼ 2023年4~7月: ITポテンシャル研修 ◼ 2023年7月: プラットフォーム開発ユニットPlatform Engineeringチーム配属 仕事内容 ◼ 社内向けプラットフォーム開発 ◼ MOYT(もっとおやつ会)幹事 技術キーワード ◼ 「AWS」,「Terraform」,「Kubernetes」,「Docker」など
© 2019-2025 OPTiM Corp. All rights reserved. 3 プロダクトチームがプロダクト固有の問題解決にフォーカスできるよ
うにプラットフォームを提供する 活動の一環として、複数のプロダクトが利用できるマルチテナント構 成の社内プラットフォームをKubernetes as a Serviceとして提供 マルチテナントプラットフォームの利点 ✓ 自プロダクトのリソースをプロダクトチーム自ら管理することで、インフラ チームが開発速度を減少させるゲートキーパーとなることを防ぐ ✓ プラットフォームチームが常にメンテナンスする安心、安全な基盤を複数プ ロダクトで共有できる ✓ スケーラブルな基盤を提供することで、プロダクトは自分たちが利用した以 上に無駄なコストを支払う必要がない Platform Engineeringチームの取り組み 提供するマルチテナントプラットフォーム略図
© 2019-2025 OPTiM Corp. All rights reserved. 4 課題: プロダクトが使用した分だけコストを請求されるように、コスト按分を行うこと
リソース占有部分 + リソース共有部分の両者で テナントに平等なコスト按分を 行う必要がある 共通利用 共通利用 共通利用 課題: オプティムは多数のサービスを提供しているため、 リソースを共有しているプラットフォームであっても、 乗り入れした各テナント(≒サービス)ごとの原価を適切に把握できるようにする必要がある 難点: テナントがリソースを共有しているため、 AWSのサービスで請求書を分けることができない
© 2019-2025 OPTiM Corp. All rights reserved. 5 解決案: EKSのネームスペースごとのCPU,メモリリクエストに応じて
アカウントのコストを按分する 現状のコスト按分比率 プロダクトAの料金 =(namespaceA)/(namespaceA + namespaceB) × 全体の料金 プロダクトBの料金 =(namespaceA)/(namespaceA + namespaceB) × 全体の料金
© 2019-2025 OPTiM Corp. All rights reserved. 6 OpenCost
◼ Kubernetes およびクラウドネイティブ環境向けに開発されたオープンソースのコスト監視ソリューション ◼ 無料利用可能 kubecost ◼ Kubernetes 環境向けの包括的なコスト割り当ておよびリソース監視ソリューション ◼ 割引、スポットインスタンス、リザーブドインスタンスなどの高度なコスト調整が可能 ◼ 一部機能は無料利用可能 AWS CUR の Split Cost Allocation Data for Amazon EKSの利用 ◼ AWS の使用状況を追跡しアカウントに関連する推定請求額をS3に出力する ◼ レポートの出力自体は無料で使用できるものもあるが、出力先のS3には課金される ◼ 請求書を受け取るAWSアカウントのBilling and Cost Managementから有効化 ネームスペースごとのコストを計測する手段の検討 今回は導入が簡単だった CURを導入してみました
© 2019-2025 OPTiM Corp. All rights reserved. 7 解決策: AWS
CURを使用しnamespaceごとの按分比率測定 CURでSplit Cost Allocation Data for Amazon EKSを設定し、 pod単位の使用情報を取得 S3にcsvファイルで出力
© 2019-2025 OPTiM Corp. All rights reserved. 8 DuckDBで直接S3をクエリすることもできるが、 データが大量で処理が重かったため断念
取得したcsvをクエリして按分比率を算出
© 2019-2025 OPTiM Corp. All rights reserved. 9 今後の課題:
EKSのnamespaceごとのリソース”使用率”に応じた按分を行いたい ◼現状: EKSのnamespaceのリソースリクエストに応じた按分を行っている ◼解決案: 当初検討していたKubecostをCURの代わりに使用することや、Amazon Managed Service for Prometheus をCURに導入することでリソースの使用率の値を取得することが可能 ALB, NatGW, InternetGWなど、リソースの課金形態に合わせた按分比率を算出したい ◼現状: EKSの按分比率をAWSアカウント全体のコストにかけている ◼解決案: 転送したデータ量などのパラメータを取得して計算スクリプトを追加する コスト按分比率算出が自動実行される仕組みを作りたい ◼現状: PEチームのローカル環境でコンテナを立ててスクリプトを実行している ◼解決案: Cronjobで自動実行するなど オプティムでは 一緒に働く仲間を 募集しています
© 2019-2025 OPTiM Corp. All rights reserved. 10