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
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
Search
Isao Shimizu
December 18, 2023
Technology
2
380
今年1年のEKS運用振り返り/3-shake SRE Tech Talk
2023年12月18日(月)
3-shake SRE Tech Talk #8 LT
https://3-shake.connpass.com/event/302755/
Isao Shimizu
December 18, 2023
Tweet
Share
More Decks by Isao Shimizu
See All by Isao Shimizu
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
230
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
970
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
510
約10年間MIXIのインフラを 支えてきたPagerDutyの活用事例 / PagerDuty on Tour 2024
isaoshimizu
6
1.2k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
2
1.8k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
18
9k
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
11
3.1k
全世界1,800万人が利用する「家族アルバム みてね」におけるNew Relic活用法 / FutureStack Tokyo 2023
isaoshimizu
1
580
『家族アルバム みてね』で計測しているSLIの事例 / SLI as measured in FamilyAlbum
isaoshimizu
4
790
Other Decks in Technology
See All in Technology
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
3
1.9k
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
2
2k
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
240
対話型音声AIアプリケーションの信頼性向上の取り組み
ivry_presentationmaterials
3
1k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.7k
AI Ready API ─ AI時代に求められるAPI設計とは?/ AI-Ready API - Designing MCP and APIs in the AI Era
yokawasa
6
1.7k
Figma Dev Mode MCP Serverを用いたUI開発
zoothezoo
0
230
AWS 怖い話 WAF編 @fillz_noh #AWSStartup #AWSStartup_Kansai
fillznoh
0
130
AI エージェントと考え直すデータ基盤
na0
20
7.9k
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
5
3k
Microsoft Defender XDRで疲弊しないためのインシデント対応
sophiakunii
1
310
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
39k
Featured
See All Featured
Visualization
eitanlees
146
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Fireside Chat
paigeccino
37
3.5k
Writing Fast Ruby
sferik
628
62k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Automating Front-end Workflow
addyosmani
1370
200k
Speed Design
sergeychernyshev
32
1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Transcript
©MIXI ©MIXI 今年1年のEKS運用振り返り 株式会社MIXI Vantageスタジオ みてねプロダクト開発部 基盤開発G 清水 勲 @isaoshimizu
3-shake SRE Tech Talk #8 Lightning Talk
2 ©MIXI About me 週末は社会人吹奏楽団での活動(楽団長、トロンボーン約30年、たまに指揮者)。 キャンプとクラフトビールが好き。 New Relic User Group
運営 清水 勲 @isaoshimizu 家族アルバム みてね Engineering Manager(SRE/CXE/Security) SIer時代(受託・自社開発) SNS「mixi」 モンストなど みてね 2003年 2011年 2014年 2018年 2024年 新卒入社 ミクシィ(現MIXI)入社 C/C++/C#/PHP/Python/iOS/AWS Fedora/MySQL/LXC /OpenStack Linux/MySQL/Ruby AWS/MySQL/Ruby 2022年1月〜EM
©MIXI みてねでは2021年からAmazon EKSを 運用してます (参考) 4年間のEKS移行の取り組みを振り返って https://gihyo.jp/article/2022/11/mitene-02eks
©MIXI EKSに移行して2年ほど。 2023年はどんな運用をしてきたのか。
©MIXI これからKubernetesやEKSの運用に関わる方 すでに運用している方 の参考になれば幸いです
©MIXI みてねのKubernetes構成
7 ©MIXI 現在のみてねのKubernetes構成 • Amazon EKS v1.27 (リリース⽇: May 24,
2023、標準サポート: July 2024、延⻑サポート: July 2025) • Helm Chart ◦ EKSクラスタ内のリソースはTerraformでは管理しないルール ◦ EKSクラスタ⾃体はTerraformで管理 • Argo CD • Argo Workflows • KEDA (SQSのキュー⻑ベースのオートスケール⽤) • Prometheus (In-Cluster, Short Term) • Amazon Managed Service for Prometheus (Long Term) • Grafana Loki • Grafana • みてねでの規模感(2023/12時点) ◦ 多い時で18,000Pods、少ない時で2,000Pods
©MIXI 2023年にやってきたこと 7つの事例
©MIXI ちなみに... 1年間でHelm ChartのPull Request数 600強くらいでした
©MIXI 1.リソース調整
11 ©MIXI 1.リソース調整 • CPU、メモリの調整 • それなりの頻度でさまざまなDeploymentのリソースを調整をしている • 調整のきっかけ ◦
OOMKilled ▪ 例) Cluster AutoscalerでOOMKilledの発⽣(つらい) • limitsの調整、CPU: 500m -> 2000m、Memory: 1000Mi -> 4000Mi ◦ オートスケールされにくいとき ▪ CPU利⽤率が低すぎてHPAが機能しないなど ◦ CPUの割り当てが⾜りなくて性能が出ていないとき ▪ Prometheusのメトリクスを⾒ながら最適値を探す
©MIXI 2.deschedulerの導入
13 ©MIXI 2.deschedulerの導入 • 導⼊のきっかけ ◦ Railsアプリのメモリリーク。デプロイされない期間(例えば週末や連休)など、ある程度の⽇数再 起動がかからないと、メモリ使⽤率が⾼まっていき、502エラーが少し⽬⽴つようになってきた。 • deschedulerを利⽤してPodの最⼤起動時間(PodLifeTime)をコントロールして、定期的に再起動がかか
るようにし、メモリを解放できるように。 PodLifeTime: enabled: true params: podLifeTime: maxPodLifeTimeSeconds: 28800 namespaces: include: - "NAMESPACE" labelSelector: matchLabels: app: APPNAME
©MIXI 3.CronJobの追加
15 ©MIXI 3.CronJobの追加 • 機能開発の中で定時バッチ処理が必要になるケースがある • 開発者にHelm ChartのPull Requestを作ってもらう •
Templateが⽤意されているのでValuesとして3⾏くらい追加するだけ
©MIXI 4.DCGM Exporterの導入
17 ©MIXI 4.DCGM Exporterの導入 • https://github.com/NVIDIA/dcgm-exporter • ⼀部の機能においてGPUを必要としている • GPUの各種メトリクスをPrometheusで取得できるように
• 細かく数値を⾒るというよりは傾向の変化をモニタリングしている
©MIXI 5.Helm Chartのアップデート
19 ©MIXI 5.Helm Chartのアップデート • CommunityのHelm Chartをアップデート ◦ たとえば、Prometheus、Cluster Autoscaler、kube-state-metricsなど
• アップデートによるメリット ◦ 新しいKubernetesバージョンへの対応 ◦ 新機能の利⽤ ◦ 各種脆弱性対応 • 現在は⼿動運⽤ということもあって、アップデートが放置されがち ◦ Renovateなどによる⾃動アップデート(⾃動Pull Request作成)を実現したい ▪ まもなくできそう
©MIXI 6.Opsクラスタ導入& Kubernetesアップデート
21 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(1) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure • SRE NEXT 2023で弊チームメンバーの杉本が登壇した際の内容
22 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(2) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=27
23 ©MIXI 6.Opsクラスタ導入&Kubernetesアップデート(3) https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=12
©MIXI 7.kubectlでPod作業するのを禁止
25 ©MIXI 7.kubectlでPod作業するのを禁止 • kubectl execでPodのシェルを起動して作業するのを禁⽌しました ◦ 作業のログが残らないため ◦ 開発者の
pods/exec などの権限を剥奪 • 代替⼿段として、ローカルPCからSession Managerを使って踏み台サーバーを経由してkubectl execを実 ⾏する仕組みを構築 • これによってSession ManagerのログがS3に保存され、すべてのPod内での作業が記録がされるように
©MIXI まとめ
27 ©MIXI まとめ • Kubernetes(EKS)運⽤3年⽬の実態についてお話ししました • コストパフォーマンスや安定性のためにリソース量の調整はいつまでも続いていく • 開発者が直接運⽤できる箇所は今後も増やしていきたい •
Kubernetesのアップグレード運⽤はだいぶこなれてきていますが、まだまだ改善の余地はあります • クラスタのアップグレードよりもHelm Chartのアップデート運⽤のほうが課題 ◦ アプリケーションのライブラリアップデート運⽤と同じような課題だが、⾃動化のツール整備がま だ追いついていなかった(Renovateで解決しそう) • Kubernetesにまつわる様々なツール群(OSS)に⽀えられています
©MIXI