Slide 1

Slide 1 text

©Fusic Co., Ltd. 1 αʔόʔϨεΒ͠͞Λҙࣝͨ͠ AWSʹ͓͚Δ։ൃख๏ 2024.04.27 ਗ਼Ո࢙࿠ @seike460 Cloud on the BEACH 2024 ʙ͍Ζ͍ΖͳӢͷܗʙ

Slide 2

Slide 2 text

©Fusic Co., Ltd. 2 ਗ਼Ո ࢙࿠ @seike460 AWS Community Builder Serverless ླྀٿେֶ޻ֶ෦ిؾిࢠ޻ֶՊ 055538A ίϛϡχςΟ Fukuoka.php Fukuoka.go JAWS-UG Fukuoka Serverless Meetup Fukuoka Cloudflare Meetup Fukuoka JP_Stripes Fukuoka ࣗݾ঺հ ͸͡Ίʹ גࣜձࣾFusic ϓϦϯγύϧΤϯδχΞ/ΤόϯδΣϦετ

Slide 3

Slide 3 text

©Fusic Co., Ltd. 3 CONTENTS ໨࣍ 1. αʔόʔϨεͱ͸ͳΜͳͷ͔ 2. αʔόϨεΒ͠͞ͷਖ਼ମ 3. αʔόϨεΒ͍͠։ൃ 4. ۩ମతͳࣄྫ 5. ·ͱΊ

Slide 4

Slide 4 text

©Fusic Co., Ltd. 4 αʔόʔϨεͱ͸ͳΜͳͷ͔ 1

Slide 5

Slide 5 text

©Fusic Co., Ltd. 5 αʔόʔϨεͱ͸ͳΜͳͷ͔ 言 Cloud Native Computing Foundation CNCF Serverless Whitepaper v 1 . 0 行 https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview

Slide 6

Slide 6 text

©Fusic Co., Ltd. 6 αʔόʔϨεͷϝϦοτ αʔόʔϨε͸αʔόʔ؅ཧͷෳࡶ͞Λந৅Խ͠ɺ ։ൃऀ͕ΞϓϦέʔγϣϯߏஙʹूதͰ͖ΔΑ͏ʹ͢ΔΞϓϩʔν 入 入 - ӡ༻ͷ؆ૉԽ - ίετޮ཰ - ΦʔτεέʔϦϯά - ։ൃͷਝ଎Խ - Πϕϯτۦಈܕ - Մ༻ੑͱ৴པੑ

Slide 7

Slide 7 text

©Fusic Co., Ltd. 7 ӡ༻ͷ؆ૉԽ αʔόʔϨεΞʔΩςΫνϟ͸αʔόʔͷ؅ཧ΍ӡ༻ʹ͍ͭͯ৺഑͢Δඞཁ͕ͳ͍ ΠϯϑϥετϥΫνϟͷ؅ཧ͸AWS౳ͷΫϥ΢υϕϯμʔ͕୲౰͠ɺ ΞϓϦέʔγϣϯͷσϓϩΠ΍εέʔϦϯά΋ࣗಈͰߦΘΕΔ

Slide 8

Slide 8 text

©Fusic Co., Ltd. 8 ίετޮ཰ αʔόʔϨεΞʔΩςΫνϟͰ͸ɺҰൠతʹ࣮ࡍʹ࢖༻͞ΕͨϦιʔεʹରͯ͠՝ۚ ैདྷͷ༧໿ܕΠϯελϯε΍ৗ࣌Քಇ͢Δαʔόʔʹൺ΂ɺ ίετΛେ෯ʹ࡟ݮͰ͖ΔՄೳੑ͕ߴ͍ ※େྔΞΫηε͕ൃੜͨ͠ͱ͖͸ɺʮͦͷϦΫΤετΛࡹ͚ͯ͠·͏ʯͷͰ ɹίετ͕ߴ͘ͳΔՄೳੑ͕͋Δ

Slide 9

Slide 9 text

