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
極力楽してKubernetes環境を構築したいwith AWS, terraform, EKS...
Search
k.bigwheel (kazufumi nishida)
November 23, 2023
Technology
3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
極力楽してKubernetes環境を構築したいwith AWS, terraform, EKS, Argo-CD
k.bigwheel (kazufumi nishida)
November 23, 2023
More Decks by k.bigwheel (kazufumi nishida)
See All by k.bigwheel (kazufumi nishida)
2022年マイベスト本紹介「FACTFULNESS」
bigwheel
0
1.5k
Other Decks in Technology
See All in Technology
サイバー捜査員研修(後半)
nomizone
1
870
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
23
430k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
4.1k
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
280
20分でわかるセキュアAPI
nwiizo
2
270
第3回しろおびセキュリティスポンサーセッション
log0417
0
190
モバイルアプリ開発概論2026
recruitengineers
PRO
5
590
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
760
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
620
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
960
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Transcript
極力楽して Kubernetes環境を構築したい with AWS, terraform, EKS, Argo-CD 2020/08/26 Kubernetes Meetup
Tokyo #33 株式会社Speee DX事業本部 SREエンジニア 西田和史 (k_bigwheel)
弊事業部のインフラ • ベース • EKS使用 • シングルテナント (1サービスごとに1クラスタ) • Argo
CD • Terraformで管理
インフラ詳細
課題感 • 事業部内のサービスの増加速度に対してインフラの構築速度が間に合ってない ◦ もっと高速にインフラ 1セットを提供したい • ほぼ同じインフラを何度も作成 ◦ 2人のSREチームでは手間が馬鹿にならない
(トイル化) ◦ 毎回微妙な差分が発生 • 毎回ちょっとずつ進化・改善している ◦ 改善が過去に構築したインフラへ反映できていない
モジュール化(terraform module / helm)で解決? • 適切に使用すれば紋切り型コードが大幅に減少 ◦ 例: ウェブサービス用の helm
chart(Deployment, Service, Ingressのセット) • 一方で過度のモジュール化(共通化)は個別最適化の選択肢を奪う ◦ オペレータA, B, C, Dを内包するhelm chartは便利だけどBを入れたくないクラスタではとたんに 面倒になる • モジュールを十分小さくすれば選択的に使える? ◦ モジュールが増えると使い方を理解するコストが増え、モジュール間の グルーコードも増える
モジュール化できた次に挙がる問題、 グルーコード • 適切な粒度で十分な機能を持ったモジュールがあってさえ、 グルーコードは一定必要 ◦ 例: helmを可能な限り使った場合でも manifestファイルの行数合計が 780
コードをテンプレート化して自動 生成しよう!
• シンプルで汎用性の高いプロジェクトテンプレート作成ツール ◦ https://github.com/cookiecutter/cookiecutter • 使い方 a. テキストファイルの中で変数展開したい箇所を Jinja2フォーマット {{
変数名 }}で記述 b. cookiecutterコマンドを実行、ダイアログで変数の値を入力 c. 変数展開されたファイルが生成!
ここが自動生成できるようになった
プロジェクト初日にやること 1. AWSアカウントの作成 2. GitHubにリポジトリの作成 3. GitHub SecretsにCI用の Credentialsを設定 4.
右のコマンドを実行 # インフラコードの生成 cookiecutter
[email protected]
:speee/infra-template.git # CIでインフラを構築 git add . git push origin HEAD # k8s認証情報の設定 aws eks update-kubeconfig --name hogehoge # Argo CDのインストール kubectl create namespace argo-cd helm repo add argo https://argoproj.github.io/argo-helm helm install argo-cd argo/argo-cd -n argo-cd --set installCRDs=false # マニフェストファイルの生成 cookiecutter
[email protected]
:speee/manifest-template.git # Argo CDにマニフェストリポジトリを登録 git add . git push origin HEAD argocd repo add https://github.com/speee/hogehoge-manifest
以上のコマンドにより、
以上のコマンドにより、 ここ以外のすべてが 1時間でできるように なった!
課題は解決した? • もっと高速にインフラ1セットを提供したい ➢ 最短1日未満で提供できるようになりつつある • 2人のSREチームでは手間が馬鹿にならない(トイル化) ➢ 作業を大幅に簡略化 •
毎回微妙な差分が発生 ➢ テンプレート化で不要な差分は最小化 • 改善が過去に構築したインフラへ反映できていない ➢ インフラリポジトリ/マニフェストリポジトリの骨格が揃ったので足並みを揃えやすくなった
ご清聴 ありがとう ございました まとめ 1. モジュール化 a. Terraform module b.
helm 2. テンプレート(コード自動生成) a. cookiecutter より以下ができた • トイルの削減 • 高速な初期構築 • コードの標準化(正規化)