$30 off During Our Annual Pro Sale. View Details »

AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK

k.goto
July 11, 2023

AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK

2023/07/12開催 JAWS-UG CDK支部 #7での発表資料です。

k.goto

July 11, 2023
Tweet

More Decks by k.goto

Other Decks in Programming

Transcript


  1. LHPUP าͷςοΫ

    "84$%,ͰֶͿ
    (P'σβΠϯύλʔϯ
    ʙ࣮ࡍͲ͏ͳͷʁʙ
    +"846($%,ࢧ෦
    ࢖͏

    View Slide

  2. ࣗݾ঺հ LHPUP

    w ςοΫϦʔυɾϥʔϝϯ޷͖
    w "84$PNNVOJUZ#VJMEFS %FW5PPMT

    w าͷςοΫ ٕज़ϒϩά

    w ࣗ࡞"84πʔϧͷ044։ൃ
    w "84$%,$POUSJCVUPS
    ‣ $POTUSVDU)VCެ։΋
    w 5XJUUFS!@TUFQ@UFDI
    ‣ LHPUP าͷςοΫ

    View Slide

  3. (P'σβΠϯύλʔϯͱ͸
    w ॻ੶ʰΦϒδΣΫτࢦ޲ʹ͓͚Δ࠶ར༻ͷͨΊͷσβΠϯύλʔϯʱ ˞

    ‣ ௨শʰ(P'ຊʱ
    ‣ (P' (BOHPG'PVS
    ͜ͷڞஶऀͷਓ
    ‣ શύλʔϯ
    w ݹ͔͘Β͋Δ͕ɺ"84$%,ͷ಺෦࣮૷ʹ΋Ұ෦༻͍ΒΕ͍ͯΔ
    ˞ʰΦϒδΣΫτࢦ޲ʹ͓͚Δ࠶ར༻ͷͨΊͷσβΠϯύλʔϯʱ ιϑτόϯΫύϒϦογϯά

    ஶΤʔϦώɾΨϯϚɺϥϧϑɾδϣϯιϯɺϦνϟʔυɾϔϧϜɺδϣϯɾϒϦγσΟʔε
    ؂༁ຊҐాਅҰ ٢ా࿨थ

    View Slide

  4. (P'σβΠϯύλʔϯͱ͸
    IUUQTEPDTBXTBNB[PODPNKB@KQQSFTDSJQUJWFHVJEBODFMBUFTUCFTUQSBDUJDFTDELUZQFTDSJQUJBDSFVTBCMFQBUUFSOTCFTUQSBDUJDFTIUNM
    5ZQF4DSJQUͰ$%,Λॻ͘ࡍͷϕετϓϥΫςΟεͱͯ͠
    ެࣜυΩϡϝϯτͰ(P'σβΠϯύλʔϯ͕঺հ

    View Slide

  5. "84%FW%BZ5PLZP

    View Slide

  6. "84$%,ͰֶͿ(P'σβΠϯύλʔϯ
    ʙ*B$ʹ΋ίʔυઃܭʙ

    View Slide

  7. "84$%,ͰֶͿ(P'σβΠϯύλʔϯ
    ʙ*B$ʹ΋ίʔυઃܭʙ
    ࢖͏
    ʙ࣮ࡍͲ͏ͳͷʁʙ

    View Slide

  8. "84$%,ͷཧ૝ɾݱ࣮
    w ཧ૝ɿJGจGPSจશ෦ແ͠ʂ
    w ݱ࣮ɿ؀ڥࠩҟΛ࣮ݱ͠ͳ͍ͱ͍͚ͳ͍͜ͱʹɾɾɾ
    ‣ ֤։ൃऀͷ؀ڥͰ͸$IBUCPU TMBDLνϟϯωϧ
    ɺ8"'ɺ֎ܗ؂ࢹ͸࡞Βͳ͍
    ‣ ͑ͬɺͦͷ؀ڥ͚ͩ*1੍ݶͰ͔͢ʂʁ
    ৚݅෼ذ JGจ
    ͕ൃੜʂ
    ίʔυͷෳࡶԽɾංେԽʂ

    View Slide

  9. ͑ʁ
    (P'σβΠϯύλʔϯͬͯ
    $%,ʹ࢖͑ΔΜͰ͔͢ʁ

    View Slide

  10. $%,º(P'σβΠϯύλʔϯͷϝϦοτ
    ίʔσΟϯάʹ͓͚Δઃܭ஌͕ࣝ෇͖ɺΞϓϦ։ൃʹੜ͔ͤΔ
    $%,ίʔυΛޮ཰Α͘ॻ͚Δ
    ‣ ৚݅෼ذ͕ݮΔ
    ‣ ݟ௨͕͠ྑ͘ͳΓϑΝΠϧ͕ංେԽ͠ͳ͍
    ˠཧղ༰қੑɾ֦ுੑ࠶ར༻ੑͷ޲্ 㲈อकੑͷ޲্

    $%,ͬͯԿΛ࡞͍ͬͯΔͷ͔Θ͔ΓͮΒ͍͕࣌͋ͬͯɾɾɾ
    Πϯελϯεੜ੒ͯ͠ม਺ʹೖΕͯϝιουݺΜͰ෼ذͯ͠ʜ

    View Slide

  11. $%,º(P'σβΠϯύλʔϯͷσϝϦοτ
    ίʔσΟϯάઃܭͷ஌͕ࣝ͋Δఔ౓ඞཁ
    ಠࣗ࿏ઢͰ͸͋Δ ࣮༻ྫ͕গͳ͍ͷͰ

    ‣ $%,ͷ໨త͸ʮΠϯϑϥߏஙఆٛʯએݴతɾ੩తͳهड़έʔε͕ଟ͍
    ޮ཰ੑΑΓ΋γϯϓϧʹఆ͚ٛͩฒ΂͍ͨ
    ‣ ʮ΍Γա͗ʯʹͳΔՄೳੑ
    ·ʙͨมͳ͜ͱͯ͠ɺແ஡ۤ஡ɾΦϨΦϨʹͳͬͪΌ͏ΜͰ͠ΐʁ

    View Slide

  12. (P'σβΠϯύλʔϯιϑτ΢ΣΞ޻ֶ
    ܾͯ͠ແ஡ۤ஡ɾΦϨΦϨͰ͸ͳ͍
    ύλʔϯɿܕɼ༷ࣜ
    σβΠϯɿઃܭ

    View Slide

  13. "84$%,ֵ৽తͳ*B$
    ैདྷͷ*B$ʹ͸ͳ͍
    ༷ʑͳՄೳੑΛൿΊ͍ͯΔ

    View Slide

  14. $%,º(P'σβΠϯύλʔϯͷՄೳੑ
    w ΞϓϦΠϯϑϥͷ֞ࠜΛ௒͑ͯΈΔྑ͍͖͔͚ͬʹͳΔ͔΋͠Εͳ͍
    ‣ ʮఆٛΛॻ͍͍ͯΔʯ͔ΒʮίʔσΟϯάΛ͍ͯ͠Δʯͱ͍͏࣮ײ΁ͷมԽ
    ‣ ίʔσΟϯάָ͕͘͠ͳΔɾ։ൃʹڵຯ͕ग़Δ͔΋͠Εͳ͍
    w ޻෉࣍ୈͰίʔυΛݟ΍ͨ͘͢͠ΓɺอकίετΛԼ͛ΒΕΔ͔΋͠Εͳ͍
    ‣ ೝ஌ෛՙ͕Լ͕ͬͨΓ
    ‣ มߋ࣌ͷίʔυमਖ਼ྔ͕ݮͬͨΓ
    ैདྷͷΠϯϑϥఆٛͷ࿮ʹनΘΕ͗͢ͳͯ͘΋͍͍Μ͡Όͳ͍͔ʁ

    View Slide

  15. $%,º(P'σβΠϯύλʔϯͷՄೳੑ
    w ϧʔϧΛܾΊͯΠϯϑϥఆ͔ٛΒҳ୤͠ա͗ͳ͍Α͏ʹ
    w ैདྷͷએݴతͳΠϯϑϥఆٛΛ௒͑Δ෦෼͸ɺϓϩάϥϛϯάݴޠͳΒͰ͸
    ͷࣗಈςετͰΧόʔ
    ‣ 6OJU5FTU
    4OBQTIPU5FTU
    'JOFHSBJOFE"TTFSUJPOT5FTU
    7BMJEBUJPO5FTU
    ‣ *OUFHSBUJPO5FTU
    JOUFHUFTUTBMQIB

    View Slide

  16. $%,ͰͷΦεεϝύλʔϯબ
    ᶃ $PNQPTJUFύλʔϯ
    ᶄ 5FNQMBUF.FUIPEύλʔϯ
    ᶅ "CTUSBDU'BDUPSZύλʔϯ
    $%,ͳΒͰ͸ͷπϦʔߏ଄
    Λ׆͔ͯ͠ޮ཰Խ
    ؀ڥؒ EFWcQSPE
    ͷࠩҟΛ࣮ݱ
    ɾ؀ڥ͝ͱͷݟ௨͕͠ྑ͘ͳΔ
    ɾ৚݅෼ذΛݮΒͤΔ
    ɾڞ௨෦෼͸ڞ௨Խͯ͠ޮ཰తʹ
    ͓·͚ɿ'BDBEFύλʔϯ$POTUSVDU

    View Slide

  17. ࢀߟɿᶃ$PNQPTJUFύλʔϯ

    View Slide

  18. ࢀߟɿᶄ5FNQMBUF.FUIPEύλʔϯ

    View Slide

  19. ࢀߟɿᶄ5FNQMBUF.FUIPEύλʔϯ
    ؀ڥ͝ͱʹॊೈʹόϦσʔγϣϯ಺༰Λม͑Δʂ
    ৚݅෼ذ΋࠷খʂ

    View Slide

  20. ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ

    View Slide

  21. ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ

    View Slide

  22. ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ
    ؀ڥ͝ͱʹॊೈʹߏஙϦιʔεΛม͑Δʂ
    ৚݅෼ذ΋࠷খʂ

    View Slide

  23. $%,಺෦Ͱ࢖ΘΕ͍ͯΔύλʔϯ
    ᶃ 4JOHMFUPOύλʔϯ
    ‣ 4JOHMFUPO'VODUJPOίϯετϥΫτ
    ᶄ 4USBUFHZύλʔϯ
    ‣ 7BMJEBUJPOػೳ /PEFWBMJEBUF


    ᶅ 7JTJUPSύλʔϯ
    ‣ "TQFDUTػೳ
    ৄࡉ͸"84%FW%BZ5PLZP
    ʰ"84$%,ͰֶͿ(P'σβΠϯύλʔϯ
    ʙ*B$ʹ΋ίʔυઃܭʙʱ
    ొஃࢿྉʹͯʂ
    ˞ຊࢿྉ࠷ޙʹϦϯΫهࡌ

    View Slide

  24. ࠷ޙʹ
    w "84$%,ͷՄೳੑ͸ແݶେ
    ‣ ৽͍͠ɾࣗ༝౓͕ߴ͍ނʹϕετϓϥΫςΟε͕ݻ·Γ͖͍ͬͯͳ͍
    ͦ΋ͦ΋͜ͷ(P'σβΠϯύλʔϯద༻Έ͍ͨʹɺ·ͩྫ͕ग़͍ͯͳ͔ͬͨΓ
    ‣ πʔϧͱͯ͠΋ΤϯδχΞͱͯ͠΋৳ͼ͠Ζ͕͋Δʂ
    $%,ͷ৽ͨͳ࢖͍ํΛฤΈग़͢νϟϯεʂ
    ීஈΠϯϑϥدΓͷਓ΋ΞϓϦ։ൃɾίʔσΟϯάʹ৮ΕͯΈΔྑ͍ػձ͔΋ʂ
    "84$%,Λ࢖͍౗͍ͯ͜͠͏ʂ
    ༻๏ɾ༻ྔ͸कͬͯͶ

    (P'΋
    ͋Γ͔΋ʁ

    View Slide

  25. ࢀߟɿ"84%FW%BZొஃࢿྉɾ(JU)VC
    "84%FW%BZ5PLZP
    ొஃࢿྉ
    ࠨɿIUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT
    $%,º(P'ίʔυ࣮ྫɾΫϥεਤ
    (JU)VC
    ӈɿIUUQTHJUIVCDPNHPUPLDELHPGEFTJHOQBUUFSO

    View Slide

  26. એ఻ɿࣗ࡞"84πʔϧ044
    ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍࡟আπʔϧ
    ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZEFMTUBDL
    ʲDMTʳ4όέοτߴ଎࡟আɾۭʹ͢Δπʔϧ όʔδϣχϯάରԠ

    ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZDMT
    ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ Ϧʔδϣϯԣஅ

    ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZMBNWFS

    View Slide

  27. 5IBOL:PV
    LHPUP าͷςοΫ

    View Slide