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
Backlog における Kubernetes の取り組み / Kubernetes's ap...
Search
株式会社ヌーラボ
PRO
March 08, 2019
Technology
0
1.1k
Backlog における Kubernetes の取り組み / Kubernetes's approach in Backlog
2019/3/8 ヌーラボ 福岡本社で行われたGeeks Who Drinkでの発表資料です。
株式会社ヌーラボ
PRO
March 08, 2019
Tweet
Share
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
【資料】30分でわかる!“とりあえず課題を作った”から抜け出すBacklog活用術
nulabinc
PRO
0
19
【展示会ご参加者様向け】Backlog概要編-配布資料
nulabinc
PRO
0
30
Why Platform Engineering? - マルチプロダクト・少人数 SRE の壁を越える挑戦 -
nulabinc
PRO
5
660
Datadog のトライアルを成功に導く技術 / Techniques for a successful Datadog trial
nulabinc
PRO
0
310
僕たちは何を守っているのか?ビジネスを守る、ヌーラボのセキュリティ実践
nulabinc
PRO
1
66
Snowflake九州ユーザー会
nulabinc
PRO
0
63
ヌーラボ‧ウェブサイト課の ⼀年間の取り組みをふり返る
nulabinc
PRO
1
1.1k
今からでも入れる re:Inventがあるんですか!?
nulabinc
PRO
0
430
ライティングチームだからこそできた、「どことでも繋がれるチーム」づくりの結果 / Technical Writing Meetup vol.38
nulabinc
PRO
0
110
Other Decks in Technology
See All in Technology
In Praise of "Normal" Engineers (LDX3)
charity
2
1.2k
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
6
680
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
380
ObsidianをMCP連携させてみる
ttnyt8701
2
140
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
180
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
150
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
新規プロダクト開発、AIでどう変わった? #デザインエンジニアMeetup
bengo4com
0
500
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
650
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
240
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
2
380
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A better future with KSS
kneath
239
17k
Automating Front-end Workflow
addyosmani
1370
200k
Code Reviewing Like a Champion
maltzj
524
40k
A designer walks into a library…
pauljervisheath
206
24k
Code Review Best Practice
trishagee
68
18k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Gamification - CAS2011
davidbonilla
81
5.3k
Designing for Performance
lara
609
69k
4 Signs Your Business is Dying
shpigford
184
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Transcript
Backlog における Kubernetes の取り組み Yuki YOSHIIWA Geeks Who Drink in
Fukuoka Front End Edition 2
Yuki YOSHIIWA a.k.a. iwa Web Frontend Engineer @ Nulab Inc.
React, TypeScript がだいすき! スイスがすきなので Scala がすき! ≡ もすきです! わんこだいすき! これは若かりし時の我が仔
突然ですが、
Backlog は UX 向上にゼンリョク! 速くて使いやすい、新しい UI を作っています React, TypeScript
Scala (Akka HTTP, Play なし) GraphQL, WebSocket Kubernetes UX を最大化するためインフラレベルから見直し どうなるかはヒミツ
なんでやるの?
現世代 Backlog の課題
運用つらい問題 国内・海外に複数の環境 現在8 環境 サーバー台数は200 台+ 伸びるリリース時間…
いくつか対策はしている 今回は割愛 詳しくは SRE チームに
運用つらい問題 サービスいっぱい Issue, Wiki, Git, File, ... これからも増える予定
サービスが増えることで、 運用コストが跳ね上がるの は避けたい
サービス増でつらくならないように いくつか Dockerize ECS で動かしている ステートレスな設計 リリース簡単で速い!
今後はコンテナーベースに していきたい
Kubernetes
Kubernetes とは Google が社内で培ってき たコンテナー運用にまつわ る知見を元に設計・開発し た、オープンソースのコン テナーオーケストレーショ ンシステム →Google
がやってきたこ とを一般化したもの
Kubernetes とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers
Kubernetes とは オーケストレーション ( コ ンテナーの構成・設定) は yaml で管理する
yaml を正とする運用 (single source of truth) レビューがやりやすい
Kubernetes とは ほとんどの関心事を yaml に落とし込める 接続先などの設定 スケーリングの閾値
アップデート時の動作 Infrastructure as Code の 極致と言えるのでは
Kubernetes とは やりすぎた例 VM を管理 K8s を管理
データセンターを管理 独自のリソース定義を作る ことで、割となんでもでき るカスタマイズ性
Kubernetes とは 耐障害性が非常に高い 優れたスケジューラ 死活監視 セルフヒーリング ホスト/
コンテナーが落ち てもすぐに復旧する!
Cacoo も使っている!
EKS 、キミにきめた!
EKS とは AWS が提供するマネージ ド Kubernetes サービス 面倒ごとから解放される
クラスターの管理 アップデート Outofbox で AWS のサ ービスと統合されている
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API Server など K8s の 根幹となる機能を提供
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API Server など K8s の 根幹となる機能を提供 落ちたらまずい 部分を運用しな くていい安心感 アップデートを 自動でやってく れる嬉しい!
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API の認証・認可に IAM Role を使える
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers Node には EKS に最適 化された AMI を使用 Node のスケーリング には Auto Scaling Group を使用
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers Node には EKS に最適 化された AMI を使用 Node のスケーリング には Auto Scaling Group を使用 信頼と実績のあ る Auto Scaling Group !
なんで EKS ? Cacoo は自分でクラスターを作っていなかった? Cacoo チームからつらいところを聞いていた アップデートなど…
マネージド K8s が良いという話は聞いていた GKE, AKS は検討しなかった? AWS を利用しているので EKS にした ハイブリッドクラウドはコスト面で厳しい
実際にあった話
実際にあった話 Critical! 早く対応しない といかん! K8s 初の深刻な セキュリティ インシデント
実際にあった話 CVE20181002105 という、特殊なリクエストを行 うことで権限昇格することができる、危険性の高い 脆弱性が見つかる K8s 本体をアップデートしないといけない 本体のアップデートはやることが多く非常に面倒
実際にあった話 EKS の対応のタイムライン 2018/12/04 02:01 JST: K8s チームがアナウンス
2018/12/04 13:28 JST: 問い合わせ 2018/12/04 17:07 JST: AWS から対応中と返事 2018/12/05 17:58 JST: 対応完了の知らせ この間、コマンドを叩くことも、画面からぽちぽち することもなく、アップデート完了
実際にあった話 EKS の対応のタイムライン 2018/12/04 02:01 JST: K8s チームがアナウンス
2018/12/04 13:28 JST: 問い合わせ 2018/12/04 17:07 JST: AWS から対応中と返事 2018/12/05 17:58 JST: 対応完了の知らせ この間、コマンドを叩くことも、画面からぽちぽち することもなく、アップデート完了 マネージド 最高!
Backlog における EKS の構成管理
Backlog のアーキテクチャ
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service 既存 VPC 内に K8s の Node を配置している
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service インターネットからの アクセスは、nginx → K8s から作成した ELB と流れる
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service DB などにはコンテナー から直接アクセス
EKS の構成管理
Terraform Terraform を利用 Backlog で実績アリ 既存と組み合わせやすい eksctl は検討したが、マ
ッチしなかったので除外
Terraform 管理対象 IAM Role Network (Subnet, etc)
EKS Cluster Node Auto Scaling Group
Terraform Terraform で Node の AMI を変更しても Node が入 れ替わらない…
→Terraform では Auto Scaling Group を変更して もローリングアップデートがかからないことがわか った どうするか
Terraform + CloudFormation +
Terraform 管理対象 IAM Role Network (Subnet, etc)
EKS Cluster 主に K8s の Master や、 ネットワーク周りを管理し ている
CloudFormation (CFn) AWS 公式 EKS Node のテ ンプレートを利用 Node
の面倒を引き受け CFn を利用することで Auto Scaling Group 更新 時にローリングアップデー トがかかるように!
Terraform + CloudFormation 定常業務が terraform apply で済むようになった
Terraform + CloudFormation terraform apply するとローリングアップデートが かかるため、ダウンタイムなしに 更新できる
とても嬉しい! Amazon Linux 2 のセキュリ ティインシデントが… ↓ AMI を変更して terraform
apply
とても嬉しい! K8s のセキュリティインシデ ントで AMI 入れ替えないと… ↓ AMI を変更して terraform
apply
とても嬉しい! K8s のバージョンアップしたい! ↓ 該当のバージョン用の AMI に変更して terraform apply
とても嬉しい! terraform apply するだけなので とても楽になった
まとめ
まとめ ・Kubernetes (K8s) はとても良いです ・マネージド K8s はすぐに使えて運用も楽です ・EKS を terraform
で作るときは CloudFormation を terraform で作るようにしましょう… ・フロントエンドに疲れた方は Kubernetes やってみ ませんか?
ヌーラボに興味がある方はこちら!