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
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for Te...
Search
takayuki.miura
February 25, 2024
Programming
0
1.6k
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for TerraformでReStartした話
takayuki.miura
February 25, 2024
Tweet
Share
More Decks by takayuki.miura
See All by takayuki.miura
急激なDB書き込みが行われるサービスをリビルドした話
tmiura0203
0
850
実際にリビルドを完遂してみて
tmiura0203
0
810
Spring Bootという強すぎるフレームワークについて
tmiura0203
0
1.1k
Other Decks in Programming
See All in Programming
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
710
Developing static sites with Ruby
okuramasafumi
1
340
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
460
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
6
1.8k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
400
JETLS.jl ─ A New Language Server for Julia
abap34
2
470
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
580
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
240
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
160
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
The Spectacular Lies of Maps
axbom
PRO
1
420
30 Presentation Tips
portentint
PRO
1
180
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
130
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
120
Into the Great Unknown - MozCon
thekraken
40
2.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
130
Transcript
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for TerraformでReStartした話 三浦 大幸
アジェンダ 自己紹介 Terraform / CDK / CDK for Terraformとは TerraformからCDKへのReStart
CDKからCDK for TerraformへのRestart 実際に使うツールとしてどれを選ぶべきか 最後に
氏名 三浦大幸 技術スタック インフラ バックエンド フロントエンド iOSアプリ 自己紹介
Terraform / CDK / CDK for Terraformとは
IaC Infrastructure as Code
IaCとは インフラの構造をコードとして管理すること インフラ構築が再現性のあるものになる コード自体がドキュメントの機能を持つ ツールの例 Terraform CDK CDK for Terraform
HashiCorp社が提供しているIaCツール 様々なクラウドに対応 言語はHCL(HashiCorp Configuration Language) 設定を書いていくようなイメージ Terraformとは
CDKとは AWSが提供しているIaCツール 様々な言語で書くことができる 以下の手順で実行 1. CDKとしてコードを作成 2. CloudFormationの形式に変換 (AWSの公式IaCツール) 3.
CloudFormationとして実行
CDK for Terraform (CDKTF) とは HashiCorp社が提供しているIaCツール CDKの仕組みを使っており、様々な言語 で書くことができる 以下の手順で実行 1.
CDKTFとしてコードを作成 2. Terraformの形式に変換 3. Terraformとして実行
TerraformをやめてCDKでReStartしたあと、 CDKをやめてCDK for TerraformでReStartした話
TerraformからCDKへのReStart
基本的にはTerraformを 使用していたが… メディアでは、基本的にTerraformを使用 便利なツールであるものの、以下のような問題点も 複雑なことをやろうとすると可読性が落ちやすい あまり使われない言語であり、学習コストが高い 新規サービスを作るにあたり、これらを解消するため CDKを使うこととした
CDKに変えてよかったこと CDKに変えることで、以下の利点があった 複雑なことをやろうとすると可読性が落ちやすい → 複雑な処理でも可読性を保つことができる あまり使われない言語であり、学習コストが高い → 使い慣れた言語を使えるので、学習コストが低い ただし、別の問題もまた発生した… Terraform
CDK
CDKからCDK for TerraformへのReStart
CDKの問題点 CDKにも問題はあった CDK自体の学習コストがかかる CloudFormationの学習コストがかかる ドリフト周りが扱いづらい 特に3つめは、継続的にIaCで開発していく上ではかな り致命的に感じた そこで、まだリリース前だったこともありCDKTFに変 更することにした CloudFormation
CDK ドリフト
CDKTFに変えてよかったこと CDKTFに変えることで、以下の利点があった CloudFormationの学習コストがかかる → Terraformに知見があれば学習コストが小さい ドリフト周りが扱いづらい → ドリフトの対処が容易 CDKそのものの学習コストは掛かってしまう Terraform自体の懸念点考えると許容範囲か
HCLだと、複雑なことをしようとしたとき可読性が落ちる HCLの学習コストが高い CDK ドリフトの自動マージ
実際に使うツールとしてどれを 選ぶべきか
CDKTFにデメリットは無い のか? CDKTFにも以下のようなデメリットがある CDK自体の学習コストは掛かる Terraformの知見がなければ、Terraformの学習コ ストが掛かる v1になるまでは破壊的変更が起こる可能性がある 必ずしも「CDKTFが最強」というわけではないので注意 https://github.com/hashicorp/terraform-cdk https://developer.hashicorp.com/terraform/cdktf
(2024/02/14時点)
CloudFormation に知見がある Terraform に知見がある どちらにも知見がある/ ない シンプルなインフラ構成 CloudFormation Terraform 個人的にはTerraform
(ドリフトに有利) 複雑なインフラ構成 CDK CDKTF 個人的にはCDKTF (ドリフトに有利) どのサービスを選ぶべきか 上記以外にも、以下の方法が考えられる Webコンソールで管理する 上記以外のツールを使用する
最後に
最後に 今回のケースでは、以下のように使うツールを 変更した Terraform 1. CDK 2. CDKTF 3. ただし、これは開発対象の複雑さ・元々持ち合
わせていた知見などをもとに決めたもので、常 に最適とは限らない 状況に合わせ、適切な選択をするのが良い