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.6k
いまから始める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
Devin(Deep) Wiki/Searchの活用で変わる開発の世界観/devin-wiki-search-impact
tomoki10
0
880
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
2.9k
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
2.6k
AWS CDKの歴史と未来について語る会〜日本発のグローバルコントリビューション〜/jaws-days-2025-cdk-panel-discussion
tomoki10
0
110
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
600
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
450
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
530
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
710
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
1.4k
Other Decks in Technology
See All in Technology
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
9
2.3k
ローカルLLMでファインチューニング
knishioka
0
130
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
2
250
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
400
A2Aのクライアントを自作する
rynsuke
1
160
OpenHands🤲にContributeしてみた
kotauchisunsun
0
270
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
11
4.3k
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.4k
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
390
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
0
160
VCpp Link and Library - C++ breaktime 2025 Summer
harukasao
0
220
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Documentation Writing (for coders)
carmenintech
71
4.9k
Designing Experiences People Love
moore
142
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How STYLIGHT went responsive
nonsquared
100
5.6k
Site-Speed That Sticks
csswizardry
10
650
The Language of Interfaces
destraynor
158
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
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ͷཪଆͰى͍ͬͯ͜Δಈ࡞Λ֬ೝ