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
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-int...
Search
tomoki10
March 13, 2025
Technology
9
2.8k
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-introduction
「JAWS-UG東京 IaC Night 〜入門から上級まで!AWSをコードで構築しよう〜」で発表した内容です
https://jawsug.connpass.com/event/344954/
tomoki10
March 13, 2025
Tweet
Share
More Decks by tomoki10
See All by tomoki10
CDK Vibe Coding Fes
tomoki10
1
800
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
950
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
0
2k
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
2
3.5k
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
3k
AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜/jaws-days-2025-cdk-panel-discussion
tomoki10
0
140
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
730
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
510
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
580
Other Decks in Technology
See All in Technology
あとはAIに任せて人間は自由に生きる
kentaro
3
1.1k
Devinを使ったモバイルアプリ開発 / Mobile app development with Devin
yanzm
0
190
アジャイルテストで高品質のスプリントレビューを
takesection
0
120
第4回 関東Kaggler会 [Training LLMs with Limited VRAM]
tascj
12
1.8k
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
130
制約理論(ToC)入門
recruitengineers
PRO
3
310
あなたの知らない OneDrive
murachiakira
0
240
モバイルアプリ研修
recruitengineers
PRO
3
260
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
270
[OCI Skill Mapping] AWSユーザーのためのOCI(2025年8月20日開催)
oracle4engineer
PRO
2
150
RAID6 を楔形文字で組んで現代人を怖がらせましょう(実装編)
mimifuwa
1
310
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
130
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
The Language of Interfaces
destraynor
160
25k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
A Tale of Four Properties
chriscoyier
160
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Transcript
͍·͔Β࢝ΊΔAWS CDK ʙϞμϯͳΠϯϑϥߏஙೖʙ ϏδωεςΫϊϩδʔ෦ 2025/03/13 ࠤ౻ஐथ
2 ࣗݾհ • 2020 Ϋϥεϝιουೖࣾ AWS CDK ར༻։࢝ɹ • 2021
AWS DevDayͰCDKӡ༻ϊϋհ • 2022 CDKࢧ෦্ཱͪ͛ • 2023 AWS CDK Conference Japan ։࠵ • 2024 AWS CDK Conference Japan ։࠵ • 2025 • CDKࢧ෦ ఆظΠϕϯτ։࠵ 20ճ(༧ఆ) • AWS CDK Conference Japan։࠵(༧ఆ) • ෦ॺ ◦ ϏδωεςΫϊϩδʔ෦ • ໊લʢχοΫωʔϜʣ ◦ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ
࣍ ⚫ ࣗݾհ ⚫ AWS CDKΛ͓͢͢Ί͢Δഎܠ ⚫ AWS CDKͱԿ͔ʁ ⚫
CDKͷ࣮ྫ ⚫ CDKͷར ⚫ AWS CDKͷ֓೦ͱ۩ମతͳಈ͖ 3 AWS Cloud Development Kit (AWS CDK)
ొஃͷલʹ AWS CDKͷೖతͳ༰ʹཹΊ͍ͯ·͢ɻ͠ൃలతͳ༰͕ฉ͖͍ͨ߹ ҎԼͷಈըࢿྉΛݟ͍ͯͩ͘͞ 4 https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-CDK-Basic-2-Features_0831_v1.pdf
ϞμϯͬͯԿͩΑʁ 5
ϞμϯͬͯԿͩΑʁ →ݱతͰ͋Δ͜ͱɻࠓ෩Ͱ͠ΌΕ͍ͯΔ͜ͱɻ ʢσδλϧେࣙઘΑΓʣ 6
7 ࣗݾհ • 2016~2020 SIer ࡏ੶ • 2020 Ϋϥεϝιουೖࣾ AWS
CDK ར༻։࢝ɹ • 2021 AWS DevDayͰCDKӡ༻ϊϋհ • 2022 CDKࢧ෦্ཱͪ͛ • 2023 AWS CDK Conference Japan ։࠵ • 2024 AWS CDK Conference Japan ։࠵ • 2025 • CDKࢧ෦ ఆظΠϕϯτ։࠵ 20ճ(༧ఆ) • AWS CDK Conference Japan։࠵(༧ఆ) • ෦ॺ ◦ ϏδωεςΫϊϩδʔ෦ • ໊લʢχοΫωʔϜʣ ◦ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ
։ൃऀ ΠϯϑϥมߋͷྲྀΕ 8 ΤϯλʔϓϥΠζͳݱͷ߹ AWS CDKΛϑϧ׆༻Ͱ͖Δ߹ ϝʔϧ Πϯϑϥ୲ऀ ސ٬୲ऀ खॱॻ࡞
Πϯϑϥ୲ऀ ঝೝ ϨϏϡʔ ࣮ߦ ։ൃऀ ։ൃऀ มߋ PR࡞ ϨϏϡʔ ґཔ ϨϏϡʔ ྃ ϨϏϡʔ ґཔ ސ٬୲ऀ CD͔ΒσϓϩΠ ঝೝ
։ൃऀ ΠϯϑϥมߋͷྲྀΕ 9 ΤϯλʔϓϥΠζͳݱͷ߹ AWS CDKΛϑϧ׆༻Ͱ͖Δ߹ ϝʔϧ Πϯϑϥ୲ऀ ސ٬୲ऀ खॱॻ࡞
Πϯϑϥ୲ऀ ঝೝ ϨϏϡʔ ࣮ߦ ։ൃऀ ։ൃऀ มߋ PR࡞ ϨϏϡʔ ґཔ ϨϏϡʔ ྃ ϨϏϡʔ ґཔ ސ٬୲ऀ CD͔ΒσϓϩΠ ঝೝ ͜͜ͷੈքΛઌʹΔʂ
AWS CDKͱ ϓϩάϥϛϯάݴޠͰAWSΠϯϑϥΛߏஙͰ͖Δ πʔϧ/αʔϏε • ΠϯϑϥߏΛTypeScript/JavaScript, Python, Java, C#, GoͰهड़
• AWSϦιʔεҰ෦SaaSΛίʔυͰهड़ ͠ཧ • LambdaECSσϓϩΠ͢ΔΞϓϦίʔυ ·ͱΊͯཧσϓϩΠՄೳ • Open Source SoftwareͳͷͰ࣮ͷৄࡉ ιʔεϨϕϧͰ֬ೝՄೳ 10 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
CDKͷछྨ CfnςϯϓϨʔτͳͲ Λੜ͠ΫϥυΠϯ ϑϥڥΛίʔυཧ AWSϦιʔεҰ෦ SaaSΛநԽͯ͠ ཧ TerraformςϯϓϨʔ τΛੜ͠ɺΫϥυ ΠϯϑϥڥΛίʔυ
ཧ AWSଞCSPɺSaaS ΛநԽͯ͠ཧ k8sϚχϡϑΣετΛ ੜ͠ɺk8sڥΛख ଓ͖ܕͷॻ͖ํͰཧ k8sΛίʔυͰཧ 11 "84$%, ↑ࠓ͜͜ͷʂ
AWS CDKͷίʔυྫ 12 ίʔυྫ ࡞͞ΕΔϦιʔεʢҰ෦ʣ
AWS CDKΛଞIaCͱൺͨ߹ͷར/ܽ 13 • ར • YAMLJSONɺDSLͰͳ͘ϓϩάϥϛϯάݴޠͰΠϯϑϥΛఆٛͰ͖ΔͨΊϓϩάϥ Ϛʔʹͱֶͬͯशίετ͕͍ • ܕ҆શੑʹΑΔίʔυิʹΑͬͯࣄલݕূ͕༰қ
• ੜAI࣌Ͱ੩తܕ͚ʹΑΔܕ҆શੑνΣοΫͱͯ͠༗ޮ • ΞϓϦͷίʔυΠϯϑϥͱ·ͱΊͯཧ/ςετ/σϓϩΠՄೳ • ܽ • ࠔͬͨࡍʹֶश͖͢༰͕ൺֱతଟ͍ɺෳࡶԽ͍͢͠ͳͲ
AWS CDKͷ֓೦ਤ 14 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html • App • ΞϓϦέʔγϣϯͷ୯Ґ • σϓϩΠͷΤϯτϦʔϙΠϯτ
• Stack(s) • CloudFormationͷStack୯Ґ • σϓϩΠ୯Ґͷ࠷খ • Construct • AWSϦιʔεΛ࣮͢Δ୯Ґ • ެࣜ/ಠࣗͰ֦ுɺෳϦιʔεཧՄೳ
AWS CDKͷApp/Stack෦ 15 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html App Stack
AWS CDKͷApp෦ 16 Iac-night-demo.ts App Stack
AWS CDKͷStack/Construct෦ 17 Iac-night-demo-stack.ts Stack Construct
Constructͷछྨ 18 Amazon SQS Amazon SQS L1 Construct … CloudFormationͷύϥϝʔλͱ1:1Ͱੜ
L2 Construct … L1ΛநԽͯ͠ར༻࣮͘͢͠ L3 Construct … L2Λ͞Βʹ֦ு࣮ͨ͠ͷ ɹˢSQSͱAPIGatewayΛΈ߹ΘͤͯੜͰ͖Δྫ
AWS CDKͷCloud Assembly෦ 19 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
AWS CDKͷCloud Assembly෦ 20 IacNightDemoStack.template.json https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
ʢ͓·͚ʣCloud Assemblyͷগ͠հ 21 • {Stack໊}.template.json • CDK͕ੜͨ͠CloudFormationςϯϓϨʔτ • {Stack໊}.assets.json •
LambdaͷίʔυͳͲΞηοτͷσϓϩΠઌɺύοέʔδϯάํ๏ͳͲͷఆٛ • manifest.json • ֤ελοΫΛσϓϩΠ͢Δࡍͷϩʔϧ࠷ݶඞཁͳBootstrapόʔδϣϯͳͲΛཧ • tree.json • Construct TreeͷߏΛJSONͰग़ྗͨ͠ϑΝΠϧʢStack→Construct→ࢠConstruct…ʣ
AWS CDKͷϢʔβ͔Βݟͨಈ͖ 22 Client CI/CD Env Source code AWS CloudFormation
AWS account OR AWS CDK AWS Lambda Amazon API Gateway Stack (Resource State) Generate $ npx cdk deploy
AWS CDKͷཪଆͷجຊతͳಈ͖ 23 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets IacNightDemoStack.template.json
AWS CDKͷཪଆͷجຊతͳಈ͖ 24 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets AWS account S3 Bucket 2.Upload
AWS CDKͷཪଆͷجຊతͳಈ͖ 25 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account S3 Bucket 2.Upload 3.Deploy
AWS CDKͷཪଆͷجຊతͳಈ͖ 26 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Cfn Template S3 Bucket 3.Deploy 4.Pull 2.Upload
AWS CDKͷཪଆͷجຊతͳಈ͖ 27 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Stack (Resource State) Cfn Template S3 Bucket 3.Deploy 5.Generate 4.Pull 2.Upload
AWS CDKͷཪଆͷجຊతͳಈ͖ 28 Client CI/CD Env Source code OR AWS
CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Stack (Resource State) Cfn Template S3 Bucket 3.Deploy 5.Generate AWS Lambda Amazon API Gateway 6.API Call 4.Pull 2.Upload
AWS CDKͷϢʔβ͔Βݟͨಈ͖ 29 Client CI/CD Env Source code AWS CloudFormation
AWS account OR AWS CDK AWS Lambda Amazon API Gateway Stack (Resource State) Generate $ npx cdk deploy
AWS CDKʹڵຯ͕ग़͖ͯͨํ 30 https://jawsug-cdk.connpass.com/ ͥͻJAWS-UG CDKࢧ෦ʹࢀՃΛʂ࣍ճ4/1༧ఆʂ
AWS CDKʹڵຯ͕ग़͖ͯͨํ̎ 31 ٕज़ॻయ18(6/1)ͰCDKͷຊग़͢༧ఆͰ͢ʂݱࡏࣥචத📝 CDKͷॳڃऀ͕ܧଓ։ൃ/ӡ༻Ͱ͖ΔΑ͏ʹͳΔ·ͰͷεςοϓΛ·ͱΊ·͢ʂ @tmk2154
·ͱΊ 32 • AWS CDKͷརʹֶ͍ͭͯश • ੩తܕʹΑ࣮ͬͯݕ͕ࠪ༰қͰ͍͍͢ • AWS CDKͷσϓϩΠͷྲྀΕΛΔ
• App/Stack/Constructͱ͍͏جຊతͳAWS CDKͷߏΛհ • cdk deployͷཪଆͰى͍ͬͯ͜Δಈ࡞Λ֬ೝ