見出し画像

This is My Architectureに出て感じたこと

みなさんこんにちはスナックミー CTOの三好です。

今回私がTMA(This is My Architecture) に出ることができたので感じことを書いてみました!動画は来年公開予定です!
そして、今回のアーキテクチャを作った経緯も書いてますので最後までお付き合いください。

今回のアーキテクチャ概要

画像1

Amazon Pinpointを用いてユーザーさんごとにパーソナライズして通知を届けるアーキテクチャです。セグメントファイルをS3にアップロードさせ、Step Functionsのワークフローを起動させ通知を送信しています。
Amazon PinpointはEmailやSMS, Pushといった世界中の何百万もの顧客に簡単で信頼性高くメッセージを届けることができます。ただ届けるだけでなく、エンゲージメントに関連したデータを集約、可視化、カスタマイズが可能になっています。
弊社はこのアーキテクチャの特徴としてCustom Channelといった機能を使用し、LINE送信の一斉送信可能なアーキテクチャにしました。Custom ChannelはFacebook Messenger, Whats app, LINEなどのメッセージにアプリなどを自社でカスタムして届けることが可能にサービスであり、あらゆるチャネルに対応できるようになっています。

TMAとは

AWSのWebページ or Youtubeのplaylistにある、This is My Architectureというコーナーで世界各国会社さんの優れたアーキテクチャが紹介されています。こちらはコンピューティング、コンテナからAR & VRなど様々なカテゴリの事例が多く存在し、参考として対象のカテゴリはよく見てます。
大変参考になる分が多いのでぜひ初めての方もご覧になるといいと思います。

TMAに出れた理由

今回日本からは4社だったと聞いています。そのうちスタートアップは私のスナックミー のみでした。なぜスナックミーが出れたのか勝手に推測してみました。

・出たい想いがある
・ラスベガスに来れる方
・スタートアップを少なくとも1社出したい
・過去に事例がない構成図。できればシンプル
・構成図がAWS的にいい(推したい)事例

などかなと。
・出たい想いがある : 想いだけでは出れませんが、出たくない人は推薦し難いと思いますので、ここは担当の営業の方に伝えておくと良いかもしれません。弊社はAWSサービスをほぼフルでproduction環境で動いているので密かに目標の一つしてました。

・ラスベガスに来れる方 : 来れないとそもそも撮れないので想いがあり、ラスベガスに来れる方はチャンスがあるかもしれません。

・スタートアップを少なくとも1社出したい : よくAWSのkeynoteでスタートアップの支援を大事にしていきたいことを耳にします。エンタープライズの会社さんももちろん大事だと思いますが、スタートアップに対して様々なクレジットを用意してくれますし、無料相談会も定期的に開催してくれています。
また、昨年のAWS Summit TokyoからStartup Architecture of the yearを開催し、スタートアップのアーキテクチャをフィーチャーさせてくる場を設けてくれています。スタートアップの方々はAWS関連のイベントなどいろんなチャンスを用意してくれているように感じます。
実際SummitやDevDayにCFPなどの枠を用意してくれており、TMAにスタートアップが出ることは、スタートアップにAWSは必要なリソースの一つであるメッセージを伝えられると思います。実際に私もAWSがあったので今回のアーキテクチャを作れました。

・過去に事例がない構成図。できればシンプル : これは特にTMAの内容がYoutubeに上がっている場合を差しています。TMAに出るには被りなしであるだけで、真似ちゃいけないわけじゃない。もはや、私も構成図を考えるときにTMAの動画みて参考にします。5,6分で終わるのが多いので、サクッとみれます。(過去に同じ事例があった場合はすいません。。)

・構成図がAWS的にいい(推したい)事例 : Well Architectureに沿った考え方。といったほうが伝わりやすかもしれないですね。「運用上の優秀性、セキュリティ、信頼性、パフォーマンス効率、コスト最適化」プラスαで先進的、ビジネス的効果がある事例、などでまとまったアーキテクチャなのかもしれません。

