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

AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cd...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch

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

Avatar for k.goto

k.goto

July 17, 2026

More Decks by k.goto

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ LHPUP w גࣜձࣾϝΠπ ‣ $IJFG&OHJOFFS w "84)FSP ‣ "84%FW5PPMT)FSP

    w "84$%,ίϯτϦϏϡʔλʔ ‣ 5PQ$POUSJCVUPS ‣ $PNNVOJUZ3FWJFXFS 9!@TUFQ@UFDI (JU)VC!HPUPL
  2. $%,$-*ͷ໾ׂ w $%,ίϚϯυ ‣ DELEFQMPZ DELTZOUI FUD w $%,"QQͷΦʔέετϨʔλʔ ‣

    $%,"QQΛαϒϓϩηεͰݺͼग़ͯ͠߹੒Λ࣮ߦ ‣ $%,"QQͷग़ྗͨ͠Ϋϥ΢υΞηϯϒϦ DELPVU ΛಡΈࠐΈ Ϗϧυ w $MPVE'PSNBUJPOͷϥούʔ ‣ Ϋϥ΢υΞηϯϒϦ಺ͷ$MPVE'PSNBUJPOςϯϓϨʔτΛಡΈࠐΜͰσϓϩΠ
  3. $%,"QQͷ໾ׂ w Ϣʔβʔͷ࣮૷ͨ͠$%,ίʔυ ‣ BXTDELMJC ϥΠϒϥϦ Λ࢖༻ w Ϋϥ΢υΞηϯϒϦΛੜ੒ ߹੒

    ͢Δ·Ͱ͕ΰʔϧ ‣ σϓϩΠॲཧʹ͸ؔ༩͠ͳ͍ ‣ "84ΞΫηεΛ͠ͳ͍ DPOUFYUϝιουGSPN-PPLVQ ͰͷΞΫηε͸$%,$-*  w Ϋϥ΢υΞηϯϒϦ DELPVU ͷத਎ ‣ $MPVE'PSNBUJPOςϯϓϨʔτɺ-BNCEBϑΝΠϧɺ%PDLFS fi MFɺFUD
  4. DELE $%,%JSFDU DELE $%,"QQ ᶃ$%,࣮૷ ᶄDELEίϚϯυ ᶅ߹੒ TZOUI  ˞αϒϓϩηε

    ᶈσϓϩΠ Ϋϥ΢υΞηϯϒϦ DELPVU ᶆੜ੒ ᶇಡΈࠐΈϏϧυ "844%, ֤αʔϏε
  5. DELE $%,%JSFDU DELE $%,"QQ ᶃ$%,࣮૷ ᶄDELEίϚϯυ ᶅ߹੒ TZOUI  ˞αϒϓϩηε

    ᶈσϓϩΠ Ϋϥ΢υΞηϯϒϦ DELPVU ᶆੜ੒ ᶇಡΈࠐΈϏϧυ "844%, ֤αʔϏε $MPVE'PSNBUJPO ςϯϓϨʔτ͸ ͦͷ··࢖༻ʂ
  6. DELE $%,%JSFDU %"( ༗޲ඇ८ճάϥϑґଘάϥϑ ੜ੒ EJ ff ܭࢉ طଘϦιʔεͱͷൺֱ 

    ฒྻ࣮ߦ ະ׬ྃґଘͰଈ࣌σΟεύον ߹੒ $%,"QQ Ξηοτ Ϗϧυެ։ Ϋϥ΢υΞηϯϒϦղੳ DELEΤϯδϯ 4%,ϓϩόΠμʔ $$"1*ϓϩόΠμʔ αϒϓϩηε࣮ߦ Ϋϥ΢υΞηϯϒϦੜ੒ $MPVE'PSNBUJPOςϯϓϨʔτͷύʔε NBOJGFTU 4%,ര଎ ࡞੒ίετ༗  $$"1*޿ൣғΧόʔ ϑΥʔϧόοΫ  ;JQԽ4Ξοϓϩʔυ %PDLFSΠϝʔδϏϧυ&$3QVTI ˞$$"1*$MPVE$POUSPM"1* $%,$-* ͷ୅ସ $MPVE'PSNBUJPO ͷ୅ସ
  7. ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ΍͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ

     ෳ਺ͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹੒ͷΦʔέετϨʔτ  ະղܾDPOUFYUଘࡏ࣌ͷ߹੒ϧʔϓ ‣ $POUFYUϓϩόΠμʔ  "844%,ʹΑΔ஋औಘ ‣ Ξηοτ؅ཧ  ;JQԽ4Ξοϓϩʔυ  %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ΍͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ஋ղܾ   ґଘղܾ 3FG(FU"UU   ૊ΈࠐΈؔ਺ 'O4VCFUD  ‣ ঢ়ଶ؅ཧ ঢ়ଶελοΫ  ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧ؅ཧ  ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ  ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽ଴ͪ
  8. ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ΍͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ

     ෳ਺ͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹੒ͷΦʔέετϨʔτ  ະղܾDPOUFYUଘࡏ࣌ͷ߹੒ϧʔϓ ‣ $POUFYUϓϩόΠμʔ  "844%,ʹΑΔ஋औಘ ‣ Ξηοτ؅ཧ  ;JQԽ4Ξοϓϩʔυ  %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ΍͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ஋ղܾ   ґଘղܾ 3FG(FU"UU   ૊ΈࠐΈؔ਺ 'O4VCFUD  ‣ ঢ়ଶ؅ཧ ঢ়ଶελοΫ  ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧ؅ཧ  ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ  ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽ଴ͪ શͯ ࣗ࡞ ϑϧεΫϥον  ͠·ͨ͠ʂ ˞Ϧιʔεͷ҆ఆԽ଴ͪҎ֎ ˠDELE͸଎౓ॏࢹͷͨΊ
  9. ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ΍͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ

     ෳ਺ͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹੒ͷΦʔέετϨʔτ  ະղܾDPOUFYUଘࡏ࣌ͷ߹੒ϧʔϓ ‣ $POUFYUϓϩόΠμʔ  "844%,ʹΑΔ஋औಘ ‣ Ξηοτ؅ཧ  ;JQԽ4Ξοϓϩʔυ  %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ΍͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ஋ղܾ   ґଘղܾ 3FG(FU"UU   ૊ΈࠐΈؔ਺ 'O4VCFUD  ‣ ঢ়ଶ؅ཧ ঢ়ଶελοΫ  ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧ؅ཧ  ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ  ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽ଴ͪ $%,ͷ࢓૊ΈΛ஌͍ͬͯΕ͹ ࣮૷͸ͦΜͳʹ೉͘͠ͳ͍ $%,ͷ࢓૊ΈΛ஌Δ͜ͱͰ ීஈͷ$%,։ൃͰૺ۰ͨ͠ڍಈ΋ ཧղͰ͖ΔΑ͏ʹͳΓ·͢ʂ
  10. ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ΍͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ

     ෳ਺ͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹੒ͷΦʔέετϨʔτ  ະղܾDPOUFYUଘࡏ࣌ͷ߹੒ϧʔϓ ‣ $POUFYUϓϩόΠμʔ  "844%,ʹΑΔ஋औಘ ‣ Ξηοτ؅ཧ  ;JQԽ4Ξοϓϩʔυ  %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ΍͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ஋ղܾ   ґଘղܾ 3FG(FU"UU   ૊ΈࠐΈؔ਺ 'O4VCFUD  ‣ ঢ়ଶ؅ཧ ঢ়ଶελοΫ  ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧ؅ཧ  ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ  ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽ଴ͪ ಛʹͪ͜Β͕େมͰͨ͠ DELE㲈ࣗ࡞$MPVE'PSNBUJPO  ͜ΕΒΛϚωʔδυͰ΍ͬͯ͘ΕΔ $MPVE'PSNBUJPO͸Ғେʂ
  11. DELEಠࣗͷڧΈ w ಠࣗͷ࠷దԽ ଎౓޲্  ‣ OPXBJU 㲈&YQSFTTNPEF $MPVE'SPOU3%4&MBTUJ$BDIF/"5(BUFXBZ ‣

    71$-BNCEBͷϓϥΠϕʔταϒωοτͷϧʔτґଘ͸͕͠ w ະఆٛϓϩύςΟͷυϦϑτݕ஌ DELSFBMESJGUʹ੾Γग़͠  w ΞϓϦίʔυͷϩʔΧϧ࣮ߦ DELMPDBMʹ੾Γग़͠  w $MPVE'PSNBUJPOͱͷ૬ޓҠߦ ‣ DELEFYQPSUJNQPSUNJHSBUFGSPNDMPVEGPSNBUJPO DELSFBMESJGUIUUQTHJUIVCDPNHPUPLDELSFBMESJGU DELMPDBMIUUQTHJUIVCDPNHPUPLDELMPDBM
  12. $MPVE'PSNBUJPOͷྑ͍ͱ͜Ζ w ϚωʔδυʹΑΔಈ࡞ͷఏڙɾอূ ‣ ґଘղܾEJ ff ܭࢉ"1*࣮ߦϩʔϧόοΫ ‣ ঢ়ଶΛϢʔβʔଆͰ࣋ͨͳ͍͍ͯ͘ w

    Ϧιʔεͷ҆ఆԽ଴ͪ ‣ ҆ఆԽલʹϦιʔεʹΞΫηεͯ͠΋ΤϥʔʹͳΔ͜ͱ͕͋Δ ‣ $MPVE'PSNBUJPOͰ͸ʮσϓϩΠ׬ྃଈ࢖͑Δʯ ଎౓ͱͷτϨʔυΦϑ  ˠ҆৺ͯ͠σϓϩΠͰ͖ΔɾϦιʔεΛѻ͑Δ ຊ൪؀ڥ޲͖
  13. DELEͷϢʔεέʔε w DELE͸$%,$-*ͷஔ͖׵͑Ͱ͸ͳ͘ิ׬͠߹͏ཱͪҐஔ ‣ ։ൃςετ͸DELEͰ։ൃΠςϨʔγϣϯΛߴ଎ʹ ‣ εςʔδϯάຊ൪؀ڥ͸$%,$-* $MPVE'PSNBUJPO  w

    "*ۦಈ։ൃʹ͓͚Δ࢖͍ࣺͯ؀ڥɾϓϩτλΠϓ؀ڥͷߏங ‣ DELEͷര଎͕͞"*ͱͷ૬ੑ˕ ‣ ͱʹ͔͘଎͘࡞ͬͯյ͢ʂ DELE͸࡟আ΋ര଎ʂ  w దٓDELEFYQPSUJNQPSUͰɺDELE$'Oͷ૬ޓҠߦ͕Մೳ