Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images ›...
Transcript of Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images ›...
![Page 1: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/1.jpg)
Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤
2019.10.03AWS DevDay Tokyo 2019 C-4株式会社スナックミー CTO & co-founder 三好隼人
![Page 2: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/2.jpg)
•株式会社スナックミー
•三好隼人 co-founder & CTO
•東京生まれ東京育ち
•建築出身エンジニア
•トライアスロンやマラソンを嗜む @miyoshihayato
![Page 3: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/3.jpg)
1. snaq.me(スナックミー) について
1,980円 (税込)100種以上から8種のおやつを一人ひとりにセレクトしてお届け
Real Foodから作った、美味しくてカラダに優しいおやつをお一人ひとりにカスタマイズしてお届けするサブスクリプションサービス
![Page 4: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/4.jpg)
Mission
Vison
新しいおやつ体験を創造し、おやつの時間を価値のあるものにする。
数百億円規模の Real Foodスナック市場を創り、その市場のナンバー1ブランドとなる。
栄養価が高く、それでいて美味しさに妥協しないスナックによって、おやつそのもの質を上げる。また、モノだけではなく、新しいおやつ体験をデザインし、おやつの時間の価値を向上させる。それによって、おやつの時間が彩りとなり、豊かな生活を実現する。
Real Foodスナックとは、形あるReal Foodのみから作られたスナック。素材本来が持つ栄養と美味しさを最大限に活かし、人工的な原料や化学物質は使わない。栄養価が高く健康的で、それでいて美味しさに妥協はしない。
![Page 5: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/5.jpg)
スナックミーの商品開発基準Made From Real Food
化学物質に頼らず、自然な素材から美味しさと栄養を引き出す
Create a New Culture
新しい食文化や食習慣を作り出しうる
Without Compromise
美味しさに妥協しない
![Page 6: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/6.jpg)
ドライフルーツ・ナッツ
トレイルミックス
焼き菓子
チョコ
チップス
米菓
その他フルーツ菓子
季節に合わせた商品100SKU以上を常時在庫。毎月10~20%を入れ替え。
1. snaq.me(スナックミー) について
![Page 9: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/9.jpg)
開発の主なツール- サーバーサイド : 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
![Page 10: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/10.jpg)
Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤の話ここから本題へ
![Page 11: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/11.jpg)
そもそも、なぜLINE(チャットUI)を用いたのか?
![Page 12: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/12.jpg)
2015年の創業前から以下のように考えていました
• UXが明確
• チャットUIは老若男女使える
• これからはチャットUIがベースになる可能性がある
• LINEからpushできる
• LINE上だとフレキシブルにUIを操れないのでwebに案内するようにした
![Page 13: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/13.jpg)
スナックミー当初は?
![Page 14: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/14.jpg)
当初は
![Page 15: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/15.jpg)
やりとり全てチャット形式評価もリクエストも
![Page 16: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/16.jpg)
チャットUIはいいところだけじゃない
目的がしっかりしている場合は回りくどい
初回、初見ユーザーにチャットで案内すると使い勝手向上
2周目(学習済みのUIUX)
![Page 17: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/17.jpg)
CSとしてのコミュニケーション1本に
そのため
![Page 18: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/18.jpg)
LINE Messaging API
用いているのが
![Page 19: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/19.jpg)
• 企業とユーザーの双方コミュニケーションが可能
• プッシュメッセージと応答メッセージ
• 1対1、グループでトーク可能
• さまざまな状況に合わせたメッセージタイプ
• テキスト• スタンプ• 音声• 画像など
LINE Messaging APIでできること
企業とユーザーの双方コミュニケーションが可能
さまざまな状況に合わせたメッセージタイプ
![Page 20: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/20.jpg)
構成図
ユーザー送信スタッフ送信
スタッフへ通知
Amazon Route 53
Elastic Load
Balancing
Elastic Load
Balancing
EC2
EC2
Amazon Aurora
![Page 21: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/21.jpg)
構成図
ユーザー送信スタッフ送信
スタッフへ通知
Amazon Route 53
Elastic Load
Balancing
Elastic Load
Balancing
EC2
EC2
Amazon Aurora
![Page 22: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/22.jpg)
構成図
ユーザー送信スタッフ送信
スタッフへ通知
Amazon Route 53
Elastic Load
Balancing
Elastic Load
Balancing
EC2
EC2
Amazon Aurora
![Page 23: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/23.jpg)
送受信を分けている理由
ユーザーからのメッセージ受信は絶対!落とせない
![Page 24: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/24.jpg)
• サービスがグロースすれば、CSも増やす必要がある
• どこまでアウトバウンド(スタッフ発信)を行うか
• だが、ユーザーとの接点は多く持ちたい
• 新しい施策を試したい
など
課題
![Page 25: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/25.jpg)
• サービスがグロースすれば、CSも増やす必要がある
• どこまでアウトバウンド(スタッフ発信)を行うか
• だが、ユーザーとの接点は多く持ちたい
• 新しい施策を試したい
など
課題
![Page 26: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/26.jpg)
1対1の対応は残し、1対多をできる仕組みの構築
ユーザーと接するには1歩(通)目が大事なので
![Page 27: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/27.jpg)
セグメント対象の1通目はawsを用いたシステム
その後は1対1でメッセージのやり取り
こういうこと
![Page 28: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/28.jpg)
セグメントしたユーザーへ配信を自動化できる基盤が欲しい
![Page 29: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/29.jpg)
Amazon Pinpoint
![Page 30: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/30.jpg)
Amazon Pinpointとはエンゲージメントチャネル
メッセージをひとつのチャネルか、多くのチャネル経由で送るかにかかわらず、世界中の何百万もの顧客に簡単で信頼性高くメッセージを届けることができます。
エンゲージメント管理
適切な顧客に、適切なメッセージを、適切なタイミングで、適切なチャネルを通して送ってください。
分析
顧客と貴社のエンゲージメントに関連したデータを集約、可視化、カスタマイズ。
参照 : https://aws.amazon.com/jp/pinpoint/
![Page 31: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/31.jpg)
Amazon Pinpointとはエンゲージメントチャネル
Eメール、音声、SMS、プッシュ通知、拡張機能(LINEなど)
エンゲージメント管理
キャンペーンのように特定の対象者セグメントに送信するのではなく、特定の受信者に送信するオンデマンドメッセージを送ることも可能
分析
顧客データの収集と理解、およびデータに基づいた行動、エンゲージメントの取り組みのパフォーマンスに対して、さまざまな分析が可能
参照 : https://aws.amazon.com/jp/pinpoint/
![Page 32: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/32.jpg)
Amazon Pinpointとは
参照 : https://docs.aws.amazon.com/ja_jp/aws-mobile/latest/developerguide/mobile-hub-add-aws-mobile-analytics.html
![Page 33: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/33.jpg)
Amazon Pinpointでemail/push通知のユースケース
AWS BatchAmazon Simple Storage Service
(S3)
Amazon Pinpoint
前処理セグメントのユーザーをS3にアップロード
時間指定 or 即時配信
![Page 34: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/34.jpg)
• jsonやcsvファイルがあればGUIから操作することも可能
• 時間指定 or 即時配信が可能
• 1秒間に0 ~ 25,000通まで配信速度を変えらえる
• 開封率やClick率以外の分析を数分以内で分析してくれる
• ファネル分析もできる & Amazon Personalize
Amazon Pinpointの嬉しいポイント
直感で触れる
予約配信(batch処理)や緊急性の高い配信(速報ニュースなど)
アクセス数をコントローロできる
ただ送るだけじゃなく、その後のアクションにもつなげられる
さまざまなCVR調査が可能
ファネル分析
![Page 35: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/35.jpg)
どういう構成図にしようか??
![Page 36: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/36.jpg)
Email or LINE で通知したい
![Page 37: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/37.jpg)
LINE通知をするにはAWS Lambdaを使用したカスタムチャネルでできるらしい!今(2019年10月現在)はパブリックベータ版なので仕様変更の可能性あり
![Page 38: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/38.jpg)
Amazon Pinpointは東京リージョンで利用できない!今(2019年10月現在)
![Page 39: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/39.jpg)
Amazon Pinpointを起動させるにはどうしよう
データは東京リージョンにある
![Page 40: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/40.jpg)
AWS Step Functionsで管理できる?AWS Lambdaは?
![Page 41: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/41.jpg)
AWS Step FunctionsやAWS Lambdaはリージョン間をつなげられない
![Page 42: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/42.jpg)
異なるリージョンのAWS Lambdaを利用する方法がある
参照 : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/
![Page 43: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/43.jpg)
• ユーザーアプリケーションの呼び出しは、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/
![Page 44: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/44.jpg)
• ユーザーアプリケーションの呼び出しは、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/
![Page 45: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/45.jpg)
セグメント情報から配信までのフローはAWS Step Functionsでしたい
![Page 46: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/46.jpg)
Amazon Pinpoint セグメントをインポートするに時間を要する(長時間ではない)
![Page 47: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/47.jpg)
カスタムチャネルで起動されたAWS Lambdaは50名分で1Lambda起動する
![Page 48: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/48.jpg)
• データベースが東京リージョンのためLambda経由でPinpointを起動できない
• 配信のワークフローをStep Functionsを用いる予定がリージョン間はsetできない
• セグメントしたジョブをインポート完了に時間がかかる
• 最後のLINE配信時では配信人数 / 50名分のLambdaが立ち上がる
• 属性のコントロール
AWS Lambdaと自動化に伴う課題
オレゴンなど同リージョン内であれば起動可能
PinpointのフローだけStep Functionsを用いるなど
インポート完了をポーリングする必要がある
上限緩和または同時に50,000人に送らなければ基本問題ない
属性は40個までなので、計画的な設計が必要
![Page 49: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/49.jpg)
AWS Step Functions
Amazon S3AWS 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
![Page 50: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/50.jpg)
AWS Step Functions
Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB
AWS Lambda
AWS Lambda
AWS LambdaAWS Lambda
DONE import?
配信フロー
Amazon Simple Notification Service
Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)Oregon Region (us-west-2)
AWS Batch
東京リージョン
![Page 51: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/51.jpg)
AWS Step Functions
Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB
AWS Lambda
AWS Lambda
AWS Lambda
DONE import?
配信フロー
Amazon Simple Notification ServiceNotification Service
Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)
AWS Batch
オレゴンリージョン
![Page 52: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/52.jpg)
AWS Step Functions
Amazon S3AWS Lambda AWS Lambda Amazon DynamoDB
AWS Lambda
AWS Lambda
AWS LambdaAWS Lambda
DONE import?
配信フロー
Amazon Simple Notification ServiceNotification Service
Tokyo Region (ap-northeast-1)Tokyo Region (ap-northeast-1) Oregon Region (us-west-2)Oregon Region (us-west-2)
AWS Batch
ユーザーセグメントしたデータを
S3にputでSNSを着火
SNSはリージョン間は関係ないので、Step Functionsを起動させる
Amazon Pinpointを用いて配信
![Page 53: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/53.jpg)
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を起動させる
![Page 54: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/54.jpg)
AWS Step FunctionsAWS Step Functions
Amazon DynamoDB
AWS LambdaAWS Lambda
AWS Lambda
AWS Lambda
DONE import?
配信 AWS Step Functions
Step FunctionsのスタートはのスタートはDynamoDBから配信するから配信する
pinpointのアプリケーションをのアプリケーションを取得する
importされたJSONデータを元にセグメントを作成
配信するチャネルタイプからカスタムチャネル標準を取得する
import後は件数が多くなると後は件数が多くなるとimportに時間がかかる(数時間数時間
ではないない)そのため、importが完了したかが完了したか定期チェックする必要あり定期チェックする必要あり
完了後キャンペーンの生成カスタムの場合は
カスタムチャネルで配信するLambdaを起動させる
![Page 55: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/55.jpg)
AWS Lambda
配信 AWS Step Functions
完了後キャンペーンの生成カスタムの場合は
カスタムチャネルで配信するLambdaを起動させる
import osimport jsonimport 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'] # 配信へ
![Page 56: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/56.jpg)
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
セグメントファイル名
配信ファイル名
![Page 57: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/57.jpg)
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 }…….. ] }}
![Page 58: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/58.jpg)
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を有効にさせる
![Page 59: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/59.jpg)
通知
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"}
![Page 60: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/60.jpg)
これで最初のユーザーセグメントの部分を入れ替えるだけで自動配信が可能に
![Page 61: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/61.jpg)
Amazon Pinpointで嵌ってしまったこと
![Page 62: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/62.jpg)
• 属性の上限を超えてもエラーが返らない
• 構文ミスはエラーだが、対象項目の上限文字数を超えてもエラーは返らない
• 属性が対象ユーザーによって空の場合、CSVだと[]として残るがjsonは平気
Amazon Pinpointを嵌ってしまったこと
上記2つはエンドポイントに対象者がいるか確認が必要。1つでもoutだと全て送れない
CSV管理は後々マーケが扱いやすいが、jsonは組み込みやすい
![Page 63: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/63.jpg)
Amazon Pinpointの制限 (主に注意が必要なpoint)
リソース デフォルトの制限 増加の対象
Attributes、Metrics、UserAttributes パラメータにまとめて割り当てられた属性
アプリごとに 40 いいえ
属性値の長さ 100 文字 いいえ
同じユーザー ID を持つエンドポイント ユーザー ID ごとに 10 個の一意のエンドポイント
いいえ
セグメントの作成に使用できるディメンションの最大数 セグメントごとに 100 いいえ
セグメント内に同一のエンドポイント 重複は削除される いいえ
![Page 64: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/64.jpg)
まとめ• Amazon Pinpointでさまざまなチャネルへ通知が可能
• カスタムチャネルを用いればLINE配信も可能("版なので変わることも)
• 属性の上限からアプリケーションの管理方法を考える必要がある
• エラーじゃないが送れてないことがあるので、確認のフローは必須
• AWS Step Functionsにまとめることで一元管理
• リージョン間はSNSサブスクライブを用いることでスムーズに
![Page 65: Amazon Pinpointを用いてEmailやLINE通知を 自動 … › rs › 112-TZM-766 › images › C-4.pdfAmazon Pinpointを用いてEmailやLINE通知を 自動化した基盤 2019.10.03](https://reader033.fdocuments.us/reader033/viewer/2022053017/5f1b597cffd3f7753540f872/html5/thumbnails/65.jpg)
今後したいこと• Amazon Personalizeを用いてより確度の高い通知を
• お菓子の選定の強化
• OEM先のシステム
• パティシエ向けの新商品開発システム
• 自動発送
• 評価をしなくても自動で好き嫌いを判断できる仕組み
など