今回のアーキテクチャを作った経緯

ここでこのアーキテクチャを作った経緯ですが、構成の詳細は今年のDevDayでお話しさせていただきましたので経緯がメインです。
弊社はCRMを基本LINEでやっており日々様々なユーザーの方々とやりとりしております。そこで、LINEとユーザーさんの関係を向上させファンになってもらうことが大事になります。
基本、1対1は手動ですが、ユーザーさんに有益な情報などは手動でなく自動化するしており、このような通知をする場合、同じ文言でなくユーザーごとにパーソナライズさせ、LINEじゃない方はメールなどで配信したい場合がある、しかも通知は全員じゃなく、ターゲットを絞ったセグメントが容易にできること。なぜなら、不要な通知はユーザーにとって嫌なコミュニケーションになってしまうため。
ではLINEやemailの両方同じプラットフォームで送信できる方法はどうやるのだろうと考えていました。そのとき、弊社フロントエンジニアがAmazon Pinpointでファネル分析できるらしいということで、フロントだけでABテストを完結できる場合、Pinpointで実装してみてました。そこで、いくつかの仕様上の疑問点が出てきたので、SAの塚田さんにお聞きしたのをきっかけに、Pinpointの可能性を感じるようになりました。

・分析、計測可能
・通知後の分析/測定
・多チャネルの配信も容易
・配信時間/量を簡単に操作
・Amazon Personalizeと結合可能
など

素晴らしいことがあったので、まず通知対象となるセグメントのファイルをアップロードしてしまえば、様々なチャネルに対応され自動的に通知できるアーキテクチャを作ろうと思い、結果として、今回の構成図になりました。
しかもLINEを送るために使用している機能がCustom Channelという機能はパブリックプレビュー(2019/12/08現在)なので、GAした時は仕様がどの程度変わるかわからない。パブリックのプレビューということで私は、パブリックなのだから、根幹は変わらないだろうと思い使うことにしました。
あったとしても数時間で対応できる範囲だろうと。。

名称未設定


上記の写真は今回のre:Inventのコンテンツの一つでCustomer Engagment チームとのHappy Hourに参加させてもらい、SA, PM, エンジニアの方々とお話をさせてもらった中、Custom Channel を使っていることに大変喜んでいたことが印象的でした。Pinpoint自体、他のコンテナやDBなどに比べると日本じゃ知っている人も少ないサービスですが、現在の配信ツール/構成で計測したい、多チャネル配信などある場合は、pinpointでやることはおすすめします。

まとめ

TMAに出れたことは一つの大きな成果だったと思います。ですが、TMAに出るためにシステムを構築して欲しくないなと思う次第です。課題を解決するために構築した結果出れれば最高です。
AWSは毎年のように多くの新しいサービスを発表し画期的で従来の手法だと手間のかかっていた構築が簡単にできるようなサービスが出てきます。
スタートアップは新しいサービスを使うにはそこそこ体力が必要だと思います。(検証、事例が少ないため)
ですが、課題を解決するためにAWSのサービスの中で解決できそうなことがあれば向き合うことも大事だと思います。AWSのためでもなく、社内のためでもなく、自分のためでなく、ユーザーさんが満足度を上げるためにエンジニアができることを考えれば解決できる方法が見つかると思います。

色々偉そうに書いてますが参考になってもらえれば幸いです。

2020.05.04(月)追記
動画公開されました。

twitter↓↓

スナックミー はエンジニア含めオペレーションマネージャーなのどポジションをオープンして募集中です。ぜひ、ユーザーさんのために今の課題を様々な技術を使って解決したいご連絡ください!
SRE、CRE、バックエンド、フロント、データサイエンティスト、MLAIエンジニアなどお待ちしてます!

最後にラスベガスの写真を数枚

画像3

画像4

この記事が気に入ったらサポートをしてみませんか?