Slide 1

Slide 1 text

Sansan株式会社 部署 名前 複数プロダクトを⽀える EKSクラスタのコスト按分 Sansan技術本部 研究開発部 Architectグループ Platformチーム 宮地 宏⼀

Slide 2

Slide 2 text

写真が入ります 宮地 宏⼀ Sansan株式会社 技術本部 研究開発部 Architectグループ 2023年3⽉中部⼤学⼤学院⼯学研究科情報⼯学専攻修了。 在学中はヘルスケアとAIの融合を⽬的とした研究に取り組む。 現在は、研究開発部Architectグループ Platformチーム所属。 DevOps/MLOps基盤の構築業務に従事。

Slide 3

Slide 3 text

EKSのコスト按分に課題ないですか?

Slide 4

Slide 4 text

- EC2やLambdaではコスト管理タグで簡単に分離できていたのに。。。 - 単⼀アプリにどの程度コスト発⽣しているかわからん。。。 - サービスの増加によってコスト按分の必要が。。。 EKSのコスト按分に課題ないですか?

Slide 5

Slide 5 text

研究員が、セルフサービスで安全にアプリケーションをリリースできる基盤 - Kubernetes(EKS)を利⽤したコンテナプラットフォーム - 弊社の様々なプロダクトに対して、API等を提供するインフラ Circuit https://speakerdeck.com/sansan_randd/about-circuit-r-and-ds-application-platform

Slide 6

Slide 6 text

財務観点 - プロダクトなど⽤途別のコストを知りたい。 開発者観点 - アプリ別のコストを知りたい。 Circuitのコスト課題

Slide 7

Slide 7 text

財務観点のコスト按分

Slide 8

Slide 8 text

財務のコスト管理フローに合うコストを出す。 すべてのリソースにコスト管理タグを付与して、コスト ⾃動集計出来る状態にする。 財務観点のゴール

Slide 9

Slide 9 text

Node毎に単⼀NSのPodのみをスケジューリングする。NodeとなるEC2にコ スト管理タグを設定しサーバコストを管理する。 EKSでもコストタグで管理出来るようにしよう!!

Slide 10

Slide 10 text

構成 Karpenterのリソース設定 - EC2NodeClass: EC2のタグをコスト管理タグとして設定 - NodePool: Taintの設定、 Labelの設定 Podの設定 - Taintに合わせて、Toleration を設定 - NodeにNodePool名のLabelが設定されるため、NodeSelector またはAffinityを指 定 - e.g. “karpenter.sh/nodepool: {NodePool name}” Karpenter [ https://karpenter.sh/ ]

Slide 11

Slide 11 text

CircuitのログはCloudWatchを利⽤している。 →ロググループ毎にコストタグ付与しよう!! ログにもコストタグを付与したい

Slide 12

Slide 12 text

メリット - 財務のコスト管理⽅法に合わせることで、コストタグの付与までを責務 として最⼩の労⼒で運⽤できる。 - Namespace毎にNodeを分離することで、アプリの影響範囲を留めること ができる。 デメリット - Nodeの余剰リソースが多い。 - Namespaceを新規に作成する場合に⼿間が増える。 財務観点のコスト按分まとめ

Slide 13

Slide 13 text

開発者観点のコスト按分

Slide 14

Slide 14 text

アプリケーション単位のコスト可視化をする。 アプリケーション単位 ≒ Deployment, StatefullSet etc… 開発者観点のゴール

Slide 15

Slide 15 text

元々はKubecostをEKS Addonより導⼊していた。情報量は⼗分であるが、無料版で は15⽇間しかデータが保持できないためSplit Cost Allocation Data for EKS (SCAD) への乗り換えを⾏った。 Split Cost Allocation Data for Amazon EKSの導⼊ Kubecost メリット - EKS Addonから簡単に導⼊可能 - ダッシュボードがリッチ デメリット - 無料版は15⽇間のみ保存 - CURの統合が少し⾯倒 SCAD メリット - 無料で利⽤可能 - データ保持が無制限(保存先が必要) デメリット - Dashboardは⾃⾝で⽤意する必要があ る。 Kubecost [ https://www. kubecost.com/ ] AWS バンドル版 Kubecost [ https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/cost-monitoring-kubecost-bundles.html ] SCAD [ https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data.html ]

Slide 16

Slide 16 text

SCADの運⽤図 前準備としてSCADの有効化を⾏い、CURに反映させる。 SCADの設定⽅法 [ https://aws.amazon.com/jp/blogs/aws-cloud-financial-management/improve-cost-visibility-of-amazon-eks-with-aws-split-cost-allocation-data/ ]

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

財務観点、開発者観点それぞれよりコスト課題の解決を⾏った。 - 財務観点として財務が求めるコスト管理フローに合わせることで、 Circuitのコスト管理業務にかかる時間を⼤幅に短縮することに成功した。 - 開発者観点として各アプリケーションのコストを簡単に認知可能な状態 とし、コスト観点の施策を実施しやすい環境を整えることに成功した。 まとめ

Slide 19

Slide 19 text

We’re Hiring! https://open.talentio.com/r/1/c/sansan/pages/76616 R&D MLOps/DevOpsエンジニア

Slide 20

Slide 20 text

No content