©Fusic Co., Ltd. 9 ΦʔτεέʔϦϯά αʔόʔϨεΞʔΩςΫνϟ΁ͷτϥϑΟοΫ΍ෛՙ͕૿Ճ͢Δͱɺ ࣗಈతʹϦιʔεΛௐ੔͠ɺඞཁʹԠͯ͡εέʔϧΞοϓɾμ΢ϯ͠·͢ τϥϑΟοΫͷ༧ଌ΍Ϧιʔεͷखಈௐ੔͔Βղ์͞ΕΔ ※܁Γฦ͠ʹͳΔ͕ʮτϥϑΟοΫΛࡹ͚ͯ͠·͏ʯͷͰ ɹҙਤ͠ͳ͍ΞϓϦέʔγϣϯͷಈ࡞ͳͲͰͷແݶεέʔϦϯάʹ͸஫ҙ͕ඞཁͰ ɹઃఆͰରॲ͢Δඞཁ͕͋Δ

Slide 10

Slide 10 text

©Fusic Co., Ltd. 10 ։ൃͷਝ଎Խ αʔόʔϨεΞʔΩςΫνϟΛ࠾༻͢Δͱɺ։ൃऀ͸ΠϯϑϥετϥΫνϟͷઃఆ΍ ؅ཧ͔Βղ์͞ΕɺΞϓϦέʔγϣϯͷίʔυʹूதՄೳʹ ΋ͪΖΜɺॳظΞʔΩςΫνϟͷઃఆ͸YamlͳͲͷίʔυͰ؅ཧ͢Δඞཁ͕͋Δ͕ αʔόʔͷߏஙΛߦ͏ΑΓ΋໌Β͔ͳ։ൃ଎౓ͷ޲্͕ظ଴Ͱ͖ΔͷͰ ϓϩμΫτͷࢢ৔౤ೖ·Ͱͷ࣌ؒΛ୹ॖՄೳʹ

Slide 11

Slide 11 text

©Fusic Co., Ltd. 11 Πϕϯτۦಈܕ αʔόʔϨεΞʔΩςΫνϟ͸ҰൠతʹΠϕϯτۦಈܕͷΞϓϩʔνΛ࠾༻͍ͯ͠Δ ಛఆͷΠϕϯτ΍τϦΨʔʹԠͯ͡αʔόʔϨεΞʔΩςΫνϟ͕࣮ߦ͞Ε ϦΞϧλΠϜͰͷσʔλॲཧ΍ΞϓϦέʔγϣϯͷ൓Ԡੑ͕޲্

Slide 12

Slide 12 text

©Fusic Co., Ltd. 12 Մ༻ੑͱ৴པੑ Ϋϥ΢υϕϯμʔͷαʔόʔϨεαʔϏε͸ɺߴ͍Մ༻ੑΛอূ͢ΔͨΊʹઃܭ ΞϓϦέʔγϣϯ͸μ΢ϯλΠϜͷϦεΫ͕௿ݮ͞Εɺ ΑΓ৴པੑͷߴ͍αʔϏεΛఏڙ͕ՄೳʹͳΔ

Slide 13

Slide 13 text

©Fusic Co., Ltd. 13 αʔόʔϨεͷ֓೦ΛऔΓೖΕΔϝϦοτ͸ଟ਺ 入 入 入 入 大 小 用 行

Slide 14

Slide 14 text

©Fusic Co., Ltd. 14 αʔόʔϨεͷσϝϦοτ αʔόϨε͸ϝϦοτ͚ͩͰ͸ͳ͍ɺσϝϦοτ΋͋Δ Ұ൪େ͖͍ͷ੍͕ݶͱͷઓ͍ - ࣮ߦ੍࣌ؒݶ - Ϧιʔε੍ݶ - σϓϩΠϝϯταΠζ੍ݶ - ಉ࣮࣌ߦ੍ݶ - APIϨʔτ੍ݶ

Slide 15

Slide 15 text

©Fusic Co., Ltd. 15 ੍໿ͱ੤໿ αʔόϨεʹ͓͚Δ੍໿͸ʮ੍໿ͱ੤໿ʯͱಉ͡ঢ়ଶʹ͋Δ - ੍໿ΛकΔࣄʹΑΓαʔόʔϨεͷେ͖ͳྗΛಘ͍ͯΔ͜ͱ - ߋʹ੍໿ΛഁΔ͜ͱ͸ຊ౰ʹιϑτ΢ΣΞΞʔΩςΫνϟͱͯ͠ਖ਼͍͠ͷ͔ʹண໨

