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
WEAR のワークフロー実行基盤コストを何とかしたい
Search
mi.kobaaaa
December 15, 2023
Programming
0
1.4k
WEAR のワークフロー実行基盤コストを何とかしたい
ZOZO Kubernetes Night 登壇資料
https://zozotech-inc.connpass.com/event/299357/
mi.kobaaaa
December 15, 2023
Tweet
Share
More Decks by mi.kobaaaa
See All by mi.kobaaaa
WEARのEKSコストを救いたい
mikobaaaaa0920
1
3.6k
Other Decks in Programming
See All in Programming
TestingOsaka6_Ozono
o3
0
270
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.3k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
300
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
1.6k
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.3k
SQL Server 2025 LT
odashinsuke
0
120
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
240
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
180
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
6
1.8k
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
49k
Believing is Seeing
oripsolob
0
19
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Spectacular Lies of Maps
axbom
PRO
1
420
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
100
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
360
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
First, design no harm
axbom
PRO
1
1.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
Transcript
WEAR のワークフロー実行基盤コストを何とかしたい 株式会社ZOZO ブランドソリューション開発本部 WEARバックエンド部 SREブロック 小林 未来 Copyright ©
ZOZO, Inc. ZOZO Kubernetes Night
© ZOZO, Inc. 本日お話しすること 自己紹介
© ZOZO, Inc. 株式会社ZOZO ブランドソリューション開発本部 WEARバックエンド部 SREブロック 小林 未来 •
@mirai_kobaaaaaa • ゆるふわ系SRE • 最近シェル芸にハマる
© ZOZO, Inc. 本日お話しすること 本日お話しすること
© ZOZO, Inc. 本日お話しすること • WEAR ワークフロー実行基盤のリプレイスについて ◦ 課題解決へのアプローチ ◦
ワークフロー実行基盤の課題 ◦ WEAR のワークフロー ◦ リプレイス後の効果 本日お話ししないこと • EKS (Amazon Elastic Kubernetes Service) の細かな仕様 • Kubernetes の概要、詳細 • Digdag についての概要、詳細
© ZOZO, Inc. WEAR のワークフロー
© ZOZO, Inc. WEAR のワークフロー ワークフローで処理している主な内容 • 各種ユーザー情報の登録、更新 • ユーザーコーディネート情報の更新
• 各種アイテム情報の連携、状態の更新 • ランキング関連情報の更新 • ショップ様情報の更新
© ZOZO, Inc. WEAR のワークフロー WEAR ワークフロー実行基盤の主要コンポーネント ワークフロー自体を実行する EKS Cluster
ワークフローエンジン ワークフローエンジン用のデータベース
© ZOZO, Inc. WEAR のワークフロー
© ZOZO, Inc. WEAR のワークフロー
© ZOZO, Inc. WEAR のワークフロー
© ZOZO, Inc. WEAR のワークフロー
© ZOZO, Inc. WEAR のワークフロー 今回お話しする範囲
© ZOZO, Inc. ワークフロー実行基盤の課題
© ZOZO, Inc. ワークフロー実行基盤の課題 サービス拡大と共にワークフロー数が飛躍的に増加
© ZOZO, Inc. ワークフロー実行基盤の課題 サービス拡大と共にワークフロー数が飛躍的に増加 Job の増加と比例し Fargate Node が大量に起動
© ZOZO, Inc. ワークフロー実行基盤の課題 サービス拡大と共にワークフロー数が飛躍的に増加 Job の増加と比例し Fargate Node が大量に起動
コスト効率性が課題に
© ZOZO, Inc. 課題解決へのアプローチ
© ZOZO, Inc. 課題解決へのアプローチ • 実測値に基づくリソース設定の見直し • ワークフロー実行基盤に適した基盤構成への変更
© ZOZO, Inc. 課題解決へのアプローチ 実測値に基づくリソース設定の見直し
© ZOZO, Inc. 課題解決へのアプローチ 実測値に基づくリソース設定の見直し • Datadog Metrics から直近数ヶ月の推移を確認
© ZOZO, Inc. 課題解決へのアプローチ 実測値に基づくリソース設定の見直し • 計測したデータを元に必要リソースを再計算 • 全ての Kubernetes
Manifest に反映し設定を更新
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 EKS
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 ➕ EKS Fargate
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 ➕ 今の WEAR では本当に最適なのか? EKS
Fargate
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • ワークフロー実行の流れを再考
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • ワークフロー実行の流れを再考 複数の workflow 実行中
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • ワークフロー実行の流れを再考 workflow2,4 が完了
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • ワークフロー実行の流れを再考 workflow5 が完了 workflow6
が開始
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • ワークフロー毎に起動する Pod タイミングはばらばら ◦
実は同時実行 Pod 数は多くない • Node が Job 毎に作成されている ◦ Fargate で Node = Pod 数で作成される ◦ Fargate は 1Node(Pod) 毎に課金が発生する EC2 に複数 Pod をまとめればコストを最適化できるのでは?
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • EKS on EC2 への変更懸念点
◦ 運用負荷が上がるのでは? ◦ Job Node のオートスケールはどうする?
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ EC2 Node
はどのようにプロビジョニングする? ◦ EC2 起動テンプレートの管理はどうする? ◦ EKS バージョンアップ時の挙動制御は?
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ EC2 Node
はどのようにプロビジョニングする? ◦ EC2 起動テンプレートの管理はどうする? ◦ EKS バージョンアップ時の挙動制御は? ▪ Fargate はスケール時に自動でプロビジョニング
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ EC2 Node
はどのようにプロビジョニングする? ◦ EC2 起動テンプレートの管理はどうする? ◦ EKS バージョンアップ時の挙動制御は? ▪ Fargate はスケール時に自動でプロビジョニング ▪ 自前でゴールデンイメージを作るのは大変
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ EC2 Node
はどのようにプロビジョニングする? ◦ EC2 起動テンプレートの管理はどうする? ◦ EKS バージョンアップ時の挙動制御は? ▪ Fargate はスケール時に自動でプロビジョニング ▪ 自前でゴールデンイメージを作るのは大変 ▪ Fargate は次起動時に新バージョン準拠になる
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ Managed Node
Group を採用
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ Managed Node
Group を採用 起動テンプレートを AWS 側で自動的に用意
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 運用負荷抑制へのアプローチ ◦ Managed Node
Group を採用 EKS バージョンアップ時に自 動で B/G アップデート
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Job Node のスケールイン / アウトはどうする? ◦ Node レベルのスケールアウトに時間がかかるのでは?
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Job Node のスケールイン / アウトはどうする? ◦ Node レベルのスケールアウトに時間がかかるのでは? ▪ Fargate は Pod スケール時に自動でプロビジョニング
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Job Node のスケールイン / アウトはどうする? ◦ Node レベルのスケールアウトに時間がかかるのでは? ▪ Fargate は Pod スケール時に自動でプロビジョニング ▪ Fargate と EC2 で時間の違いが発生する?
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Karpenter を採用 https://karpenter.sh/より引用
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Karpenter を採用 https://karpenter.sh/より引用 空き容量を計算して Node に Pod を配置
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Karpenter を採用 https://karpenter.sh/より引用 Node に空きがない時は 必要な Node を追加起動
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • Job Node のオートスケール ◦
Karpenter を採用 https://karpenter.sh/より引用 Fargate とほぼ同等の Node スケール速度
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成 役割ごとに Node Group を作成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成 空き Node に Job を配置
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成 Node 容量が足りない場合 新規 Node を追加
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成
© ZOZO, Inc. 課題解決へのアプローチ ワークフロー実行基盤に適した基盤構成への変更 • 最終的な EKS on EC2
構成 DaemonSet 以外の Pod が無い時は終了
© ZOZO, Inc. リプレイス後の効果
© ZOZO, Inc. リプレイス後の効果 リプレイス前とリプレイス後のコスト比較 30%程のコスト削減に成功
© ZOZO, Inc. リプレイス後の効果 パフォーマンスの変化 • ワークフロー実行自体が平均 20% 高速化 ◦
連続して実行される Job の起動が速くなっていた ◦ EC2 変更によるイメージキャッシュ影響が大きい
© ZOZO, Inc. まとめ
© ZOZO, Inc. まとめ • コスト効率性はとても大事 • リソースを最適化し続けるのも大事 • 「今」のサービスにとって最適か?を考え続けるのも大事
© ZOZO, Inc. まとめ 本日お話しした内容を Tech Blog でも公開しています。 詳しい設定や Terraform
コードなども記載していますので是非ご一読ください! ワークフロー実行基盤をFargateからEC2へ変更したらコストもパフォーマンスも改善できて幸せになった話
© ZOZO, Inc. We are hiring!
© ZOZO, Inc. ご清聴ありがとうございました!