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

Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤 / Story of CRM platform using LINE by Amazon Pinpoint

Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤 / Story of CRM platform using LINE by Amazon Pinpoint

【スナックミー】
Real Food(リアルフード)のみからできたおやつのパーソナライズ型サブスクリプションBOX
https://snaq.me

hayato miyoshi

October 03, 2019
Tweet

More Decks by hayato miyoshi

Other Decks in Technology

Transcript

  1. Amazon PinpointΛ༻͍ͯEmail΍LINE௨஌Λ
    ࣗಈԽͨ͠ج൫
    2019.10.03
    AWS DevDay Tokyo 2019 C-4
    גࣜձࣾεφοΫϛʔ CTO & co-founder ࡾ޷ ൏ਓ

    View Slide

  2. • גࣜձࣾεφοΫϛʔ
    • ࡾ޷ ൏ਓ co-founder & CTO
    • ౦ژੜ·Ε౦ژҭͪ
    • ݐஙग़਎ΤϯδχΞ
    • τϥΠΞεϩϯ΍ϚϥιϯΛᅂΉ
    @miyoshihayato

    View Slide

  3. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ
    1,980ԁ (੫ࠐ)
    100छҎ্͔Β8छͷ͓΍ͭΛҰਓͻͱΓʹηϨΫτ͓ͯ͠ಧ͚
    Real Food͔Β࡞ͬͨɺඒຯͯ͘͠Χϥμʹ༏͍͓͠΍ͭΛ͓ҰਓͻͱΓʹ
    ΧελϚΠζ͓ͯ͠ಧ͚͢ΔαϒεΫϦϓγϣϯαʔϏε

    View Slide

  4. Mission
    Vison
    ৽͍͓͠΍ͭମݧΛ૑଄͠ɺ ͓΍ͭͷ࣌ؒΛՁ஋ͷ͋Δ΋ͷʹ͢Δɻ
    ਺ඦԯԁن໛ͷ Real FoodεφοΫࢢ৔Λ૑Γɺ ͦͷࢢ৔ͷφϯόʔ1ϒϥϯυͱͳΔɻ
    ӫཆՁ͕ߴ͘ɺͦΕͰ͍ͯඒຯ͠͞ʹଥڠ͠ͳ͍εφοΫʹΑͬͯɺ͓΍ͭͦͷ΋ͷ࣭Λ্͛Δɻ
    ·ͨɺϞϊ͚ͩͰ͸ͳ͘ɺ৽͍͓͠΍ͭମݧΛσβΠϯ͠ɺ͓΍ͭͷ࣌ؒͷՁ஋Λ޲্ͤ͞Δɻ
    ͦΕʹΑͬͯɺ͓΍ͭͷ͕࣌ؒ࠼ΓͱͳΓɺ๛͔ͳੜ׆Λ࣮ݱ͢Δɻ
    Real FoodεφοΫͱ͸ɺܗ͋ΔReal FoodͷΈ͔Β࡞ΒΕͨεφοΫɻ
    ૉࡐຊདྷ͕࣋ͭӫཆͱඒຯ͠͞Λ࠷େݶʹ׆͔͠ɺਓ޻తͳݪྉ΍Խֶ෺࣭͸࢖Θͳ͍ɻ
    ӫཆՁ͕ߴ݈͘߁తͰɺͦΕͰ͍ͯඒຯ͠͞ʹଥڠ͸͠ͳ͍ɻ

    View Slide

  5. εφοΫϛʔͷ঎඼։ൃج४
    Made From Real Food
    Խֶ෺࣭ʹཔΒͣɺࣗવͳૉࡐ͔Βඒຯ͠͞ͱӫཆΛҾ͖ग़͢
    Create a New Culture
    ৽͍͠৯จԽ΍৯श׳Λ࡞Γग़͠͏Δ
    Without Compromise
    ඒຯ͠͞ʹଥڠ͠ͳ͍

    View Slide

  6. υϥΠϑϧʔπɾφοπ
    τϨΠϧϛοΫε
    ম͖՛ࢠ
    νϣί
    νοϓε
    ถ՛
    ͦͷଞ
    ϑϧʔπ՛ࢠ
    قઅʹ߹Θͤͨ঎඼100SKUҎ্Λৗ࣌ࡏݿɻຖ݄10ʙ20%ΛೖΕସ͑ɻ
    1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ

    View Slide

  7. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ
    ੡଄ࢦࣔॻ
    ࡞੒
    ੡଄ ࡏݿొ࿥ ΞαΠϯ ϐοΩϯά ൃૹ
    ੡଄͔Βൃૹ४උ·ͰҰ؏

    View Slide

  8. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ
    ෼ੳ
    TOBDLCPY
    ͓΍ͭͷධՁ/
    ϦΫΤετ
    ৽঎඼։ൃ
    ͓΍ͭͷA/Bςετ
    ͓ಧ͚͢Δ͓΍ͭΛܾఆ

    View Slide

  9. ։ൃͷओͳπʔϧ
    - αʔόʔαΠυ : Ruby on Rails (PHP)
    - ϑϩϯτΤϯυݴޠ : BabelɺҰ෦TypeScript
    - ϑϩϯτΤϯυ : React, Redux, webpack
    - UIίϯϙʔωϯτΧλϩά : Storybook
    - σʔλ෼ੳ : python
    - σʔλϕʔε : Aurora, DynamoDB
    - Πϯϑϥ : AWS
    - ։ൃ؀ڥ : Vagrant, Docker
    - ϦϙδτϦ؅ཧ : GitHub / codecommit
    - CI / CDͳͲ : CodePipeLine / jest / RSpec
    - ίϛϡχέʔγϣϯ : Qiita:Team, Slack

    View Slide

  10. Amazon PinpointΛ༻͍ͯEmail΍LINE௨஌ΛࣗಈԽͨ͠ج൫ͷ࿩
    ͔͜͜Βຊ୊΁

    View Slide

  11. ͦ΋ͦ΋ɺͳͥLINE(νϟοτUI)Λ༻͍ͨͷ͔ʁ

    View Slide

  12. 2015೥ͷ૑ۀલ͔ΒҎԼͷΑ͏ʹߟ͍͑ͯ·ͨ͠
    • UX͕໌֬
    • νϟοτUI͸࿝एஉঁ࢖͑Δ
    • ͜Ε͔Β͸νϟοτUI͕ϕʔεʹͳΔՄೳੑ͕͋Δ
    • LINE͔ΒpushͰ͖Δ
    • LINE্ͩͱϑϨΩγϒϧʹUIΛૢΕͳ͍ͷͰwebʹҊ಺͢ΔΑ͏ʹͨ͠

    View Slide

  13. εφοΫϛʔ౰ॳ͸ʁ

    View Slide

  14. ౰ॳ͸

    View Slide

  15. ΍ΓͱΓશͯνϟοτܗࣜ
    ධՁ΋ϦΫΤετ΋

    View Slide

  16. νϟοτUI͸͍͍ͱ͜Ζ͚ͩ͡Όͳ͍
    ໨త͕͔ͬ͠Γ͍ͯ͠Δ৔߹͸ճΓ͘Ͳ͍
    ॳճɺॳݟϢʔβʔʹνϟοτͰҊ಺͢Δͱ࢖͍উख޲্


    2प໨(ֶशࡁΈͷUIUX)

    View Slide

  17. CSͱͯ͠ͷίϛϡχέʔγϣϯ1ຊʹ
    ͦͷͨΊ

    View Slide

  18. LINE Messaging API
    ༻͍͍ͯΔͷ͕

    View Slide

  19. • اۀͱϢʔβʔͷ૒ํίϛϡχέʔγϣϯ͕Մೳ
    • ϓογϡϝοηʔδͱԠ౴ϝοηʔδ
    • 1ର1ɺάϧʔϓͰτʔΫՄೳ
    • ͞·͟·ͳঢ়گʹ߹ΘͤͨϝοηʔδλΠϓ
    • ςΩετ
    • ελϯϓ
    • Ի੠
    • ը૾ͳͲ
    LINE Messaging APIͰͰ͖Δ͜ͱ

    View Slide

  20. ߏ੒ਤ
    Ϣʔβʔૹ৴
    ελοϑૹ৴
    ελοϑ΁௨஌
    Amazon
    Route 53
    Elastic
    Load
    Balancing
    Elastic
    Load
    Balancing
    EC2
    EC2
    Amazon
    Aurora

    View Slide

  21. ߏ੒ਤ
    Ϣʔβʔૹ৴
    ελοϑૹ৴
    ελοϑ΁௨஌
    Amazon
    Route 53
    Elastic
    Load
    Balancing
    Elastic
    Load
    Balancing
    EC2
    EC2
    Amazon
    Aurora

    View Slide

  22. ߏ੒ਤ
    Ϣʔβʔૹ৴
    ελοϑૹ৴
    ελοϑ΁௨஌
    Amazon
    Route 53
    Elastic
    Load
    Balancing
    Elastic
    Load
    Balancing
    EC2
    EC2
    Amazon
    Aurora

    View Slide

  23. ૹड৴Λ෼͚͍ͯΔཧ༝
    Ϣʔβʔ͔Βͷϝοηʔδड৴͸ઈରʂམͱͤͳ͍

    View Slide

  24. • αʔϏε͕άϩʔε͢Ε͹ɺCS΋૿΍͢ඞཁ͕͋Δ
    • Ͳ͜·ͰΞ΢τό΢ϯυ(ελοϑൃ৴)Λߦ͏͔
    • ͕ͩɺϢʔβʔͱͷ઀఺͸ଟ͍࣋ͪͨ͘
    • ৽͍͠ࢪࡦΛࢼ͍ͨ͠
    ͳͲ
    ՝୊

    View Slide

  25. • αʔϏε͕άϩʔε͢Ε͹ɺCS΋૿΍͢ඞཁ͕͋Δ
    • Ͳ͜·ͰΞ΢τό΢ϯυ(ελοϑൃ৴)Λߦ͏͔
    • ͕ͩɺϢʔβʔͱͷ઀఺͸ଟ͍࣋ͪͨ͘
    • ৽͍͠ࢪࡦΛࢼ͍ͨ͠
    ͳͲ
    ՝୊

    View Slide

  26. 1ର1ͷରԠ͸࢒͠ɺ1ରଟΛͰ͖Δ࢓૊Έͷߏங
    Ϣʔβʔͱ઀͢Δʹ͸1า(௨)໨͕େࣄͳͷͰ

    View Slide

  27. ηάϝϯτର৅ͷ1௨໨͸
    awsΛ༻͍ͨγεςϜ
    ͦͷޙ͸1ର1Ͱ
    ϝοηʔδͷ΍ΓऔΓ
    ͜͏͍͏͜ͱ

    View Slide

  28. ηάϝϯτͨ͠Ϣʔβʔ΁഑৴ΛࣗಈԽͰ͖Δج൫͕ཉ͍͠

    View Slide

  29. Amazon Pinpoint

    View Slide

  30. Amazon Pinpoint ͱ͸
    Τϯήʔδϝϯτνϟωϧ
    ϝοηʔδΛͻͱͭͷνϟωϧ͔ɺଟ͘ͷνϟωϧܦ༝ͰૹΔ͔ʹ͔͔ΘΒͣɺੈքதͷԿඦສ΋ͷސ٬ʹ؆୯
    Ͱ৴པੑߴ͘ϝοηʔδΛಧ͚Δ͜ͱ͕Ͱ͖·͢ɻ
    Τϯήʔδϝϯτ؅ཧ
    ద੾ͳސ٬ʹɺద੾ͳϝοηʔδΛɺద੾ͳλΠϛϯάͰɺద੾ͳνϟωϧΛ௨ͯ͠ૹ͍ͬͯͩ͘͞ɻ
    ෼ੳ
    ސ٬ͱوࣾͷΤϯήʔδϝϯτʹؔ࿈ͨ͠σʔλΛू໿ɺՄࢹԽɺΧελϚΠζɻ
    ࢀর : https://aws.amazon.com/jp/pinpoint/

    View Slide

  31. Amazon Pinpoint ͱ͸
    Τϯήʔδϝϯτνϟωϧ
    EϝʔϧɺԻ੠ɺSMSɺϓογϡ௨஌ɺ֦ுػೳ(LINEͳͲ)
    Τϯήʔδϝϯτ؅ཧ
    ΩϟϯϖʔϯͷΑ͏ʹಛఆͷର৅ऀηάϝϯτʹૹ৴͢ΔͷͰ͸ͳ͘ɺಛఆͷड৴ऀʹૹ৴͢ΔΦϯσϚϯυϝο
    ηʔδΛૹΔ͜ͱ΋Մೳ
    ෼ੳ
    ސ٬σʔλͷऩूͱཧղɺ͓Αͼσʔλʹج͍ͮͨߦಈɺΤϯήʔδϝϯτͷऔΓ૊ΈͷύϑΥʔϚϯεʹର͠
    ͯɺ͞·͟·ͳ෼ੳ͕Մೳ
    ࢀর : https://aws.amazon.com/jp/pinpoint/

    View Slide

  32. Amazon Pinpoint ͱ͸
    ࢀর : https://docs.aws.amazon.com/ja_jp/aws-mobile/latest/developerguide/mobile-hub-add-aws-mobile-analytics.html

    View Slide

  33. Amazon Pinpoint Ͱemail/push௨஌ ͷϢʔεέʔε
    AWS Batch
    Amazon Simple
    Storage Service
    (S3)
    Amazon
    Pinpoint
    લॲཧ
    ηάϝϯτͷϢʔβʔΛ
    S3ʹΞοϓϩʔυ
    ࣌ؒࢦఆ or ଈ࣌഑৴

    View Slide

  34. • json΍csvϑΝΠϧ͕͋Ε͹GUI͔Βૢ࡞͢Δ͜ͱ΋Մೳ
    • ࣌ؒࢦఆ or ଈ࣌഑৴͕Մೳ
    • 1ඵؒʹ0 ~ 25,000௨·Ͱ഑৴଎౓Λม͑Β͑Δ
    • ։෧཰΍Click཰Ҏ֎ͷ෼ੳΛ਺෼Ҏ಺Ͱ෼ੳͯ͘͠ΕΔ
    • ϑΝωϧ෼ੳ΋Ͱ͖Δ & Amazon Personalize
    Amazon Pinpointͷخ͍͠ϙΠϯτ
    ௚ײͰ৮ΕΔ
    ༧໿഑৴(batchॲཧ)΍ۓٸੑͷߴ͍഑৴(଎ใχϡʔεͳͲ)
    ΞΫηε਺ΛίϯτϩʔϩͰ͖Δ
    ͨͩૹΔ͚ͩ͡Όͳ͘ɺͦͷޙͷΞΫγϣϯʹ΋ͭͳ͛ΒΕΔ
    ͞·͟·ͳCVRௐ͕ࠪՄೳ
    ϑΝωϧ෼ੳ

    View Slide

  35. Ͳ͏͍͏ߏ੒ਤʹ͠Α͏͔ʁʁ

    View Slide

  36. Email or LINE Ͱ௨஌͍ͨ͠

    View Slide

  37. LINE௨஌Λ͢Δʹ͸AWS LambdaΛ࢖༻ͨ͠ΧελϜνϟωϧͰͰ͖ΔΒ͍͠
    ※ ࠓ(2019೥10݄ݱࡏ)͸ύϒϦοΫϕʔλ൛ͳͷͰ࢓༷มߋͷՄೳੑ͋Γ

    View Slide

  38. Amazon Pinpoint͸౦ژϦʔδϣϯͰར༻Ͱ͖ͳ͍
    ※ ࠓ(2019೥10݄ݱࡏ)

    View Slide

  39. Amazon PinpointΛىಈͤ͞Δʹ͸Ͳ͏͠Α͏
    σʔλ͸౦ژϦʔδϣϯʹ͋Δ

    View Slide

  40. AWS Step FunctionsͰ؅ཧͰ͖Δʁ
    AWS Lambda͸ʁ

    View Slide

  41. AWS Step Functions΍AWS Lambda͸ϦʔδϣϯؒΛͭͳ͛ΒΕͳ͍

    View Slide

  42. ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏͕͋Δ
    ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

    View Slide

  43. • ϢʔβʔΞϓϦέʔγϣϯͷݺͼग़͠͸ɺPC/αʔόʔ্ͷAWS SDK·ͨ͸εϚʔτ
    ୺຤্ͷAWS Mobile SDKͰՄೳ
    • AWSͷ௨஌αʔϏεͰ͋ΔSNSͷ௨஌ઌͱͯ͠AWS LambdaΛࢦఆ͢Δ
    • S3 Cross-Region ReplicationͰAWS Lambdaؔ਺ͱಉ͡ϦʔδϣϯʹόέοτΛෳ੡
    ͠ɺෳ੡όέοτʹAWS Lambda΁ͷΠϕϯτ௨஌Λઃఆ͢Δ
    ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏
    ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

    View Slide

  44. • ϢʔβʔΞϓϦέʔγϣϯͷݺͼग़͠͸ɺPC/αʔόʔ্ͷAWS SDK·ͨ͸εϚʔτ
    ୺຤্ͷAWS Mobile SDKͰՄೳ
    • AWSͷ௨஌αʔϏεͰ͋ΔSNSͷ௨஌ઌͱͯ͠AWS LambdaΛࢦఆ͢Δ
    • S3 Cross-Region ReplicationͰAWS Lambdaؔ਺ͱಉ͡ϦʔδϣϯʹόέοτΛෳ੡
    ͠ɺෳ੡όέοτʹAWS Lambda΁ͷΠϕϯτ௨஌Λઃఆ͢Δ
    ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏͕͋Δ
    ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

    View Slide

  45. ηάϝϯτ৘ใ͔Β഑৴·Ͱͷϑϩʔ͸AWS Step FunctionsͰ͍ͨ͠

    View Slide

  46. Amazon Pinpoint ηάϝϯτΛΠϯϙʔτ͢Δʹ࣌ؒΛཁ͢Δ(௕࣌ؒͰ͸ͳ͍)

    View Slide

  47. ΧελϜνϟωϧͰىಈ͞ΕͨAWS Lambda͸50໊෼Ͱ1Lambdaىಈ͢Δ

    View Slide

  48. • σʔλϕʔε͕౦ژϦʔδϣϯͷͨΊLambdaܦ༝ͰPinpointΛىಈͰ͖ͳ͍
    • ഑৴ͷϫʔΫϑϩʔΛStep FunctionsΛ༻͍Δ༧ఆ͕Ϧʔδϣϯؒ͸setͰ͖ͳ͍
    • ηάϝϯτͨ͠δϣϒΛΠϯϙʔτ׬ྃʹ͕͔͔࣌ؒΔ
    • ࠷ޙͷLINE഑৴࣌Ͱ͸഑৴ਓ਺ / 50໊෼ͷLambda্ཱ͕͕ͪΔ
    • ଐੑͷίϯτϩʔϧ
    AWS LambdaͱࣗಈԽʹ൐͏՝୊
    ΦϨΰϯͳͲಉϦʔδϣϯ಺Ͱ͋Ε͹ىಈՄೳ
    Pinpointͷϑϩʔ͚ͩStep FunctionsΛ༻͍ΔͳͲ
    Πϯϙʔτ׬ྃΛϙʔϦϯά͢Δඞཁ͕͋Δ
    ্ݶ؇࿨·ͨ͸ಉ࣌ʹ50,000ਓʹૹΒͳ͚Ε͹جຊ໰୊ͳ͍
    ଐੑ͸40ݸ·ͰͳͷͰɺܭըతͳઃܭ͕ඞཁ

    View Slide

  49. AWS Step Functions
    Amazon S3
    AWS Lambda AWS Lambda Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ ϑϩʔ
    Amazon Simple
    Notification Service
    Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)
    AWS Batch

    View Slide

  50. AWS Step Functions
    Amazon S3
    AWS Lambda AWS Lambda Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ ϑϩʔ
    Amazon Simple
    Notification Service
    Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)
    AWS Batch
    ౦ژϦʔδϣϯ

    View Slide

  51. AWS Step Functions
    Amazon S3
    AWS Lambda AWS Lambda Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ ϑϩʔ
    Amazon Simple
    Notification Service
    Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)
    AWS Batch
    ΦϨΰϯϦʔδϣϯ

    View Slide

  52. AWS Step Functions
    Amazon S3
    AWS Lambda AWS Lambda Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ ϑϩʔ
    Amazon Simple
    Notification Service
    Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)
    AWS Batch
    Ϣʔβʔηάϝϯτͨ͠σʔλΛ
    S3ʹputͰSNSΛணՐ
    SNS͸Ϧʔδϣϯؒ͸ؔ܎ͳ͍ͷͰɺ
    Step Functions Λىಈͤ͞Δ
    Amazon PinpointΛ༻͍ͯ഑৴

    View Slide

  53. AWS Step Functions
    Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ AWS Step Functions
    Step Functionsͷελʔτ͸
    DynamoDB͔Β഑৴͢Δ
    pinpointͷΞϓϦέʔγϣϯΛ
    औಘ͢Δ
    import͞ΕͨJSONσʔλΛ
    ݩʹηάϝϯτΛ࡞੒
    ഑৴͢ΔνϟωϧλΠϓ͔Β
    ΧελϜνϟωϧ
    ඪ४Λऔಘ͢Δ
    importޙ͸݅਺͕ଟ͘ͳΔͱ
    importʹ͕͔͔࣌ؒΔ(਺࣌ؒ
    Ͱ͸ͳ͍ͳ͍)
    ͦͷͨΊɺimport͕׬͔ྃͨ͠
    ఆظνΣοΫ͢Δඞཁ͋Γ
    ׬ྃޙΩϟϯϖʔϯͷੜ੒
    ΧελϜͷ৔߹͸
    ΧελϜνϟωϧͰ഑৴͢Δ
    LambdaΛىಈͤ͞Δ

    View Slide

  54. AWS Step Functions
    Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    AWS Lambda
    DONE import?
    ഑৴ AWS Step Functions
    Step Functionsͷελʔτ͸
    DynamoDB͔Β഑৴͢Δ
    pinpointͷΞϓϦέʔγϣϯΛ
    औಘ͢Δ
    import͞ΕͨJSONσʔλΛ
    ݩʹηάϝϯτΛ࡞੒
    ഑৴͢ΔνϟωϧλΠϓ͔Β
    ΧελϜνϟωϧ
    ඪ४Λऔಘ͢Δ
    importޙ͸݅਺͕ଟ͘ͳΔͱ
    importʹ͕͔͔࣌ؒΔ(਺࣌ؒ
    Ͱ͸ͳ͍ͳ͍)
    ͦͷͨΊɺimport͕׬͔ྃͨ͠
    ఆظνΣοΫ͢Δඞཁ͋Γ
    ׬ྃޙΩϟϯϖʔϯͷੜ੒
    ΧελϜͷ৔߹͸
    ΧελϜνϟωϧͰ഑৴͢Δ
    LambdaΛىಈͤ͞Δ

    View Slide

  55. AWS Lambda
    ഑৴ AWS Step Functions
    ׬ྃޙΩϟϯϖʔϯͷੜ੒
    ΧελϜͷ৔߹͸
    ΧελϜνϟωϧͰ഑৴͢Δ
    LambdaΛىಈͤ͞Δ
    import os
    import json
    import boto3
    def lambda_handler(event, context):
    s3 = boto3.client(‘s3')
    # ϝοηʔδ಺༰
    msg = event["Message"]["smsmessage"]["body"]
    arr = json.loads(msg)
    # ΤϯυϙΠϯτҰཡ
    endpoints = event["Endpoints"]
    for item in endpoints:
    # ΤϯυϙΠϯτ
    line_id = endpoints[item][‘Address']
    # ഑৴΁

    View Slide

  56. S3ͷߏ଄ߏ੒
    json : ഑৴σʔλҰཡ
    email_format : ഑৴಺༰
    ഑৴͢Δ্Ͱ؅ཧ͠΍͍͢
    Α͏ʹઃఆ
    ͳͷͰɺձࣾํ਑Ͱ͓೚ͤ
    email: ϝʔϧ഑৴
    line: LINE഑৴
    email_line: ϝʔϧ & LINE഑৴
    xxxxʹ͸
    line: LINE഑৴ͷϑΥʔϚοτ
    html: ϝʔϧͷHTMLܕ
    txt: ϝʔϧςΩετܕ
    title: ϝʔϧλΠτϧ
    Amazon S3
    s3:// BUCKET_NAME / format / ਌ΧςΰϦ / ϒϥϯυ໊ / ഑৴λΠϓ / ࢠΧςΰϦ_xxxx.txt
    s3:// BUCKET_NAME / json / ਌ΧςΰϦ / ϒϥϯυ໊ /഑৴λΠϓ / ࢠΧςΰϦ / yyyy-mm-dd.json
    json / format ਌ɾࢠΧςΰϦ
    ϒϥϯυ໊
    ഑৴λΠϓ ࢠΧςΰϦʔ_xxxx.txt
    ηάϝϯτϑΝΠϧ໊
    ഑৴ϑΝΠϧ໊

    View Slide

  57. AWS Lambda
    LINE ഑৴ AWS Lambda
    {
    "text": {
    "text": "xxxxxx"
    }
    }
    ςΩετ ver. ը૾ ver. ΠϝʔδϚοϓ ver.
    {
    "image": {
    "original_content_url": "xxx",
    "preview_image_url": "yyy"
    }
    }
    {
    "imagemap":{
    "alt_text": "ccccccccccccccccccccc",
    “base_url": "https://snaq.me",
    "h": xxx,
    "w": yyyy,
    "actions": [
    {
    "uri_text": "https://snaq.me",
    "type": "uri",
    "x": 0,
    "y": 0,
    "w": aaaaa,
    "h": bbbbb
    }……..
    ]
    }
    }

    View Slide

  58. AWS Step Functions
    AWS Lambda
    AWS Lambda
    ΞϓϦέʔγϣϯ࡞੒ AWS Step Functions
    pinpointͷΞϓϦʔγϣϯ࡞੒ ࡞ΒΕͨΞϓϦέʔγϣϯΛ
    DynamoDBʹೖΕࠐΉ
    &
    ঢ়گnotificationͤ͞Δ
    ༗ޮޙͷঢ়گΛ
    Dynamoʹput
    &
    ঢ়گΛnotificationͤ͞Δ
    Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    Amazon
    DynamoDB
    ΞϓϦέγϣʔϯͰ
    EMAILΛ༗ޮʹͤ͞Δ

    View Slide

  59. ௨஌
    AWS Step Functions
    AWS Lambda
    AWS Lambda
    ΞϓϦέʔγϣϯ࡞੒ AWS Step Functions
    Amazon
    DynamoDB
    AWS Lambda
    AWS Lambda
    Amazon
    DynamoDB
    {
    “app_email": "[email protected]",
    "app_name": "xxxxxxxxxxx"
    }

    View Slide

  60. ͜ΕͰ࠷ॳͷϢʔβʔηάϝϯτͷ෦෼ΛೖΕସ͑Δ͚ͩͰࣗಈ഑৴͕Մೳʹ

    View Slide

  61. Amazon PinpointͰቕͬͯ͠·ͬͨ͜ͱ

    View Slide

  62. • ଐੑͷ্ݶΛ௒͑ͯ΋Τϥʔ͕ฦΒͳ͍
    • ߏจϛε͸Τϥʔ͕ͩɺର৅߲໨ͷ্ݶจࣈ਺Λ௒͑ͯ΋Τϥʔ͸ฦΒͳ͍
    • ଐੑ͕ର৅ϢʔβʔʹΑۭͬͯͷ৔߹ɺCSVͩͱ[]ͱͯ͠࢒Δ͕json͸ฏؾ
    Amazon PinpointΛቕͬͯ͠·ͬͨ͜ͱ
    ্ه2ͭ͸ΤϯυϙΠϯτʹର৅ऀ͕͍Δ͔֬ೝ͕ඞཁɻ1ͭͰ΋outͩͱશͯૹΕͳ͍
    CSV؅ཧ͸ޙʑϚʔέ͕ѻ͍΍͍͕͢ɺjson͸૊ΈࠐΈ΍͍͢

    View Slide

  63. Amazon Pinpointͷ੍ݶ (ओʹ஫ҙ͕ඞཁͳpoint)
    Ϧιʔε σϑΥϧτͷ੍ݶ ૿Ճͷର৅
    AttributesɺMetricsɺUserAttributes ύϥϝʔ
    λʹ·ͱΊׂͯΓ౰ͯΒΕͨଐੑ
    ΞϓϦ͝ͱʹ 40 ͍͍͑
    ଐੑ஋ͷ௕͞ 100 จࣈ ͍͍͑
    ಉ͡Ϣʔβʔ ID Λ࣋ͭΤϯυϙΠϯτ
    Ϣʔβʔ ID ͝ͱʹ 10 ݸͷҰҙ
    ͷΤϯυϙΠϯτ
    ͍͍͑
    ηάϝϯτͷ࡞੒ʹ࢖༻Ͱ͖ΔσΟϝϯγϣ
    ϯͷ࠷େ਺
    ηάϝϯτ͝ͱʹ 100 ͍͍͑
    ηάϝϯτ಺ʹಉҰͷΤϯυϙΠϯτ ॏෳ͸࡟আ͞ΕΔ ͍͍͑

    View Slide

  64. ·ͱΊ
    • Amazon PinpointͰ͞·͟·ͳνϟωϧ΁௨஌͕Մೳ
    • ΧελϜνϟωϧΛ༻͍Ε͹LINE഑৴΋Մೳ(β൛ͳͷͰมΘΔ͜ͱ΋)
    • ଐੑͷ্ݶ͔ΒΞϓϦέʔγϣϯͷ؅ཧํ๏Λߟ͑Δඞཁ͕͋Δ
    • Τϥʔ͡Όͳ͍͕ૹΕͯͳ͍͜ͱ͕͋ΔͷͰɺ֬ೝͷϑϩʔ͸ඞਢ
    • AWS Step Functionsʹ·ͱΊΔ͜ͱͰҰݩ؅ཧ
    • Ϧʔδϣϯؒ͸SNSαϒεΫϥΠϒΛ༻͍Δ͜ͱͰεϜʔζʹ

    View Slide

  65. ࠓޙ͍ͨ͜͠ͱ
    • Amazon PersonalizeΛ༻͍ͯΑΓ֬౓ͷߴ͍௨஌Λ
    • ͓՛ࢠͷબఆͷڧԽ
    • OEMઌͷγεςϜ
    • ύςΟγΤ޲͚ͷ৽঎඼։ൃγεςϜ
    • ࣗಈൃૹ
    • ධՁΛ͠ͳͯ͘΋ࣗಈͰ޷͖ݏ͍Λ൑அͰ͖Δ࢓૊Έ
    ͳͲ

    View Slide

  66. ৽͍͓͠΍ͭମݧΛ૑଄͠ɺ ͓΍ͭͷ࣌ؒΛՁ஋ͷ͋Δ΋ͷʹ
    ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ͝ڵຯ͋Δํ͸ snaq.me (εφοΫϛʔ) ΁

    View Slide