Slide 16

Slide 16 text

©Fusic Co., Ltd. 16 αʔόʔϨεͷ੍໿ΛৼΓฦΔ - ࣮ߦ੍࣌ؒݶ - ࣮ߦ͕࣌ؒ௕͍͜ͱ͕ت͹͍͠ͷ͔ - Ϧιʔε੍ݶ - ڊେͳCPU΍ϝϞϦΛར༻͢Δͷ͸ت͹͍͠ͷ͔ - σϓϩΠϝϯταΠζ੍ݶ - σϓϩΠϝϯταΠζ͕େ͖͍͜ͱ͸ت͹͍͠ͷ͔ - ಉ࣮࣌ߦ੍ݶ - ಉ࣮࣌ߦ͢Δϓϩηε਺͕ଟେͳࣄ͸ت͹͍͠ͷ͔ - APIϨʔτ੍ݶ - APIͷίʔϧ਺͕ଟେͳࣄ͸ت͹͍͠ͷ͔

Slide 17

Slide 17 text

©Fusic Co., Ltd. 17 ࣮ߦ੍࣌ؒݶ - ࣮ߦ͕࣌ؒ௕͍͜ͱ͕ت͹͍͠ͷ͔ - CPUͱϝϞϦͷ઎༗཰্͕͕Δ͜ͱʹͳΔͷͰɺ୹͚Ε͹୹͍΄Ͳ͕Α͍

Slide 18

Slide 18 text

©Fusic Co., Ltd. 18 Ϧιʔε੍ݶ - ڊେͳCPU΍ϝϞϦΛར༻͢Δͷ͸ت͹͍͠ͷ͔ - Ϧιʔε֬อྉ͕ଟ͍ -> ίετ͕͔͔Δ͜ͱʹͳΔͷͰɺখ͍͞΄͏͕ྑ͍

Slide 19

Slide 19 text

©Fusic Co., Ltd. 19 σϓϩΠϝϯταΠζ੍ݶ - σϓϩΠϝϯταΠζ͕େ͖͍͜ͱ͸ت͹͍͠ͷ͔ - σϓϩΠࣗମ͕஗͘ͳΔ͠ɺεέʔϦϯάͷ΋Өڹ͕͋ΔͷͰখ͍͞΄͏͕ྑ͍

Slide 20

Slide 20 text

©Fusic Co., Ltd. 20 ಉ࣮࣌ߦ੍ݶ - ಉ࣮࣌ߦ͢Δϓϩηε਺͕ଟେͳࣄ͸ت͹͍͠ͷ͔ - ॲཧΛ෼ׂग़དྷΔͷ͸خ͍͕͠ɺແҝʹ૿΍͍ͨ͠Θ͚Ͱ͸ͳ͍

Slide 21

Slide 21 text

©Fusic Co., Ltd. 21 APIϨʔτ੍ݶ - APIͷίʔϧ਺͕ଟେͳࣄ͸ت͹͍͠ͷ͔ - ར༻ྉ = ίετʹ௚઀Өڹͯ͠͠·͏ͨΊগͳ͍΄͏͕๬·͍͠

Slide 22

Slide 22 text

©Fusic Co., Ltd. 22 αʔόʔϨεͷ੍໿ͱ޲͖߹͏ ੍໿Λड͚ೖΕΔࣄͰιϑτ΢ΣΞΞʔΩςΫνϟͱͯ͠΋༏लͳ΋ͷʹ Ϋϥ΢υαʔϏεͷ੍໿Λҙࣝͨ͠։ൃΛߦ͏͜ͱͰɺ αʔόʔϨεͷϝϦοτͷڗडΛߦ͍ͳ͕Βɺ ιϑτ΢ΣΞΞʔΩςΫνϟͱͯ͠ਖ਼͍͠΋ͷʹ ࠓճ͸ͦͷαʔόʔϨεΒ͍͠։ൃΛߟ͑·͢

Slide 23

Slide 23 text

©Fusic Co., Ltd. 23 αʔόϨεΒ͠͞ͷਖ਼ମ 2

Slide 24

Slide 24 text

