Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.2k
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 株式会社ヌーラボ
20251129_BacklogWorld.pdf
nulabinc
PRO
0
12
業務プロセス改善を開発⽣産性に つなげるまでの奮闘⽇記
nulabinc
PRO
0
52
AI とナレッジ共有で進化する Backlog の未来
nulabinc
PRO
0
96
DATA_SUMMT2025_Presentation_materials.pdf
nulabinc
PRO
0
84
Streamlitとロール関連の話
nulabinc
PRO
0
90
サクフェス2024_ヌーラボ原_CSと開発
nulabinc
PRO
0
25
チームの力を成果に変える、次世代のマネジメント術 〜中小企業の生産性革命〜
nulabinc
PRO
0
45
チームワークマネジメントとは
nulabinc
PRO
0
22
チームの未来を支えるバックログスイーパーという役割
nulabinc
PRO
0
21
Other Decks in Technology
See All in Technology
手動から自動へ、そしてその先へ
moritamasami
0
290
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.3k
世界最速級 memcached 互換サーバー作った
yasukata
0
330
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
4
1.2k
pmconf2025 - データを活用し「価値」へ繋げる
glorypulse
0
720
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
760
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
200
eBPFとwaruiBPF
sat
PRO
4
2.5k
エンジニアリングをやめたくないので問い続ける
estie
2
960
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
800
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
450
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5.2k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
23k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Statistics for Hackers
jakevdp
799
230k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Producing Creativity
orderedlist
PRO
348
40k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How STYLIGHT went responsive
nonsquared
100
6k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
The Language of Interfaces
destraynor
162
25k
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 やってみ ませんか?
ヌーラボに興味がある方はこちら!