Slide 1

Slide 1 text

AWSॳ৺ऀͬͯͲ͏΍ͬͯAWSΛֶͿ? ࢁས ࿇ ʙΞϓϦΤϯδχΞ͕΍ͬͯྑ͔ͬͨΞʔΩςΫνϟֶशํ๏ʙ JAWS-UGॳ৺ऀࢧ෦#61 ॳ৺ऀ޲͚ΦϯϥΠϯLTେձ 2024/07/24

Slide 2

Slide 2 text

ࣗݾ঺հ ɾ2022೥ʹΤϯδχΞσϏϡʔ 🎉 ɹɾ࠷ॳ͸ϑϩϯτΤϯυ (TypeScript / Vue) ɹɾࠓ͸όοΫΤϯυ (TypeScript) ɾॳొஃʂʂ ɾࢁས ࿇ ɹɾX: @yama_ren_tw ɹɾGitHub: @ren-yamanashi

Slide 3

Slide 3 text

AWSֶशͷ໨త ɾͳͥAWSֶशΛ͍ͨ͠ʁ ɹɾωοτϫʔΫपΓʹڵຯΛ࣋ͪ࢝Ίͨɾɾɾ (͖͔͚ͬ͸HTTPαʔόʔͷࣗ࡞ͩͬͨ) ɹɾࠓޙۀ຿ͰΠϯϑϥܥͷλεΫ΋औΓ૊ΊΔΑ͏ʹͳΓ͍ͨ ΞϓϦΤϯδχΞͷࢲ͕ɺͳͥAWSΛֶश͠Α͏ͱࢥͬͨͷ͔

Slide 4

Slide 4 text

AWSֶशͷ໨త ɾͲ͏΍ͬͯAWSֶशΛਐΊΔʁ ɹɾۀ຿ͰAWSʹΨοπϦ৮ΕΔͷ͸஌ࣝతʹ΋೉͍͠ ɹɾࢿ֨ࢼݧۦಈͰ஌ࣝΛ͚ͭΔ 🤔 Ͳ͏΍ֶͬͯश͢Δɾɾɾʁ

Slide 5

Slide 5 text

AWSֶशͷ໨త ɾखΛಈ͔͠ͳ͕Βମܥతʹֶͼ͍ͨʂ ɹɾݸਓֶशͱͯ͠WebAPIΛAWSͰߏங ɹɾͦͷաఔͰ৭ʑͳAWSϦιʔεʹ৮Εͯ஌ࣝΛ͚͍ͭͯ͘ ɹɹɾͨͩɺAWSϦιʔεߏ੒ΛͲ͏ͨ͠Βྑ͍͔Θ͔Βͳ͍ ɾͲ͏΍ͬͯAWSֶशΛਐΊΔʁ ɹɾۀ຿ͰAWSʹΨοπϦ৮ΕΔͷ͸஌ࣝతʹ΋೉͍͠ ɹɾࢿ֨ࢼݧۦಈͰ஌ࣝΛ͚ͭΔ 🤔 Ͳ͏΍ֶͬͯश͢Δɾɾɾʁ

Slide 6

Slide 6 text

AWSֶशͷ໨త ɾखΛಈ͔͠ͳ͕Βମܥతʹֶͼ͍ͨʂ ɹɾݸਓֶशͱͯ͠WebAPIΛAWSͰߏங ɹɾͦͷաఔͰ৭ʑͳAWSϦιʔεʹ৮Εͯ஌ࣝΛ͚͍ͭͯ͘ ɹɹɾͨͩɺAWSϦιʔεߏ੒ΛͲ͏ͨ͠Βྑ͍͔Θ͔Βͳ͍ ɾͲ͏΍ͬͯAWSֶशΛਐΊΔʁ ɹɾۀ຿ͰAWSʹΨοπϦ৮ΕΔͷ͸஌ࣝతʹ΋೉͍͠ ɹɾࢿ֨ࢼݧۦಈͰ஌ࣝΛ͚ͭΔ 🤔 Ͳ͏΍ֶͬͯश͢Δɾɾɾʁ → ·ͣ͸ΞʔΩςΫνϟͷֶश͔Βʂʂ

Slide 7

Slide 7 text

΍ͬͯྑ͔ͬͨ ΞʔΩςΫνϟֶशํ๏