©Fusic Co., Ltd. 24 αʔόϨεΒ͠͞ͷਖ਼ମ ੈͷத͸ϚωʔδυαʔϏεͰᷓΕ͍ͯΔ ҰํͰαʔόʔϨεͱ͸֓೦Ͱ͋Γʮ͜ͷαʔϏε͸׬શʹαʔόʔϨεͰ͋Δʯͱ அݴͰ͖ΔαʔϏε͸࣮͸೉͍͠ͷͰ͸ͳ͍͔ͱߟ͍͑ͯ·͢ αʔόʔϨεͰ͋ΔɺαʔόʔϨεͰ͸ͳ͍ͱ͍͏ٞ࿦ࣗମɺ ࣮͸ߦ͏ඞཁ͕ͳ͍ͷ͔΋͠Εͳ͍ େࣄͳͷ͸αʔόʔϨεͱ͍͏֓೦ͷཧղ౓ΛਂΊ ʮαʔόʔϨεΒ͠͞ͷਖ਼ମΛ௫Ή͜ͱʯ

Slide 25

Slide 25 text

©Fusic Co., Ltd. 25 Ϋϥ΢υωΠςΟϒͰ͋Ζ͏ͱ͢Δ͜ͱ momentoʹΑΔදݱ ͨͩ͠ݸਓతͳҙࣝͱͯ͠͸ʮ౴͑ͩͱߟ͑Δඞཁ͸ͳ͍ʯ αʔόʔϨεΒ͍͠αʔϏε΋Ξοϓσʔτ͞Ε͍ͯ͘͠ɺ ৽͍֓͠೦ͷ௥ՃʹΑΓαʔόϨεΒ͠͞͸มΘ͍ͬͯ͘ 1. ϓϩϏδϣϯෆཁɺ؅ཧෆཁ 2. ࠷௿ྉۚͷͳ͍࢖ͬͨ෼͚ͩͷࢧ෷ 3. 1 ͭͷ API ݺͼग़͠Ͱར༻Մೳ 4. ܭըఀࢭ͕ͳ͍ 5. Πϯελϯε͕ແ͍

Slide 26

Slide 26 text

©Fusic Co., Ltd. 26 AWSʹ͓͚ΔαʔόʔϨεΒ͍͠αʔϏε ࠓճ͸AWSʹ͓͚ΔαʔόʔϨεΒ͍͠αʔϏεʹ஫໨ - AWSΛ୅දͱ͢ΔαʔόʔϨεαʔϏε - AWS Lambda: Πϕϯτൃੜ࣌ʹίʔυΛ࣮ߦ͠ɺ ίϯϐϡʔςΟϯάϦιʔεΛࣗಈతʹ؅ཧ͢ΔίϯϐϡʔςΟϯάαʔϏε ʮαʔόʔϨεͱ͍͑͹AWS Lambdaʯͱߟ͑Δํ΋ଟ͍ͱࢥ͍·͢

Slide 27

Slide 27 text

©Fusic Co., Ltd. 27 αʔόʔϨεͷ࢝૆ɺAWS Lambda - AWS Lambdaͷಛ௃ - αʔόʔϨε࣮ߦ؀ڥ - αʔόʔͷઃఆɺ؅ཧɺεέʔϦϯάͷඞཁ͕ͳ͍ - Πϕϯτۦಈ - ଟ༷ͳΠϕϯτιʔεʹ൓Ԡ࣮ͯ͠ߦ - HTTPϦΫΤετ - σʔλϕʔεมߋ - Ωϡʔϝοηʔδ - εέʔϦϯά - ࣗಈͰεέʔϧΞοϓɾμ΢ϯ͠ɺϦΫΤετʹଈ࠲ʹԠ౴ɻ

Slide 28

Slide 28 text

©Fusic Co., Ltd. 28 αʔόʔϨεΒ͍͠αʔϏεΛ૊Έ߹ΘͤΔ AWS LambdaΛத৺ʹαʔόʔϨεͷ֓೦ΛऔΓೖΕ͍ͯΔɺ ݩʑؚΜͰ͍ͨαʔϏεΛ૊Έ߹Θ੍ͤ໿Λҙࣝͨ͠ɺαʔόʔϨεΒ͍͠։ൃΛߦ͏ ੍໿Λड͚ೖΕΔ͜ͱͰαʔόʔϨεͷԸܙΛड͚ϝϦοτͷڗड͢Δ

