サーバレスで動かすトークン発行プラットフォーム.pdf

Cf224c573ed57cc424d5a480b28586f4?s=47 shunp
February 23, 2019

 サーバレスで動かすトークン発行プラットフォーム.pdf

JAWS DAYS 2019で発表した資料になります。
[Serverless] サーバレスで動かすトークン発行プラットフォーム

Cf224c573ed57cc424d5a480b28586f4?s=128

shunp

February 23, 2019
Tweet

Transcript

  1. αʔόϨεͰߏங͢Δ τʔΫϯൃߦϓϥοτϑΥʔϜ খ஑ॣฏ

  2. ࣗݾ঺հ

  3. ΤϯδχΞγΣΞϋ΢εࡏॅ খ஑ॣฏ ͍͚͜͠ΎΜ΃͍ SF*OWFOU 5IJTJT.Z"SDIJUFDUVSFʹग़ԋ ࡉʑͱ৘ใൃ৴͍ͯ͠·͢ 2JJUB 5XJUUFS

  4. ॴଐձࣾ

  5. 4JNQMFYגࣜձࣾ ೥ͷ૑ۀҎདྷɺϝΨόϯΫɺେखূ݊Λ͸͡Ίͱͨ͠ ओཁͳۚ༥ػؔ޲͚ʹɺ ۚ༥঎඼ͷऔҾ΍ϦεΫ؅ཧۀ຿Λࢧԉ͢Δ ಠࣗ։ൃͷ*5ιϦϡʔγϣϯɾαʔϏεΛఏڙ Ծ૝௨՟ϒϩοΫνΣʔϯྖҬ΋ੵۃల։த ࡢ೥݄ʹ͸%..#JUDPJOΛϦϦʔε ࠃ಺"1/ςΫϊϩδʔύʔτφʔͱͯ͠ॳΊͯ ʮ"84ۚ༥αʔϏείϯϐςϯγʔʯೝఆΛऔಘ

  6. ಥવͰ͕ٕ͢ज़ऀͷํʹ࣭໰Ͱ͢ɻ ೔ʑ৽͍ٕ͠ज़Λ࢖͍ ࣗݾݚᮎͰ͖͍ͯ·͔͢ʁ

  7. ͪΐ͏Ͳ೥લͷࠓࠒ αʔόϨεαʔϏεͱ͸ແԑͳ։ൃऀ

  8. ˒ۚ༥ۀքʹٻΊΒΕΔݫ੍͍͠໿ ๏ఆཁ݅Λຬͨ͢ݎ࿚ੑ ϛεͷڐ͞Εͳ͍ΫϦςΟΧϧੑ ˒ೲ඼ܕ ސ٬ͷϦΫΤετʹ߹Θͤͯߏ੒Λܾఆ ৽͍ٕ͠ज़ͷಋೖʹ͸͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ཁ݅Λ࣮֬ʹຬͨͤΔΑ͏ ৽͍ٕ͠ज़ͷಋೖʹอकతͳ੠΋େ͖͍৔߹͕͋Δ ฐࣾͷ৔߹ ཧ૝ͱݱ࣮ͷ

    Ϊϟοϓ
  9. ͔ͩΒͱ͍ͬͯ ಉ͡ࢿ࢈Λͣͬͱ࢖͍ଓ͚Δ༁ʹ͸͍͔ͳ͍

  10. αʔόϨεͰߏங͢Δ τʔΫϯൃߦϓϥοτϑΥʔϜ খ஑ॣฏ

  11. ΍Γ͍ͨ͜ͱ͹͔Γ΍ΕΔΘ͚͡Όͳ͍ ͜ΜͳੈͷதͰ খ஑ॣฏ ϝΠϯϓϩδΣΫτͱ͸ผʹࡉʑͱଓ͚͖ٕͯͨज़௅ઓͱ ࠓ೔͔Β࢝ΊΔαʔόϨε։ൃͷखҾ͖

  12. ௚ۙ೥Ͱ࢖༻͖ͯͨ͠αʔϏε Amazon Elastic Block Store (EBS) Amazon Simple Storage Service

    (S3) AWS Key Management Service AWS Identity and Access Management (IAM) AWS CloudHSM Amazon Cognito Amazon CloudFront Amazon VPC PrivateLink Amazon Route 53 AWS Amplify AWS AppSync Amazon CloudWatch AWS CloudFormation AWS CloudTrail Amazon Lex AWS X-Ray Amazon API Gateway AWS CodePipeline AWS CodeStar AWS Cloud9 AWS CodeBuild AWS CodeCommit Amazon Aurora Amazon DynamoDB Amazon ElastiCache Amazon Lightsail AWS Fargate AWS Elastic Beanstalk AWS Lambda Amazon Elastic Container Service Amazon Sumerian Amazon Simple Notification Service Amazon Simple Queue Service AWS Step Functions Amazon Polly Amazon Kinesis
  13. ৽͍ٕ͠ज़ͷಋೖʹ͸͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ৽͍ٕ͠ज़ͷಋೖʹ͸อकతͳ੠΋େ͖͍

  14. ͡Ό͋Ͱ͖ΔձࣾΛ୳͢ʁݸਓͰ΍Δʁ ὎΍ͬͺΓɺࢥ͍ೖΕͷ͋Δ͜ͷձࣾʹԿ͔࢒͍ͨ͠ɻ ৽͍ٕ͠ज़ͷಋೖʹ͸͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ৽͍ٕ͠ज़ͷಋೖʹ͸อकతͳ੠΋େ͖͍ ୭ʹ΋པ·Εͯͳ͍͚Ͳʜ ٕज़ྗڧԽϓϩάϥϜΛউखʹܭըͯ͠Έͨ

  15. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ Ծ૝௨՟ൃߦ ϒϩοΫνΣʔϯ઀ଓ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
  16. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ Ծ૝௨՟ൃߦ ϒϩοΫνΣʔϯ઀ଓ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
  17. ͳͥ͜ͷ׆ಈ͕ඞཁͳͷ͔ʁ ͜ͷ׆ಈʹΑΓձࣾʹͲΜͳϝϦοτ͕͋Δͷ͔ʁ 1PJOU    Πϊϕʔγϣϯʹͭͳ͕Δ׆ಈ ɾΠϊϕʔγϣϯΛੜΈग़͢͜ͱΛձࣾͷଘࡏҙٛͱͯ͠ଊ͍͑ͯΔاۀɻ ɾϒϩοΫνΣʔϯ͕ۚ༥ۀքͰ࠷΋ϗοτͳ࿩୊Ͱ͋ͬͨɻ ࣾ಺ָ͕͘͠ͳΔπʔϧΛఏڙ

    ɾτʔΫϯͱ͍͏֎తใुͰɺීஈͷ࢓ࣄʹผͷҙຯ͚ͮΛ࣋ͨͤΔɻ ɾࣾ֎ʹग़͞ͳ͍ͷͰϦεΫ΋গͳ͍ɻ ٕज़αϯυϘοΫεͱͯ͠ར༻ ɾ௅ઓ͍ٕͨ͠ज़Λࢼ͢৔ͱͯ͠ར༻͢Δ͜ͱΛએݴɻ ɾࢼͨ͠ϊ΢ϋ΢ͷڞ༗ʹΑΔࣾ಺ͷٕज़ྗ޲্Λݟਾ͑Δɻ ɾྗΛ࣋ͯ༨ͨ͠एखΛर͏ϑΟʔϧυʹ΋ར༻ͯ͠΄͍͠ɻ ׆ಈࣗମͷঝೝ ߟ࡯هࣄΛࣾ಺Ͱެ։
  18. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ Ծ૝௨՟ൃߦ ϒϩοΫνΣʔϯ઀ଓ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
  19. ։ൃલఏ ਓ͕͍ͳ͍ ὎খ஑͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ὎ਖ਼௚ຊۀͰख͍ͬͺ͍ͷՔಇ ஌͕ࣝͳ͍ ὎΍Γ͍ͨ͜ͱ͸৽ͨͳྖҬ

  20. ·ͣ͸ඞཁ࠷খݶͷػೳʹूத͢Δ ᶃ࢒ߴরձ ὎ࣗ෼͸Ͳͷ͘Β͍4JNQMFY5PLFOΛ͍࣋ͬͯΔ͔֬ೝͰ͖Δ ᶄτʔΫϯडऔ ὎Կ͔ͷτϦΨʔͰ4JNQMFY5PLFOΛ΋Β͑Δ ։ൃલఏ ਓ͕͍ͳ͍ ὎খ஑͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ὎ਖ਼௚ຊۀͰख͍ͬͺ͍ͷՔಇ

    ஌͕ࣝͳ͍ ὎΍Γ͍ͨ͜ͱ͸৽ͨͳྖҬ
  21. ·ͣ͸ඞཁ࠷খݶͷػೳʹूத͢Δ ᶃ࢒ߴরձ ὎ࣗ෼͸Ͳͷ͘Β͍4JNQMFY5PLFOΛ͍࣋ͬͯΔ͔֬ೝͰ͖Δ ᶄτʔΫϯडऔ ὎Կ͔ͷτϦΨʔͰ4JNQMFY5PLFOΛ΋Β͑Δ ։ൃલఏ ਓ͕͍ͳ͍ ὎খ஑͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ὎ਖ਼௚ຊۀͰख͍ͬͺ͍ͷՔಇ

    ஌͕ࣝͳ͍ ὎΍Γ͍ͨ͜ͱ͸৽ͨͳྖҬ 6*ͭ͘Δͷ͔͔࣌ؒΔ 4MBDLΛ6*ͱͯ͠ར༻ ೝূࡁΈલఏ Πϯϑϥߏங͔͔࣌ؒΔ αʔόϨε-BNCEBͰߏங ࣗಈతʹ%ZOBNP%#͕બ୒ࢶʹ ࣮૷͸ૣ͘ऴΘΒ͍ͤͨ पลϥΠϒϥϦͷ๛෋ͳ /PEFKTͰ࣮૷
  22. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
  23. ಠࣗ௨՟Λఆٛ͢ΔΠϯλϑΣʔε &3$ ͕ طʹఆٛࡁΈͷ0QFO;FQQFMJOͱ͍͏ϥΠϒϥϦΛ࢖༻ ༷ʑͳϒϩοΫνΣʔϯϓϥοτϑΥʔϜ͕ଘࡏ͢ΔதͰ ౰͔࣌Β࠷΋ਓؾͩͬͨ&UIFSFVNΛબ୒ 5SV⒐FϑϨʔϜϫʔΫΛ࢖ͬͯ 4PMJEJUZͷίϯτϥΫτΛ։ൃˍςετωοτ΁σϓϩΠ 4JNQMFY5PLFO͕ςετωοτ΁ σϓϩΠ͞Ε͍ͯΔ͜ͱΛ֬ೝ

    τʔΫϯͷϩΰ΋࡞੒
  24. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
  25. Amazon API Gateway Amazon DynamoDB AWS Lambda ࠓճͷొ৔αʔϏε AWS Lambda

    &$ͳͲͷαʔόΛඞཁͱͤͣʹίʔυͷ࣮ߦ͕Ͱ͖Δɻ ྫ͑͹ɺ;JQʹݻΊͨιʔείʔυΛ-BNCEBͷίϯιʔϧը໘͔Β Ξοϓϩʔυ͢Δ͚ͩͰίʔυΛϦϞʔτͰ࣮ߦͰ͖Δɻ /PEFKTͷ࣮ߦ؀ڥͱͯ͠ར༻ Amazon API Gateway 3&45"1*΍8FC4PDLFU"1*Λ࡞੒͢ΔࡍͷΠϯλϑΣʔεΛ؆୯ʹ༻ҙͰ͖Δɻ ݺͼग़͍ͨ͠-BNCEBΛϚοϐϯάͰ͖ɺ"1*(BUFXBZ -BNCEBͰ"1*ΛߏஙՄೳɻ τϥϑΟοΫͷ؅ཧ΍ɺ*".ͱ૊Έ߹ΘͤͨೝՄ੍ޚ΋Ͱ͖Δɻ ϦΫΤετΛड͚Δ"1*ΤϯυϙΠϯτΛ࡞੒ Amazon DynamoDB ΩʔόϦϡʔ͓ΑͼυΩϡϝϯτܕͷσʔλϕʔεαʔϏεɻ εέʔϧ؅ཧ΍ΠϯετʔϧॲཧͳͲ͕ෆཁͰ؆୯ʹར༻Ͱ͖Δɻ -BNCEBͷσʔλॻ͖ࠐΈઌͱͯ͠΋࢖ΘΕΔ͜ͱ͕ଟ͍ɻ ϒϩοΫνΣʔϯʹॻ͖ࠐ·ͳ͍σʔλͷอଘઌͱͯ͠ར༻
  26. ᶃ࢒ߴ֬ೝ ᶄτʔΫϯडऔ "1*࣮૷ &UIFSFVN ΞυϨεੜ੒ ΞυϨε Ϣʔβ৘ใ Ϣʔβ৘ใͱΞυϨεͷ Ϛοϐϯά৘ใΛอଘ ςετωοτ΁

    τʔΫϯอ༗਺ྔΛ ॻ͖ࠐΉ XFCKT Λຬͨ͢࠷௿ݶͷΞʔΩςΫνϟશମ૾ ίϚϯυʹҾ਺ ͱͯ͠࿈ܞ ˒4MBDL͔Β"1*(BUFXBZ͕ ൃߦ͢ΔΤϯυϙΠϯτ΁ ɹɹɹ3&45"1*ͷϦΫΤετ͕ൃੜ ˒εϚʔτίϯτϥΫτͰ ɹɹ؅ཧ͠ʹ͍͘Ϛοϐϯά৘ใ͸ ɹɹɹ%ZOBNP%#΁ॻ͖ࠐΈ ˒ϩδοΫ͸/PEFKTͰهड़͠ ɹɹ-BNCEB΁Ξοϓϩʔυ ˒XFCKTͱ͍͏ϥΠϒϥϦΛ࢖ͬͯ ɹɹ&UIFSFVNωοτϫʔΫʹσϓϩΠ͞Εͨ ɹɹɹεϚʔτίϯτϥΫτΛૢ࡞ Amazon API Gateway Amazon DynamoDB AWS Lambda MetaMask Slack Ethereum
  27. ᶃ࢒ߴ֬ೝ ᶄτʔΫϯडऔ "1*࣮૷ &UIFSFVN ΞυϨεੜ੒ ΞυϨε Ϣʔβ৘ใ Ϣʔβ৘ใͱΞυϨεͷ Ϛοϐϯά৘ใΛอଘ ςετωοτ΁

    τʔΫϯอ༗਺ྔΛ ॻ͖ࠐΉ XFCKT Λຬͨ͢࠷௿ݶͷΞʔΩςΫνϟશମ૾ ίϚϯυʹҾ਺ ͱͯ͠࿈ܞ ˒4MBDL͔Β"1*(BUFXBZ͕ ൃߦ͢ΔΤϯυϙΠϯτ΁ ɹɹɹ3&45"1*ͷϦΫΤετ͕ൃੜ ˒εϚʔτίϯτϥΫτͰ ɹɹ؅ཧ͠ʹ͍͘Ϛοϐϯά৘ใ͸ ɹɹɹ%ZOBNP%#΁ॻ͖ࠐΈ ˒ϩδοΫ͸/PEFKTͰهड़͠ ɹɹ-BNCEB΁Ξοϓϩʔυ ˒XFCKTͱ͍͏ϥΠϒϥϦΛ࢖ͬͯ ɹɹ&UIFSFVNωοτϫʔΫʹσϓϩΠ͞Εͨ ɹɹɹεϚʔτίϯτϥΫτΛૢ࡞ Amazon API Gateway Amazon DynamoDB AWS Lambda αʔόϨεͰz΍Δ΂͖͜ͱzʹूதͰ͖ͨ
  28. ͭͷط੒ࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏

    ࣾ಺Ͱར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔε૝ఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮૷ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ൃ৴ͯ͠ ڞײΛूΊΔ
  29. ͱΓ͋͑ͣ ࢀՃˍϒʔεग़ల͕ܾఆ ὎͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ /PEFKTΛ࢖࣮ͬͨ૷ αʔόϨε 4MBDLʹΑΔ6*ͷলུ ػೳ͕࢒ߴ֬ೝˍτʔΫϯडऔ &3$ʹΑΔτʔΫϯͷൃߦ 4MBDLϝοηʔδʹΑΔ࢒ߴ֬ೝ

  30. ͱΓ͋͑ͣ ࢀՃˍϒʔεग़ల͕ܾఆ ὎͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ /PEFKTΛ࢖࣮ͬͨ૷ ϥΠτͳ"1*ͳΒ (PݴޠͰ։ൃ͍ͨ͠ αʔόϨε ίʔυ؅ཧͯ͠ ෳ਺ͷ-BNCEBΛར༻ 4MBDLʹΑΔ6*ͷলུ

    ࢀՃऀ͕ϩάΠϯͰ͖Δ 7VFKTͰ8FCը໘Λͭ͘Δ ػೳ͕࢒ߴ֬ೝˍτʔΫϯडऔ ࢀՃऀ͕ͦͷ৔Ͱ τʔΫϯΛૹΓ߹͑ΔαʔϏε΁ &3$ʹΑΔτʔΫϯͷൃߦ ఆྔੑͱఆੑੑΛ݉Ͷඋ͑ͨ &3$Ͱ ௨՟ͷϓϥοτϑΥʔϜΛͭ͘Δ ཁ͔݅Βٕज़ཁૉ·ͰશͯΛΞοϓσʔτ͢Δ 4MBDLϝοηʔδʹΑΔ࢒ߴ֬ೝ "3Λ࢖ͬͨ ήʔϜܕΠϯλϑΣʔε΁
  31. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶੔ཧ "1*௥Ճ࡞੒ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟௥Ճ (Pݴޠ΁ॻ͖׵͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞੒ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
  32. ൃදऀ༻1$ εΫϦʔϯ Ӿཡ ౤Ө ϓϨθϯςʔλ ௌߨऀ ݱεϥΠυͷϖʔδ͕ ࣗ਎ͷεϚϗʹಉظ͞ΕΔ ൃදεϥΠυ ࠷ߴ

     ͍͍Ͷ  ͏ʔΜ  ίϝϯτදࣔཝ Ξϯέʔτ εϥΠυ ίϝϯτදࣔཝ    <௨ৗεϥΠυ> <Ξϯέʔτ࣌> Ξϯέʔτʹ౴͑Δͱ τʔΫϯΛड͚औΔ͜ͱ͕Ͱ͖Δ ༻ҙ͞ΕͨίϝϯτϘλϯΛԡ͢͜ͱͰ ϓϨθϯςʔλ΁τʔΫϯΛૹΔ͜ͱ͕Ͱ͖Δ τʔΫϯͷྲྀ௨ྔΛεϥΠυ͝ͱʹूܭ ϑΟʔυόοΫ ϓϨθϯαϙʔτΞϓϦ Ξϯέʔτϖʔδ͕౤Ө͞ΕΔͱ εϚϗͷ6*͕มԽ ϓϨθϯςʔλͷൃදʹ߹ΘͤͯಠࣗτʔΫϯΛૹΓ߹͏ΞϓϦΛ Πϕϯτग़లʹ޲͚ͯ࡞੒
  33. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶੔ཧ "1*௥Ճ࡞੒ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟௥Ճ (Pݴޠ΁ॻ͖׵͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞੒ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
  34. &3$὎&3$΁ IUUQTMBCTUJSOFUXPSLEFTJHOPGBHBNJOHXPSMEWJFXUIBUFSDFOBCMFT &3$͕Մೳʹ͢ΔήʔϜԽ͞Εͨੈք؍ Կ͕Ͱ͖ΔΑ͏ʹͳΔ͔ʁ ᶃ ௨՟Λ"1*ܦ༝ͰԿछྨͰ΋ൃߦՄೳʹ 4MBDLͷνϟϯωϧຖʹಠࣗ௨՟Λൃߦ ᶄশ߸΍ΩϟϥΫλʔͳͲҰҙੑͷ͋Δ΋ͷΛ࡞੒Մೳʹ ྫ͑͹ੈքʹ͔ͭ͠ଘࡏ͠ͳ͍ʮ4JNQMFY"84.BTUFSʯͳͲͷশ߸Λ࡞੒ ᶅੜ੒͞ΕͨᶃͱᶄΛ؆୯ʹަ׵Մೳʹ

    4JNQMFY5PLFOΛϕʔε௨՟ͱͯ͠ݖརͷചങ͕Մೳ
  35. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍ Ծ໨ඪɿ4JNQMFY5PLFO

    Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶੔ཧ "1*௥Ճ࡞੒ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟௥Ճ (Pݴޠ΁ॻ͖׵͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞੒ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
  36. Amazon API Gateway Amazon DynamoDB AWS Lambda લճ·Ͱͷొ৔αʔϏε ࠓճಋೖͨ͠αʔϏε Amazon

    Simple Storage Service (S3) AWS CloudFormation Amazon CloudFront Amazon Simple Storage Service (S3) όοΫΞοϓσʔλͷอଘઌ΍σʔλϨΠΫͱͯ͠ͷར༻ͷΈͳΒͣ ੩త΢ΣϒαΠτͷϗεςΟϯά΋Մೳɻ ࠓճ͸7VFKTͷ41"Λ4ʹϗεςΟϯά͢Δ໨తͰ࢖༻ɻ Amazon CloudFront 4ΛΦϦδϯαʔόͱΈͳ͠Ωϟογϡͨ͠ίϯςϯπΛ഑৴͢Δɻ $%1$BDIF%JTUSJCVUJPOύλʔϯ AWS CloudFormation (SAM) $MPVE'PSNBUJPOʹΑΓ"84αʔϏε࠶ߏங࣌ͷࣗಈԽɻ -BNCEBͰ࡞੒ͨ͠"1*ΛΞοϓσʔτ͢Δͱ͖ʹςϯϓϨʔτΛྲྀ͢ɻ $MPVE'PSNBUJPOͷ֦ுͰ͋Δ4". 4FSWFSMFTT"QQMJDBUJPO.PEFM ʹͯهड़ɻ IUUQTRJJUBDPNTIVOQJUFNTFFFFFGF <ࢀߟ>(Pʴ-BNCEBͰ࠷଎αʔόϨενϡʔτϦΞϧ
  37. 7VFKT γϯϓϧ41" εϥΠυ͝ͱͷ ϦΞΫγϣϯΛ஝ੵ εϚʔτίϯτϥΫτ ΞΫηε༻ %ZOBNP%# ΞΫηε༻ "3,JU සൃ͢Δ-BNCEBͷσϓϩΠΛ

    ίʔυͰ؅ཧ "3දࣔ༻ ΤϯυϙΠϯτ ϓϨθϯαϙʔτΞϓϦ ΞʔΩςΫνϟ֓ཁ ,PWBOωοτϫʔΫ τʔΫϯΛ "3Ͱදݱ Amazon Simple Storage Service (S3) Amazon API Gateway Amazon API Gateway AWS Lambda AWS Lambda Amazon DynamoDB Amazon CloudFront &UIFSFVN &3$ʹΑΔ τʔΫϯͷൃߦ ฐࣾಠ࣮ࣗ૷ʹΑΔϓϥοτϑΥʔϜ AWS CloudFormation (SAM)
  38. खݩͷεϥΠυ͕εΫϦʔϯͱ࿈ಈ ϥϯμϜʹมΘΔϘλϯΛԡ͠ͳ͕Β ίϝϯτͱτʔΫϯΛૹ৴ ࣾһূΛ͔͟͢ͱ ͦͷਓΛೝࣝͯ͠"3্ʹτʔΫϯ࢒ߴΛදࣔ ը໘ΛΫϦοΫ͢Δͱ "3্ͰτʔΫϯͷૹ৴͕Ͱ͖Δ ϓϨθϯαϙʔτΞϓϦ "3ΞϓϦ

  39. ݦࡏԽ͢ΔϢʔεέʔεʹඋ͑ͨ ٕज़ࢿ࢈ͷ੔ཧΛ͠Α͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾ಺Ͱར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δ؀ڥ ͍͚͜͠ΎΜ΃͍

    Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟ Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏ ϓϩμΫτԽʹ޲͚ͯ ৽نࣄۀܭըॻ ن֨MFTTͳ΢ΥϨοτ ༷ʑͳ%"QQT։ൃ ଞ௨՟ $*$%੔උ ೝূೝՄ σʔλ෼ੳ ωΠςΟϒΞϓϦ։ൃ ੑೳ 6*69 ΍Γ͍ͨνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ϞόΠϧ Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ ໨ඪɿϓϩμΫτԽʹ޲͚ٕͨज़੔ཧ
  40. AWS Cloud9 AWS CodeBuild AWS CodeCommit AWS CodePipeline AWS Lambda

    Amazon API Gateway Α͘ར༻͢ΔαʔϏε AWS Cloud9 &$্Ͱ։ൃ؀ڥΛఏڙɻλʔϛφϧ͕ηοτͰ෇͍͍ͯΔɻ Ͳͷ୺຤͔ΒͰ΋ಉ͡։ൃ؀ڥ͕ϒϥ΢βΛ։͚ͩ͘Ͱ༻ҙ͞Ε͍ͯΔͨΊ ৔߹ʹΑͬͯ͸%PDLFSͰ։ൃ؀ڥΛἧ͑ΔΑΓָɻ AWS CodeCommit -BNCEBͷιʔείʔυ؅ཧ͸$PEF$PNNJU্Ͱ؅ཧɻ ϓϧϦΫΤετɾίϛοτϏδϡΞϥΠβʔͳͲΛ(6*Ͱఏڙ͓ͯ͠Γ บ͸͋Δ΋ͷͷ(JU)VCͱͦΕ΄Ͳେࠩͳ͍࢖༻ײͰར༻Ͱ͖Δɻ AWS CodePipeline AWS CodeBuild $MPVE'PSNBUJPO4".ͷίϚϯυͰ-BNCEB΍"1*(BUFXBZΛ࡞੒͢Δɻ lJOTUBMMz lQSF@CVJMEz lCVJMEzͳͲϑΣʔζຖʹ࣮ߦ͢ΔίϚϯυΛάϧʔϓԽ͠ ඞཁͳϞδϡʔϧΠϯετʔϧɺςετɺϏϧυΛ࣮ߦͤ͞Δɻ $*$%ύΠϓϥΠϯΛ(6*Ͱఏڙ͢Δɻ ιʔείʔυ؅ཧͱͯ͠$PEF$PNNJUΛબ୒͢ΔͱɺಛఆϒϥϯνʹϚʔδ͞Εͨ৔߹ ύΠϓϥΠϯ͕ىಈ͠ɺޙଓͷ$PEF#VJME͕࣮ߦ͞ΕΔɻ
  41. Α͘ར༻͢ΔαʔϏε Amazon Cognito AWS Amplify AWS AppSync AWS AppSync ओʹ(SBQI2-αʔόͱͯ͠ར༻ɻ

    -BNCEB%ZOBNP%#&MBTUJD4FBSDI4FSWJDFΛޙଓͰϑοΫͰ͖Δɻ ෳ਺ͷ%ZOBNP%#ςʔϒϧʹ·͕ͨΔॲཧ΋Մೳɻ AWS Amplify ϑϩϯτΤϯυ༻ͷ$*$%ͱͯ͠"NQMJGZ$POTPMFΛ࢖༻ɻ 4΁ͷΞοϓϩʔυ͓Αͼ$MPVE'SPOUͰͷ഑৴ઃఆ͕লུͰ͖Δɻ "NQMJGZ'SBNFXPSLͰ͸"84αʔϏε΁ͷΞΫηεΛ؆ུԽ͠ "QQ4ZOD΍$PHOJUP΁ͷΞΫηεΛγϯϓϧʹ͢Δɻ Amazon Cognito ೝূαʔϏεͱͯ͠ར༻ɻ ϢʔβσʔλΛ؅ཧ͠ɺೝূ੒ޭ࣌ʹϢʔβ৘ใؚ͕·Εͨ+85Λฦ͢ɻ *".ͱ૊Έ߹ΘͤΔ͜ͱͰೝՄ੍ޚ͢Δ͜ͱ΋Մೳɻ IUUQTRJJUBDPNTIVOQJUFNTEBEGBEEGG <ࢀߟ> 7VFKT "NQMJGZΛۦ࢖͢Ε͹Ϟμϯͳ8FCΞϓϦΛ෼Ͱެ։Ͱ͖Δ
  42. 3FNJY *%& ΞʔΩςΫνϟ֓ཁ 4MBDLΠϕϯτ औಘ༻ %ZOBNP%# ΞΫηε༻ εϚʔτίϯτϥΫτ ΞΫηε༻ 4MBDLͷ

    3&45"1*Λड͚Δ ೝূ ϑϩϯτΤϯυ༻$*$% ։ൃϑϨʔϜϫʔΫ σϓϩΠ 4MBDL &3$ 7VFKT γϯϓϧ41" Amazon API Gateway AWS Lambda AWS Lambda Amazon DynamoDB Amazon DynamoDB &3$9999 AWS AppSync AWS Amplify Amazon Cognito AWS Lambda AWS Lambda AWS Cloud9 AWS CodePipeline 'MVUUFS Amazon CloudWatch AWS CloudFormation AWS CloudTrail -BNCEB'VODUJPOT
  43. ݱࡏͷ։ൃεΩʔϜ ࣮ݧతʹ ϓϩτλΠϓͷ࡞੒ ࣾһ Ϣʔβ ೿ੜ ར༻ ٕज़ࢿ࢈ͷ஝ੵ 'MVUUFS 7VFKT

    4MBDL 6OJUZ "3,JU &UIFSFVN (Pݴޠ "84 هࣄʹ·ͱΊΔ ༻్ผʹϦϙδτϦΛ࡞੒ ֤ΞϓϦ "84ʹݶΒͣ෯޿͍ྖҬΛࢹ໺ʹೖΕͯ׆ಈத
  44. αʔόϨεͬͯԿ͔Β࢝ΊΕ͹ྑ͍ͷ͔Θ͔Βͳ͍ ೉ͦ͠͏ͩࣗ͠෼ʹ͸ԕ͍ੈք ࠔͬͨ͜ͱ͕͋Ε͹ 4/4ܦ༝Ͱ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ αʔόϨεͦ͜؆୯ʹ͸͡ΊΒΕΔʂ ·ͣ͸͚ͭͩ "1*Λ࣮૷͢Δͱ͜Ζ͔Βελʔτͯ͠Έ·͠ΐ͏

  45. νʔϜͷࠓޙ ৽ͨͳࣄۀΛੜΈग़͢ϑΣʔζ΁ ϑϩϯτ͔ΒόοΫ·Ͱ ྖҬΛݶఆͤͣ׆༂͍ͨ͠ΤϯδχΞ஥ؒΛืूத ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ

  46. ຊ೔͸͋Γ͕ͱ͏͍͟͝·ͨ͠ 2JJUB 5XJUUFS ຊࢿྉͷ಺༰͸4/4Ͱެ։͠·͢