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
460
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今年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
More Decks by Isao Shimizu
See All by Isao Shimizu
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
240
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
390
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
1.1k
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
5
4.5k
約10年間MIXIのインフラを 支えてきたPagerDutyの活用事例 / PagerDuty on Tour 2024
isaoshimizu
6
1.3k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
2
1.9k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
18
9.2k
ポストモーテムの基礎知識と最新事例 / Fundamentals of Postmortem
isaoshimizu
12
3.4k
全世界1,800万人が利用する「家族アルバム みてね」におけるNew Relic活用法 / FutureStack Tokyo 2023
isaoshimizu
1
650
Other Decks in Technology
See All in Technology
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
2
640
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
140
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
670
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
550
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
360
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
200
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
6
1k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
420
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
Documentation Writing (for coders)
carmenintech
77
5.4k
Music & Morning Musume
bryan
47
7.3k
Embracing the Ebb and Flow
colly
88
5.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Producing Creativity
orderedlist
PRO
348
40k
The Limits of Empathy - UXLibs8
cassininazir
1
600
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Side Projects
sachag
455
43k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
470
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
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