Slide 29

Slide 29 text

©Fusic Co., Ltd. 29 αʔόʔϨεΒ͍͠ϑϩϯτΤϯυ Amazon CloudfrontɿAWSʹ͓͚ΔCDNɺS3ͱ૊Έ߹ΘͤΔ͜ͱͰ੩త഑৴Մೳ AWS AmplifyɿHostingػೳΛ༗͢ΔϑϧελοΫͷ΢ΣϒΞϓϦέʔγϣϯ

Slide 30

Slide 30 text

©Fusic Co., Ltd. 30 αʔόʔϨεΒ͍͠όοΫΤϯυ AWS LambdaɿAPI Gateway͔ΒͷϦΫΤετΛड͚औΓɺؔ਺Λ࣮ߦ AWS AppSyncɿGraphQLΛఏڙ͢ΔϑϧϚωʔδυαʔϏε

Slide 31

Slide 31 text

©Fusic Co., Ltd. 31 αʔόʔϨεΒ͍͠ετϨʔδʢσʔλϕʔεʣ Amazon S3: ϑΝΠϧΞοϓϩʔυͳͲͷΦϒδΣΫτૢ࡞ Amazon DynamoDB: NoSQLʹΑΔςʔϒϧߋ৽ Amazon SQS: ΩϡʔͷΤϯΩϡʔٴͼσΩϡʔ͕Մೳ AWS CloudWatch:ϩάͱϝτϦΫεΛऔಘ

Slide 32

Slide 32 text

©Fusic Co., Ltd. 32 αʔόʔϨεΒ͍͠ΠϕϯττϦΨʔ Amazon S3: ϑΝΠϧΞοϓϩʔυͳͲͷΠϕϯτͰτϦΨʔ Amazon DynamoDB: ςʔϒϧߋ৽ʹΑΔτϦΨʔ API Gateway: HTTPϦΫΤετΛड͚ͯτϦΨʔ Amazon SQS: ΤϯΩϡʔʹΑΔτϦΨʔ AWS CloudWatch: ఆظతͳεέδϡʔϧ·ͨ͸ϩάͷಛఆͷΠϕϯτʹΑΔτϦΨʔ

Slide 33

Slide 33 text

©Fusic Co., Ltd. 33 αʔόϨεΒ͍͠։ൃ 3

Slide 34

Slide 34 text

©Fusic Co., Ltd. 34 ։ൃͷϕετϓϥΫςΟε αʔόʔϨε։ൃʹ͓͚Δ࠷ྑͷख๏Λཧղ͠ɺޮ཰త͔ͭηΩϡΞͳΞϓϦέʔγϣ ϯΛߏங͢ΔͨΊͷجຊݪଇͱ۩ମతͳΞϓϩʔνΛֶͼ·͢ɻ The Twelve-Factor Appͷߟ͕͑໾ʹཱͭ

Slide 35

Slide 35 text

©Fusic Co., Ltd. 35 The Twelve-Factor App Twelve-Factor App͸ιϑτ΢ΣΞ։ൃʹ͓͍ͯޮՌతͳํ๏࿦Λఏڙͯ͠·͕͢ ಛʹαʔόʔϨεΞʔΩςΫνϟͷίϯςΩετͰͷద༻͕ඇৗʹ༗ӹ αʔόʔϨεͷ։ൃ͢Δࡍʹ৮ΒΕΔ͜ͱ͕ଟ͍ ࣍ϖʔδ͔Βͦͷ۩ମྫΛ͓͖ࣔͯ͠·͢

Slide 36

Slide 36 text

©Fusic Co., Ltd. 36 The Twelve-Factor App I. ίʔυϕʔε ɹόʔδϣϯ؅ཧ͞Ε͍ͯΔ1ͭͷίʔυϕʔεͱෳ਺ͷσϓϩΠ II. ґଘؔ܎ ɹґଘؔ܎Λ໌ࣔతʹએݴ͠෼཭͢Δ III. ઃఆ ɹઃఆΛ؀ڥม਺ʹ֨ೲ͢Δ IV. όοΫΤϯυαʔϏε ɹόοΫΤϯυαʔϏεΛΞλον͞ΕͨϦιʔεͱͯ͠ѻ͏ V. ϏϧυɺϦϦʔεɺ࣮ߦ ɹϏϧυɺϦϦʔεɺ࣮ߦͷ3ͭͷεςʔδΛݫີʹ෼཭͢Δ VI. ϓϩηε ɹΞϓϦέʔγϣϯΛ1ͭ΋͘͠͸ෳ਺ͷεςʔτϨεͳϓϩηεͱ࣮ͯ͠ߦ͢Δ

