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
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-l...
Search
Satoshi SAKAO
May 15, 2023
Technology
1
280
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
社内のLTイベント「えるLT Vol.29 オンライン」で発表した資料です
Satoshi SAKAO
May 15, 2023
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
56
Pkl/2024-04-17-llt31
ottijp
0
84
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
160
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
160
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
170
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
150
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
88
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
100
ncurses/2021-05-12-llt21
ottijp
0
210
Other Decks in Technology
See All in Technology
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
3
250
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
720
【CEDEC2025】ブランド力アップのためのコンテンツマーケティング~ゲーム会社における情報資産の活かし方~
cygames
PRO
0
240
Tableau API連携の罠!?脱スプシを夢見たはずが、逆に依存を深めた話
cuebic9bic
3
210
Jamf Connect ZTNAとMDMで実現! 金融ベンチャーにおける「デバイストラスト」実例と軌跡 / Kyash Device Trust
rela1470
0
150
いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか(改)
nullpo_head
2
150
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
190
Google Cloud で学ぶデータエンジニアリング入門 2025年版 #GoogleCloudNext / 20250805
kazaneya
PRO
14
3.1k
LLMでAI-OCR、実際どうなの? / llm_ai_ocr_layerx_bet_ai_day_lt
sbrf248
0
430
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
5
380
Unson OS|48時間で「売れるか」を判定する AI 市場検証プラットフォーム
unson
0
170
SRE新規立ち上げ! Hubbleインフラのこれまでと展望
katsuya0515
0
160
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Balancing Empowerment & Direction
lara
1
530
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Statistics for Hackers
jakevdp
799
220k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Code Reviewing Like a Champion
maltzj
524
40k
Transcript
CDK for TerraformでAzureリソースをデプロイする Satoshi SAKAO えるLT Vol.29 2023-05-15 1
話すひと 2 🏢 インフォコム株式会社 サービスマネジメント室 👨🔧 ソフトウェアエンジニア 🛠 Node.js /
AWS / IoT / iOS (Swift) / Linux 💖 猫,テクテクライフ(ランク: 26) Satoshi SAKAO @ottijp
3 https://gmedia.playstation.com/is/image/SIEPDC/death-stranding-screen-us-11jun18-8?$2400px$
CDK is 何 • Cloud Development Kit • AWS製OSS •
CloudFormationテンプレートへのトランスパイラ 4 https://speakerdeck.com/ottijp/2022-03-23-llt25
CDKの位置付け 5 TypeScript | Python | Java | C# |
Go CDK for tf HCL JSON AWS Azure GCP etc AWS CDK CloudFormation ARM CRDs Deployment Mgr Bicep Terraform Cloud Resource IaC Hi-Level IaC Bicep JSON SAM YAML JSON entity process YAML
CDK for tf • DSLを新しく覚えることなく,使いなれたPG言語で クロスクラウドのIaCが可能. • コード補完 •
プロシージャルな処理 • モジュール化による複雑な構成への対応力 • まだα板で,ブレイキングチェンジが起こりうるので注意. 6 https://developer.hashicorp.com/terraform/cdktf#when-to-use-cdk-for-terraform
準備 7 $ npm install -g cdktf-cli $ cdktf init
--template=typescript --providers=azurerm --local
構成 8
コードの例(一部) 9 import { Construct } from 'constructs'; import {
App, TerraformStack } from 'cdktf'; import { AzurermProvider } from '@cdktf/provider-azurerm/lib/provider' import { ResourceGroup } from '@cdktf/provider-azurerm/lib/resource-group' import { VirtualNetwork } from '@cdktf/provider-azurerm/lib/virtual-network' import { Subnet } from '@cdktf/provider-azurerm/lib/subnet' import { NetworkInterface } from '@cdktf/provider-azurerm/lib/network-interface' import { PublicIp } from '@cdktf/provider-azurerm/lib/public-ip' import { LinuxVirtualMachine } from '@cdktf/provider-azurerm/lib/linux-virtual-machine' class AzureAppInfra extends TerraformStack { constructor(scope: Construct, name: string) { super(scope, name); new AzurermProvider(this, 'AzureRm', { features: {}, }) …
出力されるHCL(一部) 10 { "//": { "metadata": { "backend": "local", "stackName":
"llt", "version": "0.16.1" }, "outputs": { } }, "provider": { "azurerm": [ { "features": { } } ] }, "resource": { "azurerm_linux_virtual_machine": { "web-server": { "//": { …
デプロイ 11 $ cdktf deploy
まとめ • CDK for Terraformを利用することで AWS以外のクラウドリソースのデプロイにCDKが利用できる. • CDK for
TerraformはHCLへのトランスパイラ. • まだα版でブレイキングチェンジが起こりうるので注意. • 本当にそのプロダクトで使うべきかどうかはよく考えること. 12
13 Appendix
CDK for tfでAzureリソースをデプロイする • 環境 • terraform: v1.4.6 • cdktf:
v0.16.1(α版) • azure-cli: 2.48.1 • 前提条件 • Node(npm)がインストールされている • Terraform CLIがインストールされている • Azure CLIがインストールされていてログインしている 14
Refs • Building Azure Resources with TypeScript Using the CDK
for Terraform • https://www.hashicorp.com/blog/building-azure-resources-with-typescript-using- the-cdk-for-terraform • CDK for Terraform | Terraform | HashiCorp Developer • https://developer.hashicorp.com/terraform/cdktf • AWSインフラのデプロイをCDKでカイゼンする/2022-03-23- llt25 - Speaker Deck • https://speakerdeck.com/ottijp/2022-03-23-llt25 15