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

AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches

AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches

2025/06/25,26開催「AWS Summit Japan 2025」での登壇資料です。

Avatar for k.goto

k.goto

June 23, 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. ຊηογϣϯͷ֓ཁ w "84$MPVE%FWFMPQNFOU,JU "84$%, Λ΋ͬͱ࢖͍͜ͳ͍ͨ͠ʂ ‣ อकੑ ‣ ֦ுੑ ‣

    ࠶ར༻ੑ ‣ ଟ༷ੑʢߏஙͷ෯ʣ ‣ FUD ͙͢ʹ࢖͑Δ࣮ફతΞϓϩʔν5*14Λ঺հʂ
  3. ᶃϋΠϒϦουͳ$%,׆༻5*14 w -$POTUSVDUͷGSPN'PPϝιου ‣ GSPN'PP"SO GSPN'PP"UUSJCVUFT GSPN-PPLVQ FUDʜ ‣ $%,֎Ͱ࡞੒ͨ͠ϦιʔεΛٖࣅతʹ$%,ελοΫ؅ཧԼʹऔΓࠐΉ

     㱠DELJNQPSU ˡ࣮ࡍʹελοΫͷ؅ཧϦιʔεʹҠ͢ $%,ελοΫ Ϛωίϯ 'VODUJPO #VDLFU ελοΫॴ༗ ٖࣅऔΓࠐΈ #VDLFUGSPN#VDLFU"SO ελοΫඇॴ༗
  4. ᶃϋΠϒϦουͳ$%,׆༻5*14 w GSPN-PPLVQϝιου ‣ GSPN'PP"SO΍GSPN'PP"UUSJCVUFT͸౉ͨ͠஋͕ͦͷ··ηοτ͞ΕΔ  ଘࡏ͠ͳ͍஋Λ౉ͯ͠΋ͦͷ··࢖ΘΕΔ ‣ GSPN-PPLVQ͸಺෦Ͱ"844%,Ͱ࣮ࡍʹ"84؀ڥ͔Β஋Λऔಘͯ͠ฦ͢ 

    ࣮ࡍʹऔಘ͢Δ͜ͱͰଘࡏ͢ΔϦιʔεͷ஋Λ࢖͑Δ  औಘͨ͠஋͸DELDPOUFYUKTPO ࣗಈੜ੒ϑΝΠϧ ʹΩϟογϡ͞ΕΔ 㾎Ωϟογϡʹ஋͕͋Ε͹4%,Λ࣮ߦͤͣʹͦͷ஋Λ࢖͏ ܾఆతͳಈ࡞Λอূ   "84؀ڥʹଘࡏ͠ͳ͍৔߹ΤϥʔʹͳΔ͕μϛʔσʔλΛ֨ೲͰ͖Δ$POTUSVDU΋͋Δ 㾎ͦ΋ͦ΋GSPN-PPLVQϝιου͕ ·ͩ ͳ͍-$POTUSVDU΋ଟ͍ BXTTTN4USJOH1BSBNFUFSWBMVF'SPN-PPLVQ UIJT bNZQBSBN` bEVNNZWBMVF`  BXTLNT,FZGSPN-PPLVQ UIJT ,FZ \BMJBT/BNFBMJBTGPP SFUVSO%VNNZ,FZ0O.JTTJOHUSVF^ 
  5. ᶃϋΠϒϦουͳ$%,׆༻5*14 w ΧελϜ$POTUSVDUͷ1SPQTͰड͚औΔϦιʔεͷܕ͸*'PPܕʹ͓ͯ͜͠͏ ‣ GSPN'PPϝιου͸*'PPܕ ಡΈࠐΈઐ༻ܕ Ͱฦ͢  FH *#VDLFU

    *2VFVF FUDʜ  6OPXOFE3FTPVSDFͱݺΜͩΓ ‣ -$POTUSVDU FH#VDLFU ͸*'PPܕ FH*#VDLFU ͱܕͷޓ׵ੑ͕͋Δ  *'PPܕʹ͸ελοΫ಺Ͱ࡞੒ͨ͠Ϧιʔε΋֎͔ΒಡΈࠐΜͩϦιʔε΋౉ͤΔ 㾎*'PPܕͰ͸஋΋ϝιου΋࢖͑ΔͷͰɺ"SOͳͲͷจࣈྻΛTUSJOHͱͯ͠௚઀౉͢ΑΓ͓͢͢Ί
  6. ᶄෳ਺؀ڥͷߏங5*14 w $%,ΞϓϦέʔγϣϯΛෳ਺؀ڥ෼ EFW TUH QSE FUD ࡞Γ͍ͨ ‣ લఏελοΫʹ౉͢ύϥϝʔλ͸5ZQF4DSJQUͷΦϒδΣΫτͰ؅ཧ

     ܕ͕ͭ͘ͷͰܕҧ͍΍ࢦఆ͠๨ΕͳͲͷϛεΛ๷ࢭͰ͖Δ  ಉ͡ελοΫߏ੒Ͱ؀ڥؒͷύϥϝʔλͷ੾Γସ͕͑Ͱ͖Δ
  7. ᶄෳ਺؀ڥͷߏங5*14 w $%,ΞϓϦέʔγϣϯΛෳ਺؀ڥ෼ EFW TUH QSE FUD ࡞Γ͍ͨ ‣ ಉ͡ελοΫΛ؀ڥຖʹ࢖͍·Θ͍ͨ͠৔߹ͷύλʔϯྫ

     ಉ͡ελοΫΛ؀ڥ͝ͱʹ੩తʹ࡞Δύλʔϯ  ಉ͡ελοΫΛ؀ڥ͝ͱʹಈతʹ࡞Δύλʔϯ  $%,ͷ4UBHFΛ׆༻͢Δύλʔϯ
  8. ᶄෳ਺؀ڥͷߏங5*14 w ʮಉ͡ελοΫΛ؀ڥ͝ͱʹ੩తʹ࡞Δύλʔϯʯ͕޲͍͍ͯΔέʔε ‣ BQQϑΝΠϧ͔Βࢹ֮తʹશ؀ڥͷελοΫҰཡΛ೺Ѳ͍ͨ͠ͱ͖  ΋͘͠͸DELMJTUίϚϯυͰશ؀ڥͷελοΫҰཡΛग़͍ͨ͠ͱ͖ ‣ DELEFQMPZD&/7EFWͳͲʹΑΔDPOUFYUΛ࢖͍ͨ͘ͳ͍ͱ͖ ‣

    ͦͷଞϜζΧγΠ͓࿩ ࢀরʮ"84$%,ͷ4UBHFͷ׆༻ํ๏ͱελοΫͷ੩తɾಈత࡞੒ͷൺֱʯ    ؀ڥͷEFQMPZ࣌ʹɺଞͷ؀ڥͰΤϥʔ͕ى͖ͳ͍͔΋νΣοΫ͍ͨ͠ͱ͖  ໌֬ʹBQQͷߏ੒πϦʔʹ؀ڥ͝ͱͷελοΫ৘ใΛؚΊ͍ͨͱ͖ IUUQTHPUPLIBUFOBCMPHDPNFOUSZDELTUBHFBOEEZOBNJDTUBUJDTUBDL
  9. ᶅϓϩύςΟͷҰׅద༻5*14 w 3FNPWBM1PMJDJFT "84$%,Wd  ‣ ಛఆͷείʔϓ πϦʔ ಺ͷ͢΂ͯͷϦιʔεͷ3FNPWBM1PMJDZΛॻ͖׵͑Δ 

    ྫ͢΂ͯͷϦιʔεͷ3FNPWBM1PMJDZΛ%&4530:ʹ͍ͨ͠  .JTTJOH3FNPWBM1PMJDJFT3FNPWBM1PMJDZ͕ઃఆ͞Ε͍ͯͳ͍Ϧιʔεʹద༻
  10. ᶅϓϩύςΟͷҰׅద༻5*14 w "TQFDUTͱ1SPQFSUZ*OKFDUPSTͰͷ্ॻ͖ํ๏ͷҧ͍ ‣ "TQFDUT  -$POTUSVDUͷઃఆϓϩύςΟΛॻ͖׵͑Δ ‣ 1SPQFSUZ*OKFDUPST 

    --$POTUSVDUͷQSPQTΛॻ͖׵͑Δ ‣ ˞ࢀরϒϩάهࣄʮ"84$%,ʹ௥Ճ͞Εͨ1SPQFSUZ*OKFDUPSTͷ࢖͍ํʯ  IUUQTHPUPLIBUFOBCMPHDPNFOUSZDELQSPQFSUZJOKFDUPS
  11. ᶅϓϩύςΟͷҰׅద༻5*14 w "TQFDUTͷ༏ઌ౓ QSJPSJUZOVNCFS  "84$%,Wd  ‣ "TQFDUTͷద༻ॱ൪ΛίϯτϩʔϧͰ͖Δ 

    ਺ࣈͷ௿͍ॱʹ࣮ߦ͞ΕΔ  ྻڍܕͰࢦఆ΋Ͱ͖Δ 㾎.65"5*/(  %&'"6-5  3&"%0/-:  ͷॱʹ࣮ߦ͞ΕΔ ‣ ྫ࠷ॳʹ্ॻ͖ͯ͠ɺ࠷ޙʹݕূ͍ͨ͠
  12. ᶆ$%,ςετͷ׆༻5*14 w $%,ͷϢχοτςετͷ࣮ߦ࣌ؒΛ୹ॖ͍ͨ͠ ‣ ϢχοτςετͰ͸ελοΫͷ߹੒ॲཧ TZOUI ͕ߦΘΕΔ ‣ ߹੒աఔͰ/PEFKT'VODUJPOͳͲͷ"84-BNCEBίʔυͷόϯυϧॲཧ΋૸Δ ɹ˞%PDLFS*NBHF"TTFUͷ%PDLFSϏϧυ͸߹੒աఔͰ͸ߦΘΕͳ͍

    㾎/PEFKT'VODUJPOͰFTCVJMEͰͳ͘%PDLFSͰϏϧυ͍ͯ͠Δ΋ͷ͸ߦΘΕΔ ɹɹ 1+ʹFTCVJMEΛΠϯετʔϧ͍ͯ͠Ε͹ࣗಈͰFTCVJMEͰϏϧυ͞ΕΔ ΞϓϦଆͷςετ΍$*Ͱ࿫͍͑ͯΔͷͰ͋Ε͹ $%,ͷςετͰ͸ল͍࣮ͯߦ࣌ؒΛ୹ॖ͍ͨ͠
  13. ᶆ$%,ςετͷ׆༻5*14 w $%,͕ਖ਼͘͠σϓϩΠ͞ΕΔ͔Ͳ͏͔ͷ౷߹ςετΛࣗಈͰߦ͍͍ͨ ‣ ˠJOUFHUFTUTΛ࢖͏  Ϟδϡʔϧ 㾎!BXTDELJOUFHSVOOFS 㾎!BXTDELJOUFHUFTUTBMQIB 

    ഁյతมߋͷݕ஌ͳͲ΋Մೳ ࠷ॳʹεφοϓγϣοτςετ͕ߦΘΕΔ   ࣗಈσϓϩΠςετޙʹࣗಈͰελοΫ࡟আ ࢒͢͜ͱ΋ՄೳOPDMFBOΦϓγϣϯ εφοϓγϣοτʹࠩ෼͕͋ΔͱΤϥʔऴྃ͢Δ VQEBUFPOGBJMFEΛ͚ͭΔͱࠩ෼Λߋ৽͢Δ
  14.  EJ ff "TTFUT-BNCEBίʔυͳͲͷมߋ ϋογϡ ࠩ෼΋νΣοΫ EFGBVMUGBMTF   FOBCMF-PPLVQTGSPN-PPLVQϝιου࣌ʹ༗ޮʹ͢Δ

    EFGBVMUGBMTF   TUBDL6QEBUF8PSL fl PXطଘεφοϓγϣοτͰελοΫ࡞੒͠ɺมߋޙͷεφοϓγϣοτ ͰελοΫߋ৽ͯ͠ɺ࣮ࡍʹͲΜͳมߋ͕ՃΘΔ͔ςετͰ͖Δ EFGBVMUUSVF   IPPLTελοΫͷEFQMPZEFTUSPZͷલޙʹ೚ҙͷίϚϯυΛڬΊΔ  DEL$PNNBOE0QUJPOTDELEFQMPZίϚϯυͳͲͷΦϓγϣϯࢦఆ
  15. ᶆ$%,ςετͷ׆༻5*14 w JOUFHςετ͸%PDLFSϏϧυ΍-BNCEBίʔυͷόϯυϧͷςετʹ΋ͳΔ ‣ $%,ίʔυͱͯ͠ͷςετҎ֎ͷ෦෼·Ͱ࿫͑Δ  Ϣχοτςετ߹੒ͷΈ  JOUFHςετ߹੒ σϓϩΠ

    Ћ w ҎԼͷΑ͏ͳ૊Έ߹Θͤ͸ݸਓతʹΦεεϝ ‣ Ϣχοτςετ࣮ߦස౓͕ߴ͍ͷͰ-BNCEBίʔυͷόϯυϧ͸Φϑʹ͢Δ  /PEFKT'VODUJPOͰ͸%PDLFSͰͳ͘FTCVJMEͰϏϧυ͠Α͏ ‣ JOUFHςετ%PDLFSϏϧυ΍-BNCEBίʔυͷόϯυϧͷ࣮ߦ֬ೝ΋࿫͏  ඞཁʹԠͯ͡"1*ΞαʔγϣϯͳͲ΋
  16. ᶇϦιʔεͷ෺ཧ໊ͱ࿦ཧ໊5*14 w $%,Ͱ͸Ϧιʔεͷ෺ཧ໊ FHCVDLFU/BNF ͸ࢦఆ͠ͳ͍ͷ͕ηΦϦʔ ‣ $%,ͷϦϑΝΫλϦϯά࣌ʹϦιʔεͷ࠶ߏங͕͋ΔͱΤϥʔʹͳΔ  $POTUSVDUͷύεมߋ 

    ৽Ϧιʔε͕࡞੒ˡಉ໊͡લͰ࡞੒͞ΕΔͷͰ"MSFBEZ&YJTUTΤϥʔʹͳΔ  چϦιʔε͕࡟আ ‣ جຊతʹະࢦఆͷ৔߹͸$MPVE'PSNBUJPO΋͘͠͸$%,͕ࣗಈੜ੒ͯ͘͠ΕΔ
  17. ᶇϦιʔεͷ෺ཧ໊ͱ࿦ཧ໊5*14 w ࿦ཧ໊ $MPVE'PSNBUJPOͷ࿦ཧ*% ͸$POTUSVDUͷύεΛ΋ͱʹੜ੒͞ΕΔ ‣ $POTUSVDUͷύε$POTUSVDUπϦʔͷ֤$POTUSVDU*%ͷ࿈݁ .Z$POTUSVDU $IJME$POTUSVDU .Z3FTPVSDF

    ύε.Z$POTUSVDU$IJME$POTUSVDU.Z3FTPVSDF OFX.Z$POTUSVDU UIJT .Z$POTUSVDU OFX$IJME$POTUSVDU UIJT $IJME$POTUSVDU OFX.Z3FTPVSDF UIJT .Z3FTPVSDF ࿦ཧ໊.Z$POTUSVDU$IJME$POTUSVDU.Z3FTPVSDF"#$
  18. ᶇϦιʔεͷ෺ཧ໊ͱ࿦ཧ໊5*14 w ࿦ཧ໊ $MPVE'PSNBUJPOͷ࿦ཧ*% ͸$POTUSVDUͷύεΛ΋ͱʹੜ੒͞ΕΔ ‣ ࿦ཧ໊Λݟ΍͘͢͢ΔͨΊʹ͸  $POTUSVDU*%ΛύεΧϧέʔε େจࣈ಄จࣈ

    খจࣈ ʹ͢Δ ɹYZ[BQJGVODUJPOˠYZ[BQJGVODUJPO"#$  ਌$POTUSVDUͷ*%ͱॏෳ͢Δจࣈྻ͸ൈ͘ ɹ9Z["QJ9Z["QJ'VODUJPOˠ9Z["QJ9Z["QJ'VODUJPO"#$  b$POTUSVDU`ͳͲͷ༨ܭͳTV ffi Y͸ൈ͘ ௕͘ͳΔͷͰ  ɹ9Z["QJ$POTUSVDU'VODUJPOˠ9Z["QJ$POTUSVDU'VODUJPO"#$ ɹɹ9Z["QJ'VODUJPOˠ9Z["QJ'VODUJPO"#$
  19. ᶇϦιʔεͷ෺ཧ໊ͱ࿦ཧ໊5*14 w ࿦ཧ໊ $MPVE'PSNBUJPOͷ࿦ཧ*% ͸$POTUSVDUͷύεΛ΋ͱʹੜ੒͞ΕΔ ‣ $POTUSVDU*%ʹ%FGBVMU΍3FTPVSDFΛ࢖͏ͱͦͷ෦෼͸লུ͞ΕΔ  OFX.Z3FTPVSDF UIJT

    %FGBVMU 9Z["QJ%FGBVMUˠ9Z["QJ"#$  OFX.Z3FTPVSDF UIJT 3FTPVSDF 9Z["QJ3FTPVSDFˠ9Z["QJ"#$ w -$POTUSVDUͷΑ͏ʹ୯ҰϦιʔε ЋΛϥοϓ͢Δ$POTUSVDUΛ࡞Δͱ͖ʹ˕ w -$POTUSVDUͰ͸ϓϥΠϚϦϦιʔε $GO'PP ʹ3FTPVSDF͕࢖ΘΕ͍ͯΔ w ΋͘͠͸ෳ਺ϦιʔεͷதͷϝΠϯͱͳΔϦιʔεʹ࢖͏ͷ΋˓