Slide 37

Slide 37 text

©Fusic Co., Ltd. 37 The Twelve-Factor App VII. ϙʔτόΠϯσΟϯά ɹϙʔτόΠϯσΟϯάΛ௨ͯ͠αʔϏεΛެ։͢Δ VIII. ฒߦੑ ɹϓϩηεϞσϧʹΑͬͯεέʔϧΞ΢τ͢Δ IX. ഇغ༰қੑ ɹߴ଎ͳىಈͱάϨʔεϑϧγϟοτμ΢ϯͰݎ࿚ੑΛ࠷େԽ͢Δ X. ։ൃ/ຊ൪Ұக ɹ։ൃɺεςʔδϯάɺຊ൪؀ڥΛͰ͖Δ͚ͩҰகͤͨ͞ঢ়ଶΛอͭ XI. ϩά ɹϩάΛΠϕϯτετϦʔϜͱͯ͠ѻ͏ XII. ؅ཧϓϩηε ɹ؅ཧλεΫΛ1ճݶΓͷϓϩηεͱ࣮ͯ͠ߦ͢Δ

Slide 38

Slide 38 text

©Fusic Co., Ltd. 38 ։ൃͷਐΊํ ։ൃΛߦ͏ͱ͖͸ɺجຊతʹDockerͳͲͷίϯςφΛϕʔεͱͨ͠ αʔόʔϨεαʔϏεͷΤϛϡϨʔτΛલఏͱͯ͠ߟ͑ͳ͕Β εςʔδϯάʹ͓͍ͯ͸AWSʹ࣮ࡍʹϦιʔεΛ࡞੒͢ΔͳͲͷߟྀΛߦ͏

Slide 39

Slide 39 text

©Fusic Co., Ltd. 39 AWS SAM - ςϯϓϨʔτࢦ޲ YAMLϑΥʔϚοτͰهड़͞ΕͨςϯϓϨʔτϑΝΠϧΛ࢖༻ αʔόʔϨεΞϓϦέʔγϣϯͷϦιʔεΛఆٛ - ϩʔΧϧςετͱσόοά SAM CLIʹͯϩʔΧϧ؀ڥͰAWS Lambdaؔ਺Λςετٴͼσόοά͕Մೳ - σϓϩΠͷ؆ૉԽ ςϯϓϨʔτʹج͍ͮͯαʔόʔϨεΞϓϦέʔγϣϯΛҰׅͰσϓϩΠ - ౷߹πʔϧͷαϙʔτ SAM͸AWS CloudFormationͱີ઀ʹ࿈ܞ αʔόʔϨεϦιʔεͷ؅ཧɺࣗಈεέʔϦϯάɺ ߋ৽؅ཧ΍ଞͷAWSαʔϏε΍πʔϧνΣʔϯͱͷ౷߹͕Մೳ

Slide 40

Slide 40 text

©Fusic Co., Ltd. 40 ϩʔΧϧΤϛϡϨʔτ - DynamoDB Local AWS DynamoDBͷϩʔΧϧ൛ ։ൃऀ͕ࣗ෼ͷPC΍αʔόʔ্ͰDynamoDBΛ ΤϛϡϨʔτ͢Δ͜ͱ͕Ͱ͖Δ - MinIO AWS S3ޓ׵ͷΦϒδΣΫτετϨʔδΛ ϩʔΧϧΤϛϡϨʔτՄೳͳ ΦϒδΣΫτετϨʔδαʔόʔ - ElasticMQ Amazon SQSޓ׵ͷΩϡʔετϨʔδΛ ϩʔΧϧΤϛϡϨʔτՄೳͳ ϝοηʔδΩϡʔΠϯάγεςϜ

Slide 41

Slide 41 text