Slide 8

Slide 8 text

ΞʔΩςΫνϟֶशํ๏ ɾ৭ʑͳΞʔΩςΫνϟΛ࡞ͬͯൺֱ͍ͨ͠ ɹɾ؆୯ʹ࡞Γ͍ͨ ❌ ࡉ͔͍ઃఆͱ͔Λ৭ʑߟྀ͠ͳ͕Β ⭕ ͋Δఔ౓σϑΥϧτͷઃఆΛऔΓೖΕΔ ɾCDKͰߏங͕ྑͦ͞͏ʁ ɹɾTypeScript͕࢖͑ΔͷͰɺίʔσΟϯάͷษڧʹ΋ͳΓͦ͏ ɹɾࣾ಺Ͱ͸CDKҠߦͷऔΓ૊Έ͕ਐΜͰ͍Δ ֶशͷ໨తɿݸਓֶशͰద੾ͳΞʔΩςΫνϟΛબ୒Ͱ͖ΔΑ͏ʹͳΔ͜ͱ

Slide 9

Slide 9 text

ΞʔΩςΫνϟֶशํ๏ ɾCDK ͷ L3 ConstructΛ࢖༻ AWSϦιʔεΛ૊Έ߹Θͤͯɺ͍͍ײ͡ʹύοέʔδϯάͯ͘͠Ε͍ͯΔ (L3 Construct͸ Construct Hub Ͱݕࡧͨ͠Γ) ɹˠ͜ΕΛ࢖༻ͯ͠ɺந৅తɾ؆୯ʹΞʔΩςΫνϟΛߏங CDKΛ࢖༻ͯ͠ߏங ɾCDKʹΑͬͯੜ੒͞ΕΔCloudFormationςϯϓϨʔτΛݟͯɺϦιʔεͷҰཡΛ೺Ѳ͢Δ ɾCloudFormationͷίϯιʔϧ͔Β؆୯ʹ֤AWSϦιʔεʹඈ΂ͯɺ ࣮ࡍͷઃఆ஋΋؆୯ʹ֬ೝͰ͖Δ ίεύΑ͘Ϧιʔεͷߏ੒Λཧղ͢Δ͜ͱ͕Ͱ͖ͨʂʂ

Slide 10

Slide 10 text

ΞʔΩςΫνϟֶशํ๏ ۩ମతͳߏஙྫ(ίʔυ) ͨͬͨ20ߦఔ౓ͰɺALB + ECS(Fargate) ͕ߏஙͰ͖Δ

Slide 11

Slide 11 text

ΞʔΩςΫνϟֶशํ๏ ۩ମతͳֶशͷྲྀΕ 1. CDKͰߏங 2. CloudFormationͰϦιʔεߏ੒ɾৄࡉઃఆͷ೺Ѳ 3. Ϧιʔεߏ੒΍ৄࡉઃఆͰؾʹͳͬͨͱ͜ΖΛௐ΂Δ ALB + ECS(Fargate)ͷଞʹ΋ɺALB + ECS(EC2) ΍ API Gateway + LambdaͳͲ ৭ʑͳΞʔΩςΫνϟΛߏஙͯ͠ɺϦιʔεߏ੒Λൺֱ →ͦΕͧΕͷϦιʔεߏ੒ͷಛ௃ͳͲΛௐ΂ͳ͕Β೺Ѳ ࣗ෼ͷ໨తʹదͨ͠ΞʔΩςΫνϟΛબͿͨΊͷ஌ࣝΛಘΒΕͨ

Slide 12

Slide 12 text

·ͱΊ ɾCDK L3 ConstructΛ࢖༻͢Δ͜ͱͰɺAWSॳ৺ऀͷࢲͰ΋ ʮͲͷΑ͏ͳΞʔΩςΫνϟߏ੒Ͱߏங͢Δͷ͕ྑ͍͔ʯΛ൑அ͢ΔͨΊͷ஌͕ࣝಘΒΕ ͨʂʂ ɾಛʹࢲͷΑ͏ͳීஈΠϯϑϥۀ຿ʹ͋·Γ৮Εͳ͍ΞϓϦدΓͷΤϯδχΞ͕AWSֶशΛ࢝ ΊΔͷʹྑ͍ͱײͨ͡ɻ ɾCDKָ͍͠ʂʂ