Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CDKの仕組み / how-aws-cdk-works

Avatar for k.goto k.goto
July 10, 2025

AWS CDKの仕組み / how-aws-cdk-works

2025/07/12開催「AWS CDK Conference Japan 2025」での登壇資料です。

Avatar for k.goto

k.goto

July 10, 2025
Tweet

More Decks by k.goto

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ LHPUP "84)&30 "84$%,ίϯτϦϏϡʔλʔ 0QFO$POTUSVDUT-JCSBSZ ίϛϡχςΟۦಈ$%,$POTUSVDUϥΠϒϥϦ "84πʔϧ DMT EFMTUBDL MBNWFS

    "84%FW5PPMT)FSP .BJOUBJOFS 5PQ$POUSJCVUPS $PNNVOJUZ3FWJFXFS ࣗ࡞044 $%,$POTUSVDUϥΠϒϥϦ 9!@TUFQ@UFDI (JU)VC!HPUPL
  2. $%,$-* EFQMPZ TZOUI EJ f MJTU XBUDI ESJGU DPOUFYU EPDUPS

    EPDT CPPUTUSBQ SFGBDUPS SPMMCBDL JNQPSU HD JOJU NJHSBUF ɾɾɾ
  3. $%,"QQ 4UBDL $POTUSVDU 4UBDL "QQ 3FTPVSDF 3FTPVSDF $POTUSVDU 3FTPVSDF 3FTPVSDF

    3FTPVSDF $POTUSVDU 3FTPVSDF 3FTPVSDF 3FTPVSDF $POTUSVDU
  4. $%,$-* $%,"QQ $%,࣮૷ $%,ίϚϯυ ߹੒ TZOUI σϓϩΠ "84$%,ͱ͸ʁ  ϑΝΠϧΞηοτ

     $MPVE'PSNBUJPO ςϯϓϨʔτ Ϗϧυ ίʔυ %PDLFS fi MF όϯυϧ  ΠϝʔδΞηοτ Ξοϓϩʔυ Ξοϓϩʔυ
  5. $%,$-*DPOGJHಡΈࠐΈ w ֤छઃఆϑΝΠϧͱίϚϯυϥΠϯҾ਺͔ΒDPOUFYUͳͲΛऔಘ ‣ dDELKTPO ‣ DELKTPO ‣ DELDPOUFYUKTPO ‣

    DELEFQMPZD999"#$ w DPOUFYUͱ͸ ‣ $%,ΞϓϦͷ߹੒ಈ࡞Λ੍ޚ͢ΔͨΊͷઃఆ஋  ࣗ༝ͳΩʔ஋ɺػೳϑϥάɺ$-*༻ઃఆɺ"84؀ڥ৘ใ
  6. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$
  7. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ ࢠϓϩηε࣮ߦ
  8. $%,"QQ$POTUSVDUϑΣʔζ w DPOUFYUϝιου GSPN-PPLVQϝιου  ‣ DPOUFYUϝιου $%,"QQ ͕࣮ࡍʹ΍͍ͬͯΔͷ͸ɾɾɾ 

    $%,$-*͔Β΋ΒͬͨDPOUFYUʹཉ͍͠஋͕͋Δ͔νΣοΫ  ͳ͚Ε͹ϚχϑΣετʹෆ଍৘ใͱͯ͠Ϩϙʔτ 㾎ޙʹNBOJGFTUKTPOͱͯ͠ग़ྗ͞ΕͯDELPVUʹ֨ೲ͞ΕΔ ‣ "QQऴྃޙɺ$-*ଆͰෆ଍৘ใΛ"844%,Ͱऔಘ DELDPOUFYUKTPOॻ͖ࠐΈ  ෆ଍৘ใ͕͋Δ৔߹ɺߋ৽ޙͷDPOUFYUͰ࠶౓$%,"QQͷ߹੒ॲཧΛ΍Γ௚͢ ޙड़
  9. $%,"QQ$POTUSVDUϑΣʔζ w Ξηοτͷόϯυϧ ‣ %PDLFSΠϝʔδ -BNCEB &$4 FUD ͷϏϧυ͸૸Βͳ͍ 

    $%,"QQͰ͸૸Βͣɺ$%,$-*Ͱ࣮ߦ͞ΕΔ ޙड़  ‣ ͋͘·Ͱ$%,"QQ $POTUSVDUϑΣʔζ Ͱ૸Δͷ͸-BNCEBίʔυͷόϯυϧ  ˚Ϗϧυ  ˓όϯυϧ 㾎%PDLFSʮͰʯ-BNCEBίʔυΛόϯυϧ͢Δ΋ͷ͸͜ͷϑΣʔζͰ%PDLFSϏϧυ͕૸Δ w CVOEMJOHGPSDF%PDLFS#VOEMJOHUSVF ΋͘͠͸FTCVJMEະΠϯετʔϧ࣌  w $PEFGSPN%PDLFS#VJME
  10. $%,"QQ$POTUSVDUϑΣʔζ w Ξηοτͷόϯυϧ ‣ ϑΝΠϧΞηοτˠ$%,"QQͰόϯυϧ͕૸Δ  ඇ%PDLFS-BNCEB 㾎/PEFKT'VODUJPO FTCVJME 

    㾎/PEFKT'VODUJPO CVOEMJOHGPSDF%PDLFS#VOEMJOHUSVF΋͘͠͸FTCVJMEະΠϯετʔϧ  㾎$PEFGSPN%PDLFS#VJME ‣ ΠϝʔδΞηοτˠ$%,"QQͰϏϧυ͕૸Βͳ͍ $%,$-*Ͱ૸Δ   %PDLFS-BNCEB &$4 FUD 㾎$PEFGSPN"TTFU*NBHF 㾎%PDLFS*NBHF"TTFU
  11. $%,"QQ1SFQBSFϑΣʔζ w Ϧιʔεؒͷґଘ %FQFOET0O ͷ௥Ճ ‣ $POTUSVDU - ؒʹ௥Ճ͞ΕͨґଘΛϦιʔε -

    ؒʹམͱ͠ࠐΉ w ελοΫؒͷґଘؔ܎ͷղܾ ‣ ΫϩεελοΫࢀর0VUQVUT *NQPSU7BMVF ‣ ΫϩεϦʔδϣϯࢀরΧελϜϦιʔε ‣ ωετελοΫࢀর0VUQVUT΍1BSBNFUFST w ωετελοΫॲཧ ‣ ࢠελοΫͷςϯϓϨʔτΛઌʹ࡞੒ͯ͠ɺ਌ελοΫͷ4Ξηοτͱͯ͠௥Ճ
  12. $%,"QQ1SFQBSFϑΣʔζ w ˞1SFQBSFϑΣʔζͱ$%,ͷϥΠϑαΠΫϧʹ͍ͭͯ ‣ 1SFQBSFϑΣʔζ͸$POTUSVDUͷQSFQBSFϝιουΛ࣮ߦ͢ΔϑΣʔζͩͬͨ  QSFQBSFϝιου͸$%,W࣌୅ͷ΋ͷͰݱࡏ͸΋͏ͳ͍  7BMJEBUF4ZOUIFTJ[FϑΣʔζ΋ಉ໊ϝιουΛݺͿ΋ͷͩͬͨ 

    ‣ ͦ΋ͦ΋ϥΠϑαΠΫϧϑΣʔζࣗମ͕$%,W࣌୅ʹఆٛ͞Εͨ΋ͷ  ౰࣌ͷߏ଄ΛϑΣʔζͱͯ͠ද͍ͯ͠Δ͚ͩͰݱࡏͷίʔυ͸͔ͳΓมߋ͞Ε͍ͯΔ  ͨͩ౰࣌ͷ໊࢒ͱ͸͍͑ݱࡏͷެࣜυΩϡϝϯτʹ΋ͦͷ··ࡌ͍ͬͯΔ 㾎໌Β͔ʹߋ৽࿙Εͱݴ͑Δઆ໌෦෼΋͋Δ͕ɾɾɾ
  13. $%,"QQ4ZOUIFTJ[FϑΣʔζ w πϦʔ͔Β$MPVE'PSNBUJPOςϯϓϨʔτΛੜ੒ ‣ -$POTUSVDUˠUFNQMBUFKTPO  τʔΫϯղܾ  ࿦ཧ*%ܭࢉ w

    Ϋϥ΢υΞηϯϒϦΛDELPVUσΟϨΫτϦʹग़ྗ ‣ Ϋϥ΢υΞηϯϒϦ$%,ΞϓϦશମͷ߹੒݁Ռ UFNQMBUFKTPO
  14. $%,"QQ4ZOUIFTJ[FϑΣʔζ w Ϋϥ΢υΞηϯϒϦͷߏ੒ ΞʔςΟϑΝΫτ  ‣ $MPVE'PSNBUJPOςϯϓϨʔτ \ελοΫ໊^UFNQMBUFKTPO  ‣

    ΞηοτϑΝΠϧ  %PDLFS fi MF  -BNCEBίʔυ  ͦͷଞ4ʹΞοϓϩʔυ͢ΔϑΝΠϧ ‣ ͦͷଞ  Ξηοτ৘ใϑΝΠϧ \ελοΫ໊^BTTFUTKTPO   ϚχϑΣετ৘ใϑΝΠϧ NBOJGFTUKTPO ˡෆ଍DPOUFYU৘ใ͸͜͜ʹ֨ೲ  πϦʔ৘ใϑΝΠϧ USFFKTPO
  15. $%,"QQ4ZOUIFTJ[FϑΣʔζ w ˞ϚχΞοΫωλ$VTUPN4ZOUIFTJT ‣ ελοΫ߹੒Ҏ֎ͷಠࣗॲཧΛ૊ΈࠐΊΔ  Ϩϙʔτੜ੒ɾϑΝΠϧग़ྗͳͲ  *$VTUPN4ZOUIFTJTJOUFSGBDFΛJNQMFNFOUT͢Δ 㾎ͨͩࣗ͠࡞ͷར༻͸ݫېɺ$%,͕ެࣜͰ࢖༻͍ͯ͠Δ΋ͷҎ֎࢖Θͳ͍͜ͱ

    ‣ ࢖༻ྫ  1PMJDZ4ZOUIFTJ[FS BXTJBN3PMFDVTUPNJ[F3PMFT ࢖༻࣌  㾎*".ϩʔϧɾϙϦγʔͷৄࡉϨϙʔτΛUYUͱKTPOܗࣜͰग़ྗ  *OUFH5FTU$BTF JOUFHUFTUT*OUFH5FTU࢖༻࣌  㾎JOUFHςετͷઃఆΛϚχϑΣετϑΝΠϧͱͯ͠ग़ྗ
  16. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ ࢠϓϩηε࣮ߦ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒
  17. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ ࢠϓϩηε࣮ߦ 4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒
  18. $%,$-*4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ w $%,"QQͰDPOUFYUϝιου͕ෆ଍DPOUFYUΛNBOJGFTUKTPOʹग़ྗͨ͠ w $%,$-*͕ෆ଍DPOUFYUΛऔಘ  "844%,࣮ߦ ϩʔϧ໊NZSPMFͷ*".ϩʔϧΛऔಘͯ͠"3/ͳͲΛอ࣋

      DELCPPUTUSBQͰ࡞੒͞Εͨ-PPLVQ3PMF͕࢖ΘΕΔ  DELDPOUFYUKTPOʹॻ͖ࠐΈ w 4%,Ͱऔಘͨ͠஋ͰDPOUFYUΛߋ৽ޙɺ࠶౓$%,"QQͰ߹੒Λ΍Γ௚͢ ‣ DELDPOUFYUKTPOʹཉ͍͠஋͕ͳ͍࣌ɺ߹੒ TZOUI ͸ճ૸Δʂ DPOUFYUʹೖͬͯͳ͍Α
  19. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ 4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ $%,"QQ ࢠϓϩηε࣮ߦ ճ໨ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒ ࢠϓϩηε࣮ߦ ճ໨
  20. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ 4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ $%,"QQ ࢠϓϩηε࣮ߦ ճ໨ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒ ࢠϓϩηε࣮ߦ ճ໨ $MPVE'PSNBUJPO σϓϩΠ ΞηοτΞοϓϩʔυ 4 &$3 ΠϝʔδϏϧυ ˞ίʔυͷϏϧυ͸ $%,"QQͰ࣮ࢪࡁΈ DELPVU
  21. $%,$-*ΠϝʔδϏϧυ w %PDLFS fi MFͷΠϝʔδϏϧυ ‣ -BNCEBίʔυ ϑΝΠϧΞηοτ ͷόϯυϧ͸$%,"QQͰ࣮ߦ͞Εͨ ‣

    %PDLFSΠϝʔδ ΠϝʔδΞηοτ ͷϏϧυ͸$%,$-*Ͱ࣮ߦ͞ΕΔ  %PDLFS-BNCEB &$4 FUD 㾎$PEFGSPN"TTFU*NBHF 㾎%PDLFS*NBHF"TTFU
  22. $%,$-*ΞηοτΞοϓϩʔυ w ΞηοτΛDELCPPUTUSBQͰ࡞੒͞Εͨ4&$3ʹΞοϓϩʔυ ‣ ϑΝΠϧΞηοτˠ4ʹΞοϓϩʔυ  -BNCEBίʔυ  ͦͷଞϑΝΠϧ ‣

    ΠϝʔδΞηοτˠ&$3ʹΞοϓϩʔυ  ௚લʹ%PDLFSϏϧυͨ͠ΠϝʔδΛQVTI ‣ DELCPPUTUSBQͰ࡞੒͞Εͨ*".ϩʔϧ͕࢖ΘΕΔ  'JMF1VCMJTIJOH3PMF*NBHF1VCMJTIJOH3PMF
  23. $%,$-*ิ଍ $%,ςετͰͷҧ͍ w VOJUςετ BTTFSUJPOT5FNQMBUF ͸$%,$-*Λ௨ͣ͞ಠࣗͰ$%,"QQΛݺͿ ‣ $%,$-*ͱڍಈ͕ҧ͏෦෼͕͋Δ $%,"QQ෦෼͸ڞ௨ 

     DELKTPO΍DELDPOUFYUKTPO͕ಡ·Εͳ͍ 㾎"QQ1SPQTͳͲͰ໌ࣔతʹDPOUFYUΛ౉͞ͳ͍ͱ࣮؀ڥςετؒͰػೳϑϥάͷҧ͍͕ى͖Δ  DPOUFYUෆ଍࣌ͷ"844%,࣮ߦ࠶߹੒͸૸Βͳ͍  ΠϝʔδΞηοτ %PDLFS fi MF ͷϏϧυ͸૸Βͳ͍ 㾎-BNCEBίʔυͷόϯυϧ͸$%,"QQͳͷͰ૸Δ $%,"QQ $%,$-* VOJUςετ
  24. $%,$-*ิ଍ $%,ςετͰͷҧ͍ w JOUFHςετ !BXTDELJOUFHSVOOFS ͸$%,$-*Λ௨͢ ‣ $%,$-*ͱڍಈ͕ҧ͏෦෼͕Ұ෦͋Δ  DPOUFYU

    ػೳϑϥάͳͲ ͸JOUFHSVOOFS༻ͷਪ঑஋͕σϑΥϧτͰઃఆ͞ΕΔ  $%,$-*࣮ߦͷલޙʹJOUFHSVOOFSಠࣗͷॲཧ͕૸Δ ‣ ઌ೔ɺ$%,$-*ʹґଘ͠ͳ͍Τϯδϯ 5PPMLJUMJCϕʔε ΋௥Ճ͞Εͨ  !BXTDELJOUFHSVOOFS!W͔Β  ·ͩVOTUBCMFͳͷͰ஫ҙ 㾎JOUFHSVOOFSVOTUBCMFUPPMLJUMJCFOHJOF $%,"QQ $%,$-* JOUFHςετ
  25. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ 4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ $%,"QQ ࢠϓϩηε࣮ߦ ճ໨ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒ ࢠϓϩηε࣮ߦ ճ໨ $MPVE'PSNBUJPO σϓϩΠ ΞηοτΞοϓϩʔυ 4 &$3 ΠϝʔδϏϧυ ˞ίʔυͷϏϧυ͸ $%,"QQͰ࣮ࢪࡁΈ DELPVU
  26. $%,$-* $%,"QQ $%,࣮૷ $%,ίϚϯυ ߹੒ TZOUI σϓϩΠ "84$%,ͱ͸ʁ  ϑΝΠϧΞηοτ

     $MPVE'PSNBUJPO ςϯϓϨʔτ Ϗϧυ ίʔυ %PDLFS fi MF όϯυϧ  ΠϝʔδΞηοτ Ξοϓϩʔυ Ξοϓϩʔυ
  27. $%,$-* DELEFQMPZ DPO fi HಡΈࠐΈ TZOUIFTJ[F ߹੒ w dDELKTPO w

    DELKTPO w DELDPOUFYUKTPO w DELEFQMPZD999"#$ $%,"QQ 4%,࣮ߦ ࠶߹੒ DPOUFYUෆ଍࣌ $%,"QQ ࢠϓϩηε࣮ߦ ճ໨ DELPVU Ϋϥ΢υΞηϯϒϦੜ੒ ࢠϓϩηε࣮ߦ ճ໨ $MPVE'PSNBUJPO σϓϩΠ ΞηοτΞοϓϩʔυ 4 &$3 ΠϝʔδϏϧυ ˞ίʔυͷϏϧυ͸ $%,"QQͰ࣮ࢪࡁΈ DELPVU