©Fusic Co., Ltd. 41 ϩʔΧϧΤϛϡϨʔτΛར༻ͨ͠։ൃ AWS SAMʹͯAWS LambdaΛΤϛϡϨʔτ ઌఔͷαʔϏε΋߹ΘͤͯϩʔΧϧΤϛϡϨʔτ ։ൃ؀ڥͷߏஙΛଈ࣌ʹ։࢝͢Δ͜ͱ͕ग़དྷΔ - ΋ͪΖΜ௨ৗͷಈ࡞֬ೝ΋Մೳ - ϓϩάϥϜͷUnitςετ΋Մೳ - Integrationςετ΋࠶ݱՄೳ

Slide 42

Slide 42 text

©Fusic Co., Ltd. 42 LocalStack - LocalStack AWSΫϥ΢υαʔϏεͷػೳͰ͋Δ LambdaɺS3ɺDynamoDBɺEC2ɺSNSɺSQSɺIAMͳͲ AWSͷଟ͘ͷαʔϏεΛϩʔΧϧϚγϯͰΤϛϡϨʔτ͢ΔͨΊͷ ΦʔϓϯιʔεϑϨʔϜϫʔΫ

Slide 43

Slide 43 text

©Fusic Co., Ltd. 43 ։ൃͷਐΊํ AWS SAMʹͯAWS LambdaΛΤϛϡϨʔτ LocalStackΛར༻ͯ͠ɺDynamoDBɺS3ɺSQS ͳͲΛϩʔΧϧΤϛϡϨʔτ - ΋ͪΖΜ௨ৗͷಈ࡞֬ೝ΋Մೳ - ϓϩάϥϜͷUnitςετ΋Մೳ - Integrationςετ΋࠶ݱՄೳ

Slide 44

Slide 44 text

©Fusic Co., Ltd. 44 ௚઀Ϧιʔεར༻Λߦ͏ ͔͠͠ɺ͋͘·ͰΤϛϡϨʔτ͸ΤϛϡϨʔτ ͳͷͰεςʔδϯάʹ͸࣮ࡍͷϦιʔεΛߏஙͯ͠ɺ ಈ࡞֬ೝ͢ΔͳͲͷબ୒Λߦ͏΂͖ͱߟ͑·͢

Slide 45

Slide 45 text

©Fusic Co., Ltd. 45 CI/CD (GitHub Actions) ϝϯςφϯεΛΫϥ΢υϕϯμʔଆʹ ೚ͤΔ͜ͱ͕ग़དྷΔͳΒɺ ࣮ࡍར༻͢ΔࡍͷσϓϩΠ΋ શͯϝϯςφϯεϑϦʔʹ͍ͨ͠ ͦͷ৔߹͸ར༻ऀ͕ଟ͍ͱࢥΘΕΔ GitHub ActionsΛར༻ͯ͠ɺ αʔόʔϨεΞʔΩςΫνϟͷσϓϩΠ΋Մೳ

Slide 46

Slide 46 text

©Fusic Co., Ltd. 46 CI/CD (Code XXXܥ) ΋ͪΖΜGitHub Actions͕ར༻Ͱ͖ͳͯ͘΋ AWSͷαʔϏεΛར༻ͯ͠CI/CDͷߏங΋Մೳ AWSͷCode XXXܥΛαʔϏεΛར༻͢ΔࣄͰ CI/CDΛߦͬͯɺϓϩάϥϜςετ͔Β σϓϩΠ·ͰΛҠৡ͢Δ͜ͱ͕Մೳ

Slide 47

Slide 47 text

©Fusic Co., Ltd. 47 ۩ମతͳࣄྫ 4

Slide 48

Slide 48 text

©Fusic Co., Ltd. 48 WebγεςϜͷαʔόϨεΞʔΩςΫνϟΛ௥Ճ ߏங͢ΔαΠτʹඞཁͳσʔλΛ࿈ܞݩ͔ΒAPIͰड͚औΔඞཁ͕͋ͬͨ αΠτΛఏڙ͢ΔEC2ʹAPIߏங͢Δख΋͕͋ͬͨɺෛՙ͕৺഑ͩͬͨ API Gateway -> Lambda -> S3ͱड͚औͬͨJsonΛEC2ͷcronͰఆظతʹऔΓࠐΈ WebγεςϜ΁ͷෛՙΛ཈͑Δ͜ͱ͕ग़དྷͨ

