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 initで生成されるあのファイル達は何なのか/cdk-init-generated-...
Search
tomoki10
July 12, 2025
Technology
1
980
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
AWS CDK Conference Japan 2025の登壇資料です。
https://jawsug-cdk.connpass.com/event/356357/
tomoki10
July 12, 2025
Tweet
Share
More Decks by tomoki10
See All by tomoki10
CDK Vibe Coding Fes
tomoki10
1
810
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
1
2.2k
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
2
3.6k
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
3.1k
AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜/jaws-days-2025-cdk-panel-discussion
tomoki10
0
140
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-introduction
tomoki10
9
2.8k
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
750
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
520
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
580
Other Decks in Technology
See All in Technology
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
150
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
360
AWSで始める実践Dagster入門
kitagawaz
1
570
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
220
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
430
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
150
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.2k
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
S3アクセス制御の設計ポイント
tommy0124
2
190
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
210
KotlinConf 2025_イベントレポート
sony
1
100
Skrub: machine-learning with dataframes
gaelvaroquaux
0
120
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
What's in a price? How to price your products and services
michaelherold
246
12k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
4 Signs Your Business is Dying
shpigford
184
22k
Agile that works and the tools we love
rasmusluckow
330
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Practical Orchestrator
shlominoach
190
11k
Writing Fast Ruby
sferik
628
62k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Six Lessons from altMBA
skipperchong
28
4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
cdk initͰੜ͞ΕΔ͋ͷϑΝΠϧୡԿͳͷ͔ ϏδωεςΫϊϩδʔ෦ 2025/07/12 ࠤ౻ஐथ
2 ࣗݾհ • 2020 Ϋϥεϝιουೖࣾ AWS CDK ར༻։࢝ɹ • 2021
AWS DevDayͰCDKӡ༻ϊϋհ • 2022 CDKࢧ෦্ཱͪ͛ • 2023 AWS CDK Conference Japan ։࠵ • 2024 AWS CDK Conference Japan ։࠵ • 2025 • AWS CDK Conference Japan ։࠵ • CDKͷຊॻ͍ͯΈͨ • ෦ॺ ◦ ϏδωεςΫϊϩδʔ෦ • ໊લʢχοΫωʔϜʣ ◦ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ
એ݉લϑϦɿAWS CDKͷຊॻ͍ͯΈͨ 3 ٕज़ॻయ18ͰCDKͷຊॻ͍ͯΈ·ͨ͠ʂ CDKࢧ෦ͷൃද͕٧·ͬͯ·͢ʂ͜Ε͔ΒCDK࢝ΊΔਓʂݟຊ͋ΔΑ @tmk2154 https://techbookfest.org/product/wEWtvT8aRZgzAcVSnE7wS8
͜Μͳձͯ͠ͳ͍Ͱ͔͢ʁ 4 ઌഐ ΤϯδχΞ δϡχΞ ΤϯδχΞ ઌഐɺCDKͷνϡʔτϦΞϧΈͯcdk initͨ͠Β ͳΜ͔ΊͬͪΌϑΝΠϧ࡞͞ΕͨΜͰ͚͢Ͳ ͜ΕͳΜͳΜ͔͢ʁ
͏ΘɺԿ͚ͩͬ͜Ε…ௐͨ͜ͱ͋Δ͚Ͳ ΕͪΌͬͨɻԿ͚ͩͬͳ͋… ͳΜ͔CDKΛྑ͍ײ͡ʹಈ͔ͨ͢ΊͷͭͩΑ
ࠓͷ 5 CDKͷຊͷதͰ͋͑ͯॻ͔ͳ͔ͬͨ ܅ͨͪԿऀͳͷʁ → ͜ͷࢿྉΛݟΕࢥ͍ग़ͤΔʢॳ/தڃऀʣ → ҙ֎ͱ༷૿͑ͯΔʂʢ্ڃऀʣ IaCͷ࣮Λॻ͘ͱ͜ΖͶ
࣍ • ͦΕͧΕͷϑΝΠϧ/σΟϨΫτϦͷհ • cdk.json • package.json • package-lock.json /
node_modules • jest.config.js • tsconfig.json • .gitignore/.npmignore 6
cdk.jsonͱ CDKͷίϚϯυ࣮ߦ࣌ͷΤϯτϦʔϙΠϯτwatchɺcontextͳͲίϚϯ ࣮ߦ࣌ͷύϥϝʔλͳͲΛཧ͢ΔͨΊͷϑΝΠϧ σϑΥϧτͰҎԼͷϓϩύςΟΛͭ 7
cdk.jsonͷappϓϩύςΟ cdk synthcdk deployίϚϯυ࣮ߦ࣌ʹͲͷϑΝΠϧΛಡΈࠐΉͷ͔Λܾఆ͢Δ ΤϯτϦʔϙΠϯτΛࢦఆ͢ΔϓϩύςΟ • npx … ϩʔΧϧʹΠϯετʔϧ͞ΕͨύοέʔδΛ༻ ҎԼࣄલτϥϯεύΠϧΛෆཁʹ͠ɺख࡞ۀʹΑΔ࣌ؒతϩεΛ͙ͨΊઃఆ※
• ts-node … TypeScriptͷϑΝΠϧΛίϯύΠϧͤͣʹ࣮ߦ • --prefer-ts-exts … ϞδϡʔϧͷΠϯϙʔτ࣌ʹɺJSΑΓTSϑΝΠϧΛ༏ઌ 8 ※https://github.com/aws/aws-cdk/pull/11470
cdk.jsonͷwatchϓϩύςΟ cdkίϚϯυͷwatchΦϓγϣϯΛ͏࣌ͷύϥϝʔλઃ ఆ͕Մೳ include … มߋݕ͢ΔϑΝΠϧ exclude … มߋݕ͔Βআ֎͢ΔϑΝΠϧ Watchͱಉ͡֊ͰbuildϓϩύςΟʹҙͷίϚϯυΛ
ઃఆ͢Δͱࣗಈ࣮ߦ͞ΕΔʢJavaͷϏϧυͳͲʣ 9 ࢀߟใɿhttps://aws.amazon.com/jp/blogs/news/increasing-development-speed-with-cdk-watch-jp/
cdk.jsonͷcontextϓϩύςΟ جຊCDKΞϓϦʹ͢Λཧ͢ΔͨΊͷϓϩύςΟ σϑΥϧτͰػೳϑϥά͕Έࠐ·Ε͍ͯΔɻύϥϝʔλมߋޡࣈमਖ਼ͳͲͰ CDKࣗମͷ࣮͕มߋ͞ΕΔ͕ɺҎલͷόʔδϣϯͱͷޓੑΛอͭͨΊʹؚ·ΕΔ 10 ৄ͘͠ɿhttps://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/cx-api/FEATURE_FLAGS.md
cdk.jsonͷଞͷϓϩύςΟ • build … Synthલʹ࣮ߦ͢ΔίϚϯυΛࢦఆʢྫɿLambdaʹೖΕΔJavaͷϏϧυʣ • toolkitStackName … BootstrapͰ࡞͞ΕΔStack໊ͷมߋ •
toolkitBucket … BootstrapͰ࡞͞ΕΔόέοτͷઃఆʢbucketNameɺkmsKeyIdʣ • versionReporting … CfnςϯϓϨʔτͷCDK࣮ߦόʔδϣϯͳͲͷهࡌͷON/OFF • pathMetadata … CfnςϯϓϨʔτͷMetadataͷaws:cdk:pathͷهࡌͷON/OFF • assetMetadata … CfnςϯϓϨʔτͷMetadataͷaws:asset:*ͷهࡌͷON/OFF • notices … ίϚϯυ࣮ߦ࣌ͷ੬ऑੑɺϦάϨογϣϯͳͲͷ௨ͷON/OFF • output … CfnςϯϓϨʔτͳͲͷग़ྗઌͷઃఆ ͳͲͳͲ 11 ࢀߟɿhttps://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#json-configuration-files ɹɹɹhttps://github.com/aws/aws-cdk-cli/blob/main/packages/aws-cdk/lib/cli/cli-config.ts
package.json Node.js ϓϩδΣΫτͷઃఆϑΝΠϧ • name … ϓϩδΣΫτ໊ʢ͢Δ߹༻ʣ • version …
ϓϩδΣΫτͷόʔδϣϯʢ͢Δ߹༻ʣ • bin … ΞϓϦΛCLI͔Β࣮ߦ͢Δ߹༻ʢجຊෆཁʣ • scripts … npm run **Ͱ࣮ߦͰ͖ΔεΫϦϓτͳͲΛઃఆ • devDependency … ։ൃ͚ͩʹඞཁͳύοέʔδΛઃఆ • dependency … ࣮ߦʹඞཁͳύοέʔδΛઃఆ 12 ࢀߟɿhttps://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin ɹɹɹhttps://dev.classmethod.jp/articles/remove-redundant-for-cdk-init/ …
package-lock.json/node_modules package-lock.jsonͱ package.jsonͰΠϯετʔϧ͢Δύοέʔδͱґଘ͢Δύο έʔδͷπϦʔߏΛهड़͠ɺਖ਼֬ͳόʔδϣϯใΛอଘ͠ ෳϢʔβڥͰಉ͡ґଘؔΛอূ͢Δ node_modulesͱ package.jsonͰهࡌ͞ΕͨύοέʔδͳͲ͕Πϯετʔϧ͞ ΕΔσΟϨΫτϦ 13 ࢀߟɿhttps://docs.npmjs.com/cli/v11/configuring-npm/package-lock-json
ɹɹɹhttps://docs.npmjs.com/cli/v11/configuring-npm/folders … package-lock.json
jest.config.js CDK͕σϑΥϧτͰ༻͢ΔςετϑϨʔϜϫʔΫͰ͋Δ JestͷઃఆΛཧ͢ΔͨΊͷϑΝΠϧ • module.exports … CommonJSܗࣜͷϞδϡʔϧΤΫεϙʔτߏจ • testEnvironment …
ςετ࣮ߦڥͷࢦఆɻNode.jsΛ༻ • roots …ςετରͱ͢ΔϑΝΠϧΛݕࡧ͢ΔσΟϨΫτϦΛࢦఆ • testMatch … ࣮ߦ͢ΔςετϑΝΠϧͷύλʔϯ໊Λࢦఆ • transform … ςετϑΝΠϧͷલॲཧΛࢦఆ ɹɹɹɹɹɹɹ .ts/.tsxϑΝΠϧΛts-jestͰτϥϯεύΠϧޙʹ࣮ߦ 14 ࢀߟɿhttps://archive.jestjs.io/docs/ja/22.x/configuration ESModuleͷมɿhttps://blog.serverworks.co.jp/2025/04/01/125304 …
tsconfig.json TypeScriptίϯύΠϥͷઃఆ ts-node/ts-jestͳͲͷπʔϧ͜ͷઃఆΛࢀর 15 ࢀߟɿhttps://www.typescriptlang.org/tsconfig/ ɹɹɹhttps://zenn.dev/uhyo/articles/blueberry-book-catchup … • compilerOptions …
ίϯύΠϧઃఆͷࢦఆ • target … ͲͷόʔδϣϯͷJavaScript͚ʹ͢Δ͔τϥϯεύΠϧ͢Δ͔ࢦఆ ྫɿES2022 ͩͱɺ ECMAScript 2022 ͷߏจͰग़ྗ • module … ϞδϡʔϧγεςϜͷࢦఆ ɹɹɹɹɹɹྫɿNodeNext ͩͱɺESModule αϙʔτʹ४ڌͨ͠ϞδϡʔϧγεςϜΛ༻ • moduleResolution … import ͷղܾํ๏ͷࢦఆɻNode.js ४ڌͷํࣜͳͲ • lib … Ͳͷඪ४ϥΠϒϥϦʢྫɿDOM, ES2022 ͳͲʣͷܕఆٛΛར༻Մೳʹ͢Δ͔Λࢦఆ • declaration … *.d.tsܕఆٛϑΝΠϧΛੜ • strict … ݫ֨ͳܕνΣοΫΦϓγϣϯΛ༗ޮԽ ͳͲͳͲ
.gitignore/.npmignore .gitignoreͱ Gitʹίϛοτ͠ͳ͍ϑΝΠϧΛઃఆ 16 … .npmignoreͱ npm publish͢Δ࣌ʹؚΊͳ͍ϑΝΠϧΛઃఆ ʢجຊϓϩδΣΫτͰͷ։ൃʹෆཁʣ
͜Ε͔Β͜Ε 17 ઌഐ ΤϯδχΞ δϡχΞ ΤϯδχΞ ઌഐɺCDKͷνϡʔτϦΞϧΈͯcdk initͨ͠Β ͳΜ͔ΊͬͪΌϑΝΠϧ࡞͞ΕͨΜͰ͚͢Ͳ ͜ΕͳΜͳΜ͔͢ʁ
ͳΜ͔ͦΜͳࢿྉ͋ͬͨͳ ͜ͷࢿྉݟͳ͕Β֬ೝͯ͠ΈΑ͏͔ʂ
ࢀߟ ݁ߏ͍Βͳ͍ϑΝΠϧهड़͋ΔͷͰɺ͜ͷࢿྉҰॹʹݟͯফͦ͏ʂ 18 … https://dev.classmethod.jp/articles/remove-redundant-for-cdk-init/