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

辛くない CloudFormation

辛くない CloudFormation

2021/10/28(木)に行われた【JAWS-UG朝会 #26】にて発表した
「辛くない CloudFormation」
の資料です。

Takafumi Omuro

October 28, 2021
Tweet

More Decks by Takafumi Omuro

Other Decks in Technology

Transcript

  1. ਏ͘ͳ͍$MPVE'PSNBUJPO
    גࣜձࣾϞϦαϫ
    খࣨو࢙

    View Slide

  2. ໊લɿখࣨو࢙
    ࣗݾ঺հ
    ࢓ࣄɿςοΫϦʔυ
    "84ΠϯϑϥΤϯδχΞ
    ޷͖ͳαʔϏεɿ$PEF#VJME
    $MPVE'PSNBUJPO
    ॴଐɿגࣜձࣾϞϦαϫ
    γεςϜ։ൃ෦
    Πϊϕʔγϣϯ։ൃ՝

    View Slide

  3. w $MPVE'PSNBUJPOͱ͸
    w ࢲతਏ͍$MPVE'PSNBUJPO
    w ਏ͘ͳ͍$MPVE'PSNBUJPO
    w ·ͱΊ
    ΞδΣϯμ

    View Slide

  4. $MPVE'PSNBUJPOͷӡ༻͸ਏ͍ʁ

    View Slide

  5. ͦΜͳʹ΋ਏ͘ͳ͍Α

    View Slide

  6. $MPVE'PSNBUJPOͱ͸
    $MPVE'PSNBUJPOͷ͓͞Β͍
    IUUQTEPDTBXTBNB[PODPNKB@KQ"84$MPVE'PSNBUJPOMBUFTU6TFS(VJEFDGOXIBUJTIPXEPFTJUXPSLIUNMΑΓҾ༻
    :".-+40/ͰςϯϓϨʔτϑΝΠϧΛ࡞੒͠ɺϦιʔεͷ
    ϓϩϏδϣχϯάΛߦ͏͜ͱ͕Ͱ͖ΔαʔϏεͰ͢ɻ
    "84ϦιʔεΛݸผʹ࡞੒ɺઃܭͯ͠ɺͦΕͧΕͷґଘؔ܎
    Λߟ͑Δඞཁ͸͋Γ·ͤΜɻ
    ࡞੒͞ΕͨϦιʔε͸ɺελοΫͱ͍͏୯ҐͰ؅ཧ͞Ε·͢ɻ

    View Slide

  7. $MPVE'PSNBUJPOͱ͸
    $MPVE'PSNBUJPOͷ͓͞Β͍
    IUUQTEPDTBXTBNB[PODPNKB@KQ"84$MPVE'PSNBUJPOMBUFTU6TFS(VJEFDGOXIBUJTIPXEPFTJUXPSLIUNMΑΓҾ༻
    :".-+40/ͰςϯϓϨʔτϑΝΠϧΛ࡞੒͠ɺϦιʔεͷ
    ϓϩϏδϣχϯάΛߦ͏͜ͱ͕Ͱ͖ΔαʔϏεͰ͢ɻ
    "84ϦιʔεΛݸผʹ࡞੒ɺઃܭͯ͠ɺͦΕͧΕͷґଘؔ܎
    Λߟ͑Δඞཁ͸͋Γ·ͤΜɻ
    ࡞੒͞ΕͨϦιʔε͸ɺελοΫͱ͍͏୯ҐͰ؅ཧ͞Ε·͢ɻ
    ɹςϯϓϨʔτ಺ͰϦιʔεͷґଘؔ܎͸
    ɹߟ͑Δඞཁ͕͋Γ·͢ɻ

    View Slide

  8. $MPVE'PSNBUJPOͱ͸
    $MPVE'PSNBUJPOͷ͓͞Β͍
    IUUQTEPDTBXTBNB[PODPNKB@KQ"84$MPVE'PSNBUJPOMBUFTU6TFS(VJEFDGOXIBUJTIPXEPFTJUXPSLIUNMΑΓҾ༻
    :".-+40/ͰςϯϓϨʔτϑΝΠϧΛ࡞੒͠ɺϦιʔεͷ
    ϓϩϏδϣχϯάΛߦ͏͜ͱ͕Ͱ͖ΔαʔϏεͰ͢ɻ
    "84ϦιʔεΛݸผʹ࡞੒ɺઃܭͯ͠ɺͦΕͧΕͷґଘؔ܎
    Λߟ͑Δඞཁ͸͋Γ·ͤΜɻ
    ࡞੒͞ΕͨϦιʔε͸ɺελοΫͱ͍͏୯ҐͰ؅ཧ͞Ε·͢ɻ
    ɹෳ਺ςϯϓϨʔτΛ࢖͏৔߹͸ɺෳ਺ͷελοΫ͕Ͱ͖·͢ɻ
    ɹελοΫؒͰͷґଘؔ܎͕ൃੜ͠·͢ɻ

    View Slide

  9. $MPVE'PSNBUJPOͱ͸
    $MPVE'PSNBUJPOͷ͓͞Β͍
    IUUQTEPDTBXTBNB[PODPNKB@KQ"84$MPVE'PSNBUJPOMBUFTU6TFS(VJEFDGOXIBUJTIPXEPFTJUXPSLIUNMΑΓҾ༻
    :".-+40/ͰςϯϓϨʔτϑΝΠϧΛ࡞੒͠ɺϦιʔεͷ
    ϓϩϏδϣχϯάΛߦ͏͜ͱ͕Ͱ͖ΔαʔϏεͰ͢ɻ
    "84ϦιʔεΛݸผʹ࡞੒ɺઃܭͯ͠ɺͦΕͧΕͷґଘؔ܎
    Λߟ͑Δඞཁ͸͋Γ·ͤΜɻ
    ࡞੒͞ΕͨϦιʔε͸ɺελοΫͱ͍͏୯ҐͰ؅ཧ͞Ε·͢ɻ
    ɹ"84Λ࢖͏Ҏ্ɺͲ͔͜Ͱґଘؔ܎͸ઈରʹग़͖ͯ·͢ɻ
    ɹґଘؔ܎ΛΘ͔Γ΍͘͢؅ཧ͢Δͷ͕؊ͩͱࢥ͍·͢ɻ

    View Slide

  10. ࢲతਏ͍$MPVE'PSNBUJPO

    View Slide

  11. ڊେͳςϯϓϨʔτ
    ࢲతਏ͍$MPVE'PSNBUJPO
    ಡΉͷ͕ΊͬͪΌେม
    w ͪΐͬͱͨ͠มߋͷσϓϩΠ͕ࠔ೉
    w ࠓ͸Τϥʔ͕ग़ͯ΋ܧଓͰ͖Δ͔ΒϚγ
    w ॳճͷߏங΍ೲ඼ʹ͸༗༻͕ͩӡ༻ʹ͸ෆ޲͖
    w ҰൃͰγεςϜΛϓϩϏδϣχϯάͰ͖Δ
    w ςϯϓϨʔτ֎ͷґଘؔ܎͸࠷௿ݶ
    w ൈ͚࿙Ε͕ͳ͘ͳΔ

    View Slide

  12. ͦͷ··౤ೖͰ͖ͳ͍΋ͷ
    ࢲతਏ͍$MPVE'PSNBUJPO
    ৽نελοΫ࡞੒Ͱಈ࡞͠ͳ͍
    w ॳճͷΈͷରԠ͕ඞཁͰίϝϯτΞ΢τͱ͔
    w ྫʣ3%4ͳΒॳճ͸6TFS1BTTͷࢦఆ͕ඞཁ
    w Ξοϓσʔτ࣌ʹෆཁʹͳͬͯίϝϯτΞ΢τ
    w $POEJUJPOT΍l"84/P7BMVFͰ͍͍ײ͡ʹ͢Δ
    w ςϯϓϨʔτ಺ʹϦιʔε͕௥Ճ͞Εͯґଘؔ܎͕ൃੜ
    w $'O಺Ͱ͸ฒߦͯ͠Ϧιʔε͕࡞੒͞ΕΔ
    w ௥ه͢Δͱॱ࣮࣍ߦ࣌͸໰୊ͳ͍
    w ৽ن࡞੒Ͱ͸ґଘؔ܎ΛղܾͰ͖ͣʹΤϥʔͱͳΔ
    w %FQFOET0O΍3FGͰґଘؔ܎Λ໌ࣔ͢Δ

    View Slide

  13. ΫϩεελοΫࢀরͷଟ༻
    ࢲతਏ͍$MPVE'PSNBUJPO
    ࢀরݩͷελοΫͷ࡟আ΍มߋ͕Ͱ͖ͳ͍
    w ΫϩεελοΫࢀরͱ͸
    w ࢀরݩͷςϯϓϨʔτ&YQPSUͰύϥϝʔλ໊Λ෇༩
    w ࢀরઌͷςϯϓϨʔτ͸*NQPSU7BMVFͰࢀরͰ͖Δ
    w ࢀরݩͷελοΫͷ࡟আɺมߋ͕Ͱ͖ͳ͘ͳΔ
    w ӡ༻࣌ʹࠔΔέʔε͕ൃੜ͢ΔͷͰ஫ҙ
    w มߋ͕ଟ͍ελοΫͷ৔߹͸ҎԼΛར༻
    w $MPVE'PSNBUJPOͷύϥϝʔλͰ౉͢
    w "SOΛμΠφϛοΫࢀর͢Δ

    View Slide

  14. ਏ͘ͳ͍$MPVE'PSNBUJPO

    View Slide

  15. ςϯϓϨʔτ͸ఔΑ͍େ͖͞
    ਏ͘ͳ͍$MPVE'PSNBUJPO
    ϦιʔεͷϥΠϑαΠΫϧͰ෼͚Δ
    w ॳظߏஙʹඞཁͳ΋ͷ
    w ؂ࠪܥɿ$MPVE5SBJM $POpH (VBSE%VUZͳͲ
    w *".ɿ*".6TFS (SPVQ 3PMF
    w ωοτϫʔΫɿ3PVUF 71$ *(8 /"5ͳͲ
    w ӡ༻ʹར༻͢Δ΋ͷ
    w 4/4
    w $IBUCPU
    w Ӭଓతʹར༻͢Δ΋ͷ
    w 4 &$3
    w 3%4 %ZOBNP%#

    View Slide

  16. ελοΫ࡞੒ॱ͸࢒͢
    ਏ͘ͳ͍$MPVE'PSNBUJPO
    ΫϩεελοΫࢀরͰࠔΒͳ͍Α͏ʹ͢Δ
    w 3&"%.&Λ४උͯ͠هࡌ͢Δ
    w ϑΝΠϧʹ൪߸Λৼͬͯ΋͍͍
    w ΫϩεελοΫࢀর͍ͯ͠Δ͜ͱΛղΔΑ͏ʹ͢Δ
    w (JUʹςϯϓϨʔτͱڞʹอଘ؅ཧ͢Δ
    w ESBXJPͰਤղ΋Ұॹʹίϛοτ͢Δͱ၆ᛌͰ͖Δ
    | テンプレート | 主なリソース | 説明 |
    | ------------- | ------------------------------ | ——————————————————————————————————————— |
    | Audit.yml | CloudTrail, Config, GuardDuty | 監査用 |
    | IAM.yml | IAM | IAM 作成 |
    | Network.yml | VPC, IGW, NAT, Route53 | VPC 作成, IPv4/IPv6, Route53 |
    | SNS.yml | SNS | 通知用 SNS Topics |
    | Chatbot.yml | Chatbot | Chatbot 通知作成, Audit/SNS 依存あり |
    | ECR.yml | ECR | ECR 作成 |
    | Datastore.yml | S3, KMS | ログ、リソース S3 |
    | DynamoDB.yml | DynamoDB | DynamoDB 作成 |
    | RDS.yml | RDS(Aurora Cluster), SG, SNS | Aurora 作成, VPC/SNS/Datastore 依存あり |

    View Slide

  17. $MPVE'PSNBUJPOΛ࢖Θͳ͍
    ਏ͘ͳ͍$MPVE'PSNBUJPO
    શͯΛ$'OͰແཧʹ΍Βͳ͍
    w ౓͔͠࡞ۀΛߦΘͳ͍΋ͷ͸$-*Ͱߦ͏
    w $-*ͷίϚϯυΛ࢒ͯ͠࠶ར༻͢Δ
    w "1*ͳͲͷόοΫΤϯυҰࣜ͸ผπʔϧָ͕
    w ։ൃऀ͕ΨϦΨϦ։ൃ͢Δ෦෼
    w 4FSWFSMFTT'SBNFXPSL 4". $%,Λ࢖͏
    w "1*(BUFXBZ-BNCEB
    w "-#&$4
    w $*$%ύΠϓϥΠϯ

    View Slide

  18. ·ͱΊ

    View Slide

  19. ແཧͷͳ͍ൣғͰ$'OΛ࢖͓͏
    ·ͱΊ
    w ςϯϓϨʔτ͸ఔΑ͍େ͖͞ʹ
    w ϥΠϑαΠΫϧͰ੾Γ෼͚Δ
    w มԽ͕গͳ͍΋ͷ͸ΫϩεελοΫࢀর͢Δ
    w ґଘؔ܎͕ग़ͯ͠·͏͕3&"%.&Ͱิ଍
    w ςϯϓϨʔτͷ࠶ར༻ੑΛ্͛Δ
    w $POEJUJPOT΍"84/P7BMVFΛ্खʹ࢖͏
    w Ұ౓͔͠࢖Θͳ͍΋ͷ͸ผखஈ
    w $-*΋׆༻
    w όοΫΤϯυ͸$'OΛੜ੒͢Δπʔϧָ͕
    w 4FSWFSMFTT'SBNFXPSL 4". $%,

    View Slide

  20. ஥ؒืूத
    ΧδϡΞϧ໘ஊ΋ͯ͠·͢
    w ϓϩδΣΫτϚωʔδϟʔ
    w 1.0#31%9ܦݧऀ
    w όοΫΤϯυΤϯδχΞ
    w "84 (P1ZUIPO %PDLFSܦݧऀ
    1IPUP1",65"40
    'POU.PSJTBXB

    View Slide