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

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

shunp
February 23, 2019

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

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

shunp

February 23, 2019
Tweet

More Decks by shunp

Other Decks in Programming

Transcript

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

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. ΤϯδχΞγΣΞϋ΢εࡏॅ
    খ஑ॣฏ ͍͚͜͠ΎΜ΃͍

    SF*OWFOU
    5IJTJT.Z"SDIJUFDUVSFʹग़ԋ
    ࡉʑͱ৘ใൃ৴͍ͯ͠·͢
    2JJUB 5XJUUFS

    View Slide

  4. ॴଐձࣾ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  13. ৽͍ٕ͠ज़ͷಋೖʹ͸͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ
    ৽͍ٕ͠ज़ͷಋೖʹ͸อकతͳ੠΋େ͖͍

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. ͳͥ͜ͷ׆ಈ͕ඞཁͳͷ͔ʁ
    ͜ͷ׆ಈʹΑΓձࣾʹͲΜͳϝϦοτ͕͋Δͷ͔ʁ
    1PJOU



    Πϊϕʔγϣϯʹͭͳ͕Δ׆ಈ
    ɾΠϊϕʔγϣϯΛੜΈग़͢͜ͱΛձࣾͷଘࡏҙٛͱͯ͠ଊ͍͑ͯΔاۀɻ
    ɾϒϩοΫνΣʔϯ͕ۚ༥ۀքͰ࠷΋ϗοτͳ࿩୊Ͱ͋ͬͨɻ
    ࣾ಺ָ͕͘͠ͳΔπʔϧΛఏڙ
    ɾτʔΫϯͱ͍͏֎తใुͰɺීஈͷ࢓ࣄʹผͷҙຯ͚ͮΛ࣋ͨͤΔɻ
    ɾࣾ֎ʹग़͞ͳ͍ͷͰϦεΫ΋গͳ͍ɻ
    ٕज़αϯυϘοΫεͱͯ͠ར༻
    ɾ௅ઓ͍ٕͨ͠ज़Λࢼ͢৔ͱͯ͠ར༻͢Δ͜ͱΛએݴɻ
    ɾࢼͨ͠ϊ΢ϋ΢ͷڞ༗ʹΑΔࣾ಺ͷٕज़ྗ޲্Λݟਾ͑Δɻ
    ɾྗΛ࣋ͯ༨ͨ͠एखΛर͏ϑΟʔϧυʹ΋ར༻ͯ͠΄͍͠ɻ
    ׆ಈࣗମͷঝೝ
    ߟ࡯هࣄΛࣾ಺Ͱެ։

    View Slide

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

    View Slide

  19. ։ൃલఏ
    ਓ͕͍ͳ͍
    ὎খ஑͕૽͍ͰΔ͚ͩ
    ͕࣌ؒͳ͍
    ὎ਖ਼௚ຊۀͰख͍ͬͺ͍ͷՔಇ
    ஌͕ࣝͳ͍
    ὎΍Γ͍ͨ͜ͱ͸৽ͨͳྖҬ

    View Slide

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

    View Slide

  21. ·ͣ͸ඞཁ࠷খݶͷػೳʹूத͢Δ
    ᶃ࢒ߴরձ
    ὎ࣗ෼͸Ͳͷ͘Β͍4JNQMFY5PLFOΛ͍࣋ͬͯΔ͔֬ೝͰ͖Δ
    ᶄτʔΫϯडऔ
    ὎Կ͔ͷτϦΨʔͰ4JNQMFY5PLFOΛ΋Β͑Δ
    ։ൃલఏ
    ਓ͕͍ͳ͍
    ὎খ஑͕૽͍ͰΔ͚ͩ
    ͕࣌ؒͳ͍
    ὎ਖ਼௚ຊۀͰख͍ͬͺ͍ͷՔಇ
    ஌͕ࣝͳ͍
    ὎΍Γ͍ͨ͜ͱ͸৽ͨͳྖҬ
    6*ͭ͘Δͷ͔͔࣌ؒΔ
    4MBDLΛ6*ͱͯ͠ར༻
    ೝূࡁΈલఏ
    Πϯϑϥߏங͔͔࣌ؒΔ
    αʔόϨε-BNCEBͰߏங
    ࣗಈతʹ%ZOBNP%#͕બ୒ࢶʹ
    ࣮૷͸ૣ͘ऴΘΒ͍ͤͨ
    पลϥΠϒϥϦͷ๛෋ͳ
    /PEFKTͰ࣮૷

    View Slide

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

    View Slide

  23. ಠࣗ௨՟Λఆٛ͢ΔΠϯλϑΣʔε &3$
    ͕
    طʹఆٛࡁΈͷ0QFO;FQQFMJOͱ͍͏ϥΠϒϥϦΛ࢖༻
    ༷ʑͳϒϩοΫνΣʔϯϓϥοτϑΥʔϜ͕ଘࡏ͢ΔதͰ
    ౰͔࣌Β࠷΋ਓؾͩͬͨ&UIFSFVNΛબ୒
    5SV⒐FϑϨʔϜϫʔΫΛ࢖ͬͯ
    4PMJEJUZͷίϯτϥΫτΛ։ൃˍςετωοτ΁σϓϩΠ
    4JNQMFY5PLFO͕ςετωοτ΁
    σϓϩΠ͞Ε͍ͯΔ͜ͱΛ֬ೝ
    τʔΫϯͷϩΰ΋࡞੒

    View Slide

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

    View Slide

  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ͷσʔλॻ͖ࠐΈઌͱͯ͠΋࢖ΘΕΔ͜ͱ͕ଟ͍ɻ
    ϒϩοΫνΣʔϯʹॻ͖ࠐ·ͳ͍σʔλͷอଘઌͱͯ͠ར༻

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  29. ͱΓ͋͑ͣ
    ࢀՃˍϒʔεग़ల͕ܾఆ
    ὎͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ
    /PEFKTΛ࢖࣮ͬͨ૷
    αʔόϨε
    4MBDLʹΑΔ6*ͷলུ
    ػೳ͕࢒ߴ֬ೝˍτʔΫϯडऔ &3$ʹΑΔτʔΫϯͷൃߦ
    4MBDLϝοηʔδʹΑΔ࢒ߴ֬ೝ

    View Slide

  30. ͱΓ͋͑ͣ
    ࢀՃˍϒʔεग़ల͕ܾఆ
    ὎͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ
    /PEFKTΛ࢖࣮ͬͨ૷
    ϥΠτͳ"1*ͳΒ
    (PݴޠͰ։ൃ͍ͨ͠
    αʔόϨε
    ίʔυ؅ཧͯ͠
    ෳ਺ͷ-BNCEBΛར༻
    4MBDLʹΑΔ6*ͷলུ
    ࢀՃऀ͕ϩάΠϯͰ͖Δ
    7VFKTͰ8FCը໘Λͭ͘Δ
    ػೳ͕࢒ߴ֬ೝˍτʔΫϯडऔ
    ࢀՃऀ͕ͦͷ৔Ͱ
    τʔΫϯΛૹΓ߹͑ΔαʔϏε΁
    &3$ʹΑΔτʔΫϯͷൃߦ
    ఆྔੑͱఆੑੑΛ݉Ͷඋ͑ͨ
    &3$Ͱ
    ௨՟ͷϓϥοτϑΥʔϜΛͭ͘Δ
    ཁ͔݅Βٕज़ཁૉ·ͰશͯΛΞοϓσʔτ͢Δ
    4MBDLϝοηʔδʹΑΔ࢒ߴ֬ೝ
    "3Λ࢖ͬͨ
    ήʔϜܕΠϯλϑΣʔε΁

    View Slide

  31. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏
    ൃ৴ͯ͠
    ڞײΛूΊΔ
    ࣾ಺Ͱར༻Ͱ͖
    ΔπʔϧΛ࡞Δ
    ֎෦Ͱൃද͢Δ
    νϟϨϯδ
    Ͱ͖Δ؀ڥ
    ͍͚͜͠ΎΜ΃͍
    Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟
    Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏
    ֎෦Ͱൃද͢Δ
    Ϣʔεέʔε࠶੔ཧ
    "1*௥Ճ࡞੒
    %#ઃܭमਖ਼
    &3$ϑΥʔΫ
    &3$&3$
    "1*ܦ༝Ͱ௨՟௥Ճ
    (Pݴޠ΁ॻ͖׵͑
    -BNCEBBTB$PEF
    7VFKTͰ8FCը໘࡞੒
    J1BEͰ"3ମݧ
    3FWFBMKTεϥΠυͷڞ༗
    ٕज़తͳνϟϨϯδཁૉ
    શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
    Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ

    View Slide

  32. ൃදऀ༻1$
    εΫϦʔϯ
    Ӿཡ
    ౤Ө
    ϓϨθϯςʔλ
    ௌߨऀ
    ݱεϥΠυͷϖʔδ͕
    ࣗ਎ͷεϚϗʹಉظ͞ΕΔ
    ൃදεϥΠυ
    ࠷ߴ
    ͍͍Ͷ
    ͏ʔΜ
    ίϝϯτදࣔཝ
    Ξϯέʔτ
    εϥΠυ
    ίϝϯτදࣔཝ

    <௨ৗεϥΠυ> <Ξϯέʔτ࣌>
    Ξϯέʔτʹ౴͑Δͱ
    τʔΫϯΛड͚औΔ͜ͱ͕Ͱ͖Δ
    ༻ҙ͞ΕͨίϝϯτϘλϯΛԡ͢͜ͱͰ
    ϓϨθϯςʔλ΁τʔΫϯΛૹΔ͜ͱ͕Ͱ͖Δ
    τʔΫϯͷྲྀ௨ྔΛεϥΠυ͝ͱʹूܭ
    ϑΟʔυόοΫ
    ϓϨθϯαϙʔτΞϓϦ
    Ξϯέʔτϖʔδ͕౤Ө͞ΕΔͱ
    εϚϗͷ6*͕มԽ
    ϓϨθϯςʔλͷൃදʹ߹ΘͤͯಠࣗτʔΫϯΛૹΓ߹͏ΞϓϦΛ
    Πϕϯτग़లʹ޲͚ͯ࡞੒

    View Slide

  33. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏
    ൃ৴ͯ͠
    ڞײΛूΊΔ
    ࣾ಺Ͱར༻Ͱ͖
    ΔπʔϧΛ࡞Δ
    ֎෦Ͱൃද͢Δ
    νϟϨϯδ
    Ͱ͖Δ؀ڥ
    ͍͚͜͠ΎΜ΃͍
    Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟
    Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏
    ֎෦Ͱൃද͢Δ
    Ϣʔεέʔε࠶੔ཧ
    "1*௥Ճ࡞੒
    %#ઃܭमਖ਼
    &3$ϑΥʔΫ
    &3$&3$
    "1*ܦ༝Ͱ௨՟௥Ճ
    (Pݴޠ΁ॻ͖׵͑
    -BNCEBBTB$PEF
    7VFKTͰ8FCը໘࡞੒
    J1BEͰ"3ମݧ
    3FWFBMKTεϥΠυͷڞ༗
    ٕज़తͳνϟϨϯδཁૉ
    શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
    Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ

    View Slide

  34. &3$὎&3$΁
    IUUQTMBCTUJSOFUXPSLEFTJHOPGBHBNJOHXPSMEWJFXUIBUFSDFOBCMFT
    &3$͕Մೳʹ͢ΔήʔϜԽ͞Εͨੈք؍
    Կ͕Ͱ͖ΔΑ͏ʹͳΔ͔ʁ
    ᶃ ௨՟Λ"1*ܦ༝ͰԿछྨͰ΋ൃߦՄೳʹ
    4MBDLͷνϟϯωϧຖʹಠࣗ௨՟Λൃߦ
    ᶄশ߸΍ΩϟϥΫλʔͳͲҰҙੑͷ͋Δ΋ͷΛ࡞੒Մೳʹ
    ྫ͑͹ੈքʹ͔ͭ͠ଘࡏ͠ͳ͍ʮ4JNQMFY"84.BTUFSʯͳͲͷশ߸Λ࡞੒
    ᶅੜ੒͞ΕͨᶃͱᶄΛ؆୯ʹަ׵Մೳʹ
    4JNQMFY5PLFOΛϕʔε௨՟ͱͯ͠ݖརͷചങ͕Մೳ

    View Slide

  35. ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏
    ൃ৴ͯ͠
    ڞײΛूΊΔ
    ࣾ಺Ͱར༻Ͱ͖
    ΔπʔϧΛ࡞Δ
    ֎෦Ͱൃද͢Δ
    νϟϨϯδ
    Ͱ͖Δ؀ڥ
    ͍͚͜͠ΎΜ΃͍
    Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟
    Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏
    ֎෦Ͱൃද͢Δ
    Ϣʔεέʔε࠶੔ཧ
    "1*௥Ճ࡞੒
    %#ઃܭमਖ਼
    &3$ϑΥʔΫ
    &3$&3$
    "1*ܦ༝Ͱ௨՟௥Ճ
    (Pݴޠ΁ॻ͖׵͑
    -BNCEBBTB$PEF
    7VFKTͰ8FCը໘࡞੒
    J1BEͰ"3ମݧ
    3FWFBMKTεϥΠυͷڞ༗
    ٕज़తͳνϟϨϯδཁૉ
    શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
    Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ

    View Slide

  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Ͱ࠷଎αʔόϨενϡʔτϦΞϧ

    View Slide

  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)

    View Slide

  38. खݩͷεϥΠυ͕εΫϦʔϯͱ࿈ಈ
    ϥϯμϜʹมΘΔϘλϯΛԡ͠ͳ͕Β
    ίϝϯτͱτʔΫϯΛૹ৴
    ࣾһূΛ͔͟͢ͱ
    ͦͷਓΛೝࣝͯ͠"3্ʹτʔΫϯ࢒ߴΛදࣔ
    ը໘ΛΫϦοΫ͢Δͱ
    "3্ͰτʔΫϯͷૹ৴͕Ͱ͖Δ
    ϓϨθϯαϙʔτΞϓϦ
    "3ΞϓϦ

    View Slide

  39. ݦࡏԽ͢ΔϢʔεέʔεʹඋ͑ͨ
    ٕज़ࢿ࢈ͷ੔ཧΛ͠Α͏
    ൃ৴ͯ͠
    ڞײΛूΊΔ
    ࣾ಺Ͱར༻Ͱ͖
    ΔπʔϧΛ࡞Δ
    ֎෦Ͱൃද͢Δ
    νϟϨϯδ
    Ͱ͖Δ؀ڥ
    ͍͚͜͠ΎΜ΃͍
    Ծ໨ඪɿ4JNQMFY5PLFO Ծ૝௨՟
    Λൃߦͯࣾ͠಺Ͱར༻ͯ͠΋Β͏
    ϓϩμΫτԽʹ޲͚ͯ
    ৽نࣄۀܭըॻ
    ن֨MFTTͳ΢ΥϨοτ
    ༷ʑͳ%"QQT։ൃ
    ଞ௨՟
    $*$%੔උ
    ೝূೝՄ
    σʔλ෼ੳ
    ωΠςΟϒΞϓϦ։ൃ
    ੑೳ
    6*69
    ΍Γ͍ͨνϟϨϯδཁૉ
    શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ
    ϑϩϯτΤϯυ
    ϞόΠϧ
    Ծ໨ඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
    ໨ඪɿϓϩμΫτԽʹ޲͚ٕͨज़੔ཧ

    View Slide

  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͕࣮ߦ͞ΕΔɻ

    View Slide

  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ΞϓϦΛ෼Ͱެ։Ͱ͖Δ

    View Slide

  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

    View Slide

  43. ݱࡏͷ։ൃεΩʔϜ
    ࣮ݧతʹ
    ϓϩτλΠϓͷ࡞੒
    ࣾһ Ϣʔβ

    ೿ੜ
    ར༻
    ٕज़ࢿ࢈ͷ஝ੵ
    'MVUUFS 7VFKT 4MBDL 6OJUZ "3,JU &UIFSFVN (Pݴޠ "84
    هࣄʹ·ͱΊΔ
    ༻్ผʹϦϙδτϦΛ࡞੒
    ֤ΞϓϦ
    "84ʹݶΒͣ෯޿͍ྖҬΛࢹ໺ʹೖΕͯ׆ಈத

    View Slide

  44. αʔόϨεͬͯԿ͔Β࢝ΊΕ͹ྑ͍ͷ͔Θ͔Βͳ͍
    ೉ͦ͠͏ͩࣗ͠෼ʹ͸ԕ͍ੈք
    ࠔͬͨ͜ͱ͕͋Ε͹
    4/4ܦ༝Ͱ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ
    αʔόϨεͦ͜؆୯ʹ͸͡ΊΒΕΔʂ
    ·ͣ͸͚ͭͩ
    "1*Λ࣮૷͢Δͱ͜Ζ͔Βελʔτͯ͠Έ·͠ΐ͏

    View Slide

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

    View Slide

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

    View Slide