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移行術
Search
kawahara kenta
July 12, 2025
3
94
無理しない、着実にやりきるCDK移行術
AWS CDK Conference Japan 2025
kawahara kenta
July 12, 2025
Tweet
Share
More Decks by kawahara kenta
See All by kawahara kenta
AWS CDKを始める際に コミュニティの知見が大いに役立った話
kenpi13
1
56
Amazon Bedrock Flows使ってみた ローコードでお手軽生成AIフロー作成!
kenpi13
0
46
Step Functions冬休み復習! 直近アップデートと生成AIとの組み合わせ検証
kenpi13
1
71
エンジニアのための消す技術〜何かを生み出すエンジニアが消すことに向き合ってみよう〜
kenpi13
0
49
AWS認定試験12種取得して感じたこと
kenpi13
0
370
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Code Reviewing Like a Champion
maltzj
524
40k
Embracing the Ebb and Flow
colly
86
4.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
310
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Raft: Consensus for Rubyists
vanstee
140
7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
RailsConf 2023
tenderlove
30
1.1k
Code Review Best Practice
trishagee
69
19k
Optimizing for Happiness
mojombo
379
70k
Become a Pro
speakerdeck
PRO
29
5.4k
Transcript
ແཧ͠ͳ͍ɺண࣮ʹΓ͖ΔCDKҠߦज़ 2025.07.12 AWS CDK Conference Japan 2025 KDDI ΞδϟΠϧ։ൃηϯλʔ ݪ݈ଠ
KDDI Agile Development Center Corporation 2 • ໊લɿݪ݈ଠʢkenpiʣ • ॴଐɿKDDIΞδϟΠϧ։ൃηϯλʔʢKAGʣ
◦ ԬαςϥΠτΦϑΟε ◦ ιϑτΣΞΤϯδχΞ • Xɿkenpi1313 • ҰݴɿԬݝ͔Βདྷ·ͨ͠ʂ ࣗݾհ KDDIΞδϟΠϧ։ൃηϯλʔ ެࣜΩϟϥ ΧάΧάʢԬ൛ʣ
KDDI Agile Development Center Corporation 3 CDKҠߦ
KDDI Agile Development Center Corporation 4 Serverless FrameworkͰ࡞͍ͯͨ͠AWSϦιʔεʢελοΫʣΛCDKʹҠߦͨ͠ ࠓճͷҠߦέʔεʢྫʣ
KDDI Agile Development Center Corporation 5 CDK Migrate
KDDI Agile Development Center Corporation 6 طଘͷCloudFormationςϯϓϨʔτɾඇIaCཧͷطଘͷAWSϦιʔεΛ CDKϓϩδΣΫτʹมɾҠߦ͢ΔίϚϯυ CDK Migrateͱʁ
KDDI Agile Development Center Corporation 7 cdk migrateίϚϯυ࣮ߦޙɺϩʔΧϧڥʹCDKΞϓϦέʔγϣϯίʔυ͕ੜ͞ΕΔ CDK Migrateͱʁ
KDDI Agile Development Center Corporation 8 cdk migrateίϚϯυͷΦϓγϣϯ cdk migrate
–from-stack –stack-name “hogeStack” cdk migrate –from-path “./template.json” –stack-name “hogeStack” cdk migrate –from-scan –stack-name “hogeStack” cdk importίϚϯυͱͷҧ͍ CloudFormationςϯϓϨʔτɾελοΫΛ৽نCDKϓϩδΣΫτʹҠߦ ←migrate ϦιʔεΛطଘCDKϓϩδΣΫτʹΠϯϙʔτ ←import CDK Migrateͱʁ
KDDI Agile Development Center Corporation 9 ແཧ͠ͳ͍ɺண࣮ͳҠߦज़
KDDI Agile Development Center Corporation 10 ແཧ͠ͳ͍ɺண࣮ͳҠߦज़ • ҠߦݕূςετελοΫΛ׆༻͢Δ •
ڥมͷΓग़͠࡞ۀΛແཧ͠ͳ͍ • L2 Constructͷॻ͖͑Λແཧ͠ͳ͍
KDDI Agile Development Center Corporation 11 ҠߦݕূςετελοΫΛ׆༻͢Δ
KDDI Agile Development Center Corporation 12 Ҡߦͷεςοϓ cdk migrate cdk
diff cdk synth cdk deploy CDKίʔυੜ मਖ਼ɾࠩ֬ೝ σϓϩΠʢҠߦʣ
KDDI Agile Development Center Corporation 13 ϓϩδΣΫτʹෳڥ͕ଘࡏ ։ൃ ݕূ ຊ൪
KDDI Agile Development Center Corporation 14 ։ൃϑϩʔʹCDKҠߦσϓϩΠͯ͠େৎʁ ։ൃ ݕূ ຊ൪
ଞͷ։ൃʹ Өڹ༩͑ͨΒͲ͏͠Α͏...
KDDI Agile Development Center Corporation 15 ҠߦσϓϩΠ࣌ͷϦεΫͱରॲ ҠߦσϓϩΠʹෆ͕͖҆ͭͷ ج൫෦ͷΠϯϑϥ͕͠յΕͯ͠·ͬͨΒ...? ฒߦͰಈ͍͍ͯΔଞͷ։ൃࢭΊͯ͠·͏ϦεΫ͕͋Δ
͓ࢼ͠ͰҠߦσϓϩΠݕূͯ͠Έ͍ͨ Ҡߦ࣌ͷಈ࡞֬ೝΛߦ͍͍ͨ ͍ࣺͯͷڥʢελοΫʣΛ࡞Ε͍͍ͷͰɾɾɾʁ ؆୯ʹڥΛ࡞ΕΔͷ͕IaCͷͦͦͷϝϦοτ
KDDI Agile Development Center Corporation 16 ͓ࢼ͠Ͱ͖ΔҠߦݕূελοΫΛ࡞ ։ൃ ݕূ ຊ൪
Կ͔ࣦഊͯ͠ ։ൃϑϩʔʹӨڹΛ༩͑ͳ ͍͔Β҆৺ͩ... Ҡߦ
KDDI Agile Development Center Corporation 17 ڥมͷΓग़͠࡞ۀΛແཧ͠ͳ͍
KDDI Agile Development Center Corporation 18 CDK contextΦϓγϣϯΛ༻͍ͨڥઃఆϑΝΠϧʢ.tsʣͷ׆༻ͱڥมͷೖ CDK ContextΛ༻͍ͨڥมͷઃఆɾཧ
։ൃ ݕূ ຊ൪ env → dev env → stg env → prd
KDDI Agile Development Center Corporation 19 ڥมͷઃఆΛҠߦʹࠞͥΔͱͲ͏ͳΔʁ cdk migrateޙͷίʔυ ڥมʹΓग़͍ͨ͠ઃఆϕλॻ͖ͷঢ়ଶͰੜ͞ΕΔɻ
ڥมઃఆϑΝΠϧΛ࡞Δ dev, stg, prd Ͱׂ͠ɺϕλॻ͖ͷίʔυΛมԽ͢Δमਖ਼Λߦ͏ɻ CDKҠߦ࣌ͷࠩͱมઃఆͷϛεͰى͖͏Δ͕ࠩࠞ͟Δ L1ConstructΛL2ConstructʹҠߦ͢Δࡍͷࠩͱࠞ͟ΔͱΑΓհɻϛεͷݪҼٴʹί ετ͕͔͔Δɻ
KDDI Agile Development Center Corporation 20 ڥมͷઃఆΛҠߦʹࠞͥΔͱͲ͏ͳΔʁ cdk migrateޙͷίʔυ ڥมʹΓग़͍ͨ͠ઃఆϕλॻ͖ͷঢ়ଶͰੜ͞ΕΔɻ
ڥมઃఆϑΝΠϧΛ࡞Δ dev, stg, prd Ͱׂ͠ɺϕλॻ͖ͷίʔυΛมԽ͢Δमਖ਼Λߦ͏ɻ CDKҠߦ࣌ͷࠩͱมઃఆͷϛεͰى͖͏Δ͕ࠩࠞ͟Δ L1ConstructΛL2ConstructʹҠߦ͢Δࡍͷࠩͱࠞ͟ΔͱΑΓհɻϛεͷݪҼٴʹί ετ͕͔͔Δɻ ॳճҠߦ࣌͋Δఔͷϕλॻ͖Λڐ༰ͯ͠PRΛ࠷খݶʹ
KDDI Agile Development Center Corporation 21 L2Constructͷॻ͖͑Λແཧ͠ͳ͍
KDDI Agile Development Center Corporation 22 CDKҠߦͱL1ɾL2Construct cdk migrateίϚϯυ࣮ߦޙͷίʔυ L1ConstructͰ࡞͞ΕΔ
L1ConstructͱL2Constructͷൺֱ ֤ઃఆΛݸผʹॻ͘ඞཁ͕͋ΓɺͳL1Construct దʹநԽ͞Εɺίʔυྔ͕গͳ͍L2Construct L2ͷํ͕ਪ͞Ε͍ͯΔ...͕... Ҡߦ࣌ɺL1ConstructͷίʔυΛL2ConstructʹͰ͖Δ͚ͩॻ͖ͯ͠σϓϩΠΛࢼΈ͕ͨɺେมͰͨ͠....
KDDI Agile Development Center Corporation 23 L1͔ΒL2ʹҠߦ͢ΔͬͯͲΜͳײ͡ʁ
KDDI Agile Development Center Corporation 24 L1͔ΒL2ͷҠߦεςοϓ ᶃ L1ͷίʔυΛಡΉ ʮͳΔ΄Ͳ...͜͏͍͏Ϧιʔε͕͋ͬͯ͜Μͳઃఆʹͳ͍ͬͯΔͷ͔...ʯ
ᶄ L2ʹॻ͖͑Δ ʮAIͷྗआΓͳ͕ΒL2ʹॻ͖͑Α͏ʂʯ ᶅ CDK ReferenceΛݟͯ֬ೝɾमਖ਼ ʮ͜ΕͰ߹ͬͯΔ͔ͳʁReferenceݟΑ͏ʯ ᶅ difftestͰੜΛ֬ೝɾमਖ਼ ʮ͜ΕͰ߹ͬͯΔ͔ͳʁdifftestΛࢼͯ͠ΈΑ͏ʯ
KDDI Agile Development Center Corporation 25 L1͔ΒL2ͷҠߦεςοϓ ᶃ L1ͷίʔυΛಡΉ ʮͳΔ΄Ͳ...͜͏͍͏Ϧιʔε͕͋ͬͯ͜Μͳઃఆʹͳ͍ͬͯΔͷ͔...ʯ
ᶄ L2ʹॻ͖͑Δ ʮAIͷྗआΓͳ͕ΒL2ʹॻ͖͑Δ͔ʂʯ ᶅ CDK ReferenceΛݟͯ֬ೝɾमਖ਼ ʮ͜ΕͰ߹ͬͯΔ͔ͳʁReferenceݟΑ͏ʯ ᶅ difftestͰੜΛ֬ೝɾमਖ਼ ʮ͜ΕͰ߹ͬͯΔ͔ͳʁdifftestΛࢼͯ͠ΈΑ͏ʯ ॻ͖͑࡞ۀΛϦιʔε ·ͨɺαʔϏεछྨ Δඞཁ͕͋Γ·͢🥺 ͱͯେมɾɾɾ
KDDI Agile Development Center Corporation 26 ཧIDͷஔ͖͑ʹؾΛ͚ͭΔ L1ConstructΛL2Constructʹஔ͖͑ΔࡍɺཧID͕มΘΔ cdk deploy࣌৽͍͠ϦιʔεΛ࡞͠Α͏ͱ͢Δಈ͖ʹͳΔ
ʢྫʣCognito UserPoolClient UserPoolClient2F5918F7 ←ϋογϡ͕༩ L1͔ΒL2ͷҠߦͰؾΛ͚ͭΔ͜ͱ
KDDI Agile Development Center Corporation 27 ཧIDͷஔ͖͑ʹؾΛ͚ͭΔˠରॲ๏ ΤεέʔϓϋονΛߦ͍ɺoverrideLogicalIdΛ༻ͯ͠ཧIDͷஔ͖͑Λ͙ L1͔ΒL2ͷҠߦͰؾΛ͚ͭΔ͜ͱ
KDDI Agile Development Center Corporation 28 L1͔ΒL2ͷҠߦͰؾΛ͚ͭΔ͜ͱ ୯ҐɺྻͷཁૉฒͼॱͷࠩʹؾΛ͚ͭΔ L1→L2࣌ʹ୯Ґྻͷཁૉͷฒͼସ͑Ͱ͕ࠩൃੜ͠ɺ໎͍͍͢ CDK
Duration༻࣌୯Ґͷࠩ ཁૉͷॱ൪͚ͩมΘ͍ͬͯΔ
KDDI Agile Development Center Corporation 29 L1͔ΒL2ͷҠߦେม • 1ʹશͯΛL2ʹॻ͖͑ΔͷϦιʔεྔ͕ଟ͍ͱେม •
Ϧιʔεͷஔ͖͑ʹؾΛ͚ͭΔඞཁ͕͋Δ • Constructมߋ࣌ͷࡉ͔͍͕ࠩੜͯ͡໎͍͍͢
KDDI Agile Development Center Corporation 30 L1͔ΒL2ͷҠߦେม • 1ʹશͯΛL2ʹॻ͖͑ΔͷϦιʔεྔ͕ଟ͍ͱେม •
Ϧιʔεͷஔ͖͑ʹؾΛ͚ͭΔඞཁ͕͋Δ • Constructมߋ࣌ͷࡉ͔͍͕ࠩੜͯ͡໎͍͍͢ ࠷ॳ͔ΒແཧʹL2ʹॻ͖͑ͳ͍͍ͯ͘ɺ ςετΛॆ࣮ͤ͞ɺখ͘͞খ͘͞ஈ֊తʹҠߦ͍ͯ͜͠͏
KDDI Agile Development Center Corporation 31 ·ͱΊ
KDDI Agile Development Center Corporation 32 ແཧ͠ͳ͍ண࣮ͳҠߦज़ • ҠߦݕূςετελοΫΛ׆༻͢Δ •
ڥมͷΓग़͠࡞ۀΛແཧ͠ͳ͍ • L2 Constructͷॻ͖͑Λແཧ͠ͳ͍
KDDI Agile Development Center Corporation 33 ແཧ͠ͳ͍ண࣮ͳҠߦज़ • ҠߦݕূςετελοΫΛ׆༻͢Δ •
ڥมͷΓग़͠࡞ۀΛແཧ͠ͳ͍ • L2 Constructͷॻ͖͑Λແཧ͠ͳ͍ ಛʹ͍͑ͨͷ͜͜ʂ࠷ॳL1Ͱ͍͍ʂ ·ͣҠ͠ସ͑Δ͜ͱʹूதʂ ࠓޙͷσϦόϦʹܨ͛ΒΕΔΑ͏ςετίʔ υCI/CDΛ࡞͓͚ͬͯΔͱ˕
KDDI Agile Development Center Corporation 34 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