Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
なんでもかんでもコンテナ化すればいいってもんでもないけど なんでもかんでもコンテナ化したらスッ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
saramune
March 13, 2024
Technology
510
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
なんでもかんでもコンテナ化すればいいってもんでもないけど なんでもかんでもコンテナ化したらスッキリしました
saramune
March 13, 2024
More Decks by saramune
See All by saramune
EKS Auto Modeなにそれおいしいの?
saramune
0
220
self-hosted runnersでAWSコスト削減?
saramune
0
200
業務効率向上としての分割キーボード
saramune
0
260
インフラ観点で見るセキュリティ〜4Cモデルに倣って〜
saramune
0
170
適材適所
saramune
1
160
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
880
週刊AWSキャッチアップ(2024/03/25週)
saramune
0
200
ACKを活用して 使い捨てAWS検証環境を構築している話
saramune
0
1.6k
KubernetesとTerraformのセキュリティ/ガバナンス向上委員会 with OPA
saramune
2
1.9k
Other Decks in Technology
See All in Technology
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
100
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.4k
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
380
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
530
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
170
WordPressの脆弱性対策何をすべき?
masakawai
0
110
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
180
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
140
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
180
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
480
2026_devsumi_ozono.pdf
o3
3
530
What the customer really needed
kawaguti
PRO
3
210
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Un-Boring Meetings
codingconduct
0
420
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Documentation Writing (for coders)
carmenintech
77
5.5k
Chasing Engaging Ingredients in Design
codingconduct
0
320
How GitHub (no longer) Works
holman
316
150k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
420
A better future with KSS
kneath
240
18k
Transcript
© Chatwork なんでもかんでもコンテナ化すればいいって もんでもないけど なんでもかんでもコンテナ化したらスッキリ しました Chatwork株式会社
自己紹介 2 • 古屋 啓介 ◦ Chatwork株式会社 SRE部 ◦ AWS
Community Builders (container) ◦ JAWS-UG SRE支部運営 ◦ ドラム叩きます 3/21(木) 春のAurora祭りやります!
(前提) 3 • Chatworkのインフラ構成 ◦ AWSを利用 ◦ 大部分のアプリがEKS上で稼働
こんなとき、どうしますか? 4 毎日1回、特定のURLを叩きたい
んー... 5 EventBridge発火のLambdaかなぁ
これでよさそう 6 • つくった!うごいた!解決! 毎日AM1:00に Lambdaを起動する URLアクセスする (Python / NodeJS)
これでよさそう 7 • つくった!うごいた!解決! 毎日AM1:00に Lambdaを起動する URLアクセスする (Python / NodeJS)
完
数年後... 8 バージョンアップしてや (Python / NodeJS)
あれ... 9 • ソースどこやったっけ... • デプロイって手動だった? • テストしたいんだけど...
なぜなのか 10 • ソースどこやったっけ... ◦ 普段触らないのでどこおいたか覚えてない • デプロイって手動だった? ◦ メインのワークロードとは異なるスタックなのでCI/CDが未整備
• テストしたいんだけど... ◦ 簡単1ショットの仕組みだったのでテストもなし
っていうのを何回かやった結果 11 これはもう全部コンテナにして EKSで動かしたほうがいいのでは?
つまり 12 • これを 毎日AM1:00に Lambdaを起動する URLアクセスする (Python / NodeJS)
つまり 13 • こうする 毎日AM1:00に jobを起動する URLアクセスする (Python / NodeJS)
なにがうれしいの? 14 • ソースどこやったっけ... ◦ 普段触らないのでどこおいたか覚えてない ◦ 普段触っているのと同じところに置くので迷わない • デプロイって手動だった?
◦ メインのワークロードとは異なるスタックなのでCI/CDが未整備 ◦ メインのワークロードと同じCI/CDの仕組みに乗れる • テストしたいんだけど... ◦ 簡単1ショットの仕組みだったのでテストもなし ◦ 上記が整うことでテスト環境も整えやすい
15 (参考)デプロイフロー 15 Manifest (helmfile) EKS Sync 1. Push 3.
kubectl apply helmfileから生成された Manifest 2. Sync helmfileのリポジトリに ソースコードとManifest を格納しておく
ちょっと本筋と逸れますが 16 • 移行にあたってPythonをshellにリライト ◦ そもそもPythonとかNodeJSとかのEOLつらい ◦ たまたま簡単なスクリプトが多かった • helmfile
+ shellはいいぞ ◦ ConfigMapと.shがあればOK ◦ ベースとなるコンテナはシンプルなものでよい ◦ shellの黒魔術化には注意... shellスクリプト マウントする
補足 17 • 大事なのは、メインのワークロードと諸々揃えること ◦ ECSをご利用の場合でも普段使うCI/CDの仕組みに乗れればOK ▪ CDKが最強だったりする...?(CDK詳しい人に教えてほしい) ◦ Lambdaが悪いわけではない
▪ し、メインがバリバリサーバレスだぜ!の場合はむしろLambdaが適任
実際やった事例 18 • helmfile + shellに書き直したもの ◦ Lambda + EventBridge
+ PythonでOpenSearchを諸々する処理 • そのままEKSに移したもの ◦ EC2 + cron + shellでRDSをデイリーでコピーする処理 ◦ EC2 + cron + shellでRDSにqueryする処理 ◦ EC2 + cron + shellでChatworkを諸々する処理 • その他新規で作ったもの ◦ 夜間休日に検証環境を落とす処理
課題と対処 19 • 多重起動 ◦ EKS更新(Blue/Greenでクラスタが2つある)タイミングで要考慮 多重起動で困るやつは排他処理を別途追加 管理用EKSクラスタ(更新がin-place)ができたので そちらに移行
まとめ 20 • (前提)そりゃなんでもかんでもコンテナ化したらいいわけではない • (前提)メインのワークロードがコンテナ基盤で動いている • スケジュール駆動の諸々をコンテナ化すると幸せになるかも? ◦ ちょっとした処理をやるLambdaっていっぱいありますよね
◦ Lambdaは簡単便利だけど、ちゃんとやろうとすると色々整える必要アリ ◦ いつも使うCDの仕組みに乗せることがダイジ
働くをもっと楽しく、創造的に