Slide 49

Slide 49 text

©Fusic Co., Ltd. 49 ඞཁͳ͚࣌ͩར༻͢Δόονͷ௥Ճ ਂ໷ʹ֎෦API͔Βେྔʹσʔλऔಘ͠ɺσʔλ࡞੒͢Δඞཁ͕͋ͬͨ AWS BatchΛ࠾༻ͯ͠GoͷgoroutineΛར༻ͨ͠ ॲཧߴ଎ԽΛߦ͍ͳ͕Βద੾ʹϩάग़ྗ ॲཧτϨʔεΛՄೳʹͯ͠ɺશମͷॲཧΛίϯτϩʔϧɺਂ໷ͷΈͷىಈͰ׬ྃग़དྷͨ

Slide 50

Slide 50 text

©Fusic Co., Ltd. 50 ϑϧαʔόʔϨεΞʔΩςΫνϟͷ࠾༻ ػցֶशνʔϜ͕࡞ͬͨղੳϓϩάϥϜΛಈ࡞ͤ͞ΔϓϥοτϑΥʔϜ AWS AmplifyΛར༻ͯ͠ര଎ͰWebγεςϜΛ࡞Γͳ͕Βɺ ECRͷίϯςφΛಈ࡞ͤ͞ΔAWS BatchͷStep FunctionsΛߏஙͨ͠ খ͘͞ͳ͍WebγεςϜΛϑϧαʔόʔϨεʹߏங͠ɺϝϦοτΛड͚ͨ

Slide 51

Slide 51 text

©Fusic Co., Ltd. 51 େن໛ΞΫηε ࠓ·Ͱ͸଴ػϦιʔεͷઅ໿ͱ͍͏໨ઢ͕ଟ͔͕ͬͨɺ େن໛ΞΫηεΛࡹ͘αʔόʔϨεΞʔΩςΫνϟΛߏங AWS S3 Selectͱ͍͏Readʹඇৗʹڧ͍ΞʔΩςΫνϟΛ࠾༻͢Δ͜ͱͰ େن໛ΞΫηεʹରԠ

Slide 52

Slide 52 text

©Fusic Co., Ltd. 52 αʔόʔϨεͱ͸Ϋϥ΢υωΠςΟϒͰ͋Ζ͏ͱ͢Δ֓೦ αʔόʔϨεΒ͠͞Λҙࣝͨ͠։ൃΛߦ͏͜ͱͰ Ϋϥ΢υωΠςΟϒͰ͋Δ͜ͱͷϝϦοτΛڗडग़དྷΔ ࣮ࡍͷߏஙࣄྫͰ΋ɺߏஙͨ͠ޮՌ͸ඇৗʹେ͖͔ͬͨ શ͕ͯαʔόʔϨεͰ͋Δඞཁ͸ͳ͍͕ɺ αʔόʔϨεͰ͋Δ͜ͱʹ͸ϝϦοτ͕͋Δ

Slide 53

Slide 53 text

©Fusic Co., Ltd. 53 ·ͱΊ 5

Slide 54

Slide 54 text

©Fusic Co., Ltd. 54 ·ͱΊ αʔό؅ཧΛඞཁͱ͠ͳ͍ΞϓϦέʔγϣϯͷߏஙͱ࣮ߦͷʮ֓೦ʯ Point 01 αʔόʔϨε͸΋ͪΖΜϝϦοτ͕͋ΔɺσϝϦοτ΋͋Δ੍͕໿Λड͚ೖΕΔࣄ͸࣮͸ωΨςΟϒ͡Όͳ͍ Point 02 αʔόʔϨεΒ͠͞Λҙࣝͨ͠։ൃΛߦ͏͜ͱ͸։ൃ଎౓޲্ʹ΋ͭͳ͕Δ Point 03 ࣮ࡍͷࣄྫͷதͰ΋ϝϦοτ΋࣮ײ͍ͯ͠·͢ɺօ༷΋ͥͻαʔόʔϨεΞʔΩςΫνϟͷݕ౼Λʂ Point 04

Slide 55

Slide 55 text

©Fusic Co., Ltd. 55 Thank You We are Hiring! https://recruit.fusic.co.jp/ ͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