Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSでローコードにはじめる サブスクリプション運用の効率化/aws-startup-tech-meetup-fukuoka-2

AWSでローコードにはじめる サブスクリプション運用の効率化/aws-startup-tech-meetup-fukuoka-2

Hidetaka Okamoto (Stripe)

November 17, 2022
Tweet

More Decks by Hidetaka Okamoto (Stripe)

Other Decks in Technology

Transcript

  1. AWSでローコードにはじめる
    サブスクリプション運用の効率化
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    @hidetaka_dev
    Npv 2022
    1
    #AWSStartup

    View full-size slide

  2. 今日のトピック
    ● サブスクリプションサービスは、
    「契約してから」が本番
    ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで
    ローコードにサブスクリプションの運用WFを構築しよう
    ● 変化に素早く対応するために、
    AWSのローコード・Serverlessツールを活用しよう
    2
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  3. 岡本 秀高 ( @hidetaka_dev )
    ● Stripe Developer Advocate
    (ex-developer in Digitalcube)
    ● JavaScript / TypeScript developer
    ○ AWS Lambda / CDK
    ○ Next.js / React
    ○ WordPress / Alexa / etc
    ● AWS Samurai 2017 /
    AWS Community Day APAC 2017
    ● QiitaでStripeに関する
    Dev blogを週2/3本で更新中
    ○ https://qiita.com/hideoka
    moto
    ○ 年間120記事ペース
    3
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  4. 今日のトピック
    ● サブスクリプションサービスは、
    「契約してから」が本番
    ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで
    ローコードにサブスクリプションの運用WFを構築しよう
    ● 変化に素早く対応するために、
    AWSのローコード・Serverlessツールを活用しよう
    4
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  5. サブスクリプションは、「契約してからが本番」
    ● サブスクリプションは、「契約し続けてもらう」必要がある
    ○ 使わないサブスクサービスは、解約される
    ■ 競合他社への乗り換え: 「もっと安いor便利なサービスにしよう」
    ■ 需要の消失: 「子どもが成長したので、もう使わない」
    ○ 「完全に解約」したいのか、「今だけお休み」したいのか
    ■ 長期出張のため、食品の定期注文を解約したい
    ■ 今期は見たい番組や作品がないから解約したい
    5
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  6. 解約・休会以外にも、サブスクには状態変化が多数ある
    ● サブスクリプション = 長期的な顧客との関係構築
    ● さまざまなイベントや状態変化が発生する
    ○ カードの更新忘れや銀行振込の入金忘れ
    ○ 上位プランユーザーによるプランのダウングレード
    ○ ユーザーのミスによる高額な従量課金請求書の発行
    ● 「契約や顧客の状態」が変わったことの検知と、
    それに対応するフローの自動化が社内の運用コストや顧客体験を改善する
    6
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  7. ただし・・・
    ● 緊急性の高い問題(二重決済、不正請求対応など)以外は、
    コア機能の開発にリソースを優先したい
    ● 休会や解約、顧客・契約情報の更新などは、
    頑張れば人力である程度サポートできる
    ● 「重要だけども、緊急性の高くない非コア要件」を
    どのようにシステム化、効率化していくか?
    7
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  8. Amazon SNSやAWS Chatbotでまずは社内通知から
    ● SNSを利用した社内通知
    ○ Chatbot併用でSlackにも
    ● まずは「何かが起きた」ことを
    素早く検知できる仕組みを作る
    ○ 顧客が問い合わせて来る前に
    調査や対応を済ませたい
    ○ 人力でのサポートは継続
    ただし初動が早くなる
    ● EventBridgeのルールなどで
    要対応イベントかを事前トリアージ
    ○ 「オオカミ少年」化を回避する
    8
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  9. AWS Step Functionsで、WFをローコードに
    ● ドラッグ&ドロップで
    AWS上にワークフローを構築可能
    ● AWS APIの呼び出しやWF手動実行も
    GUIから設定・操作できる
    ● 設定をJSONなどで出力できるので、
    「手軽に試して、手堅く運用」が可能
    ○ ローコードにWFを試作
    ○ テスト環境で評価
    ○ CDKやCFNでコード化
    ○ Go Live !
    9
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  10. ユーザー・契約の「状態」をシステムで把握する
    ● 個々の契約や顧客の状態を人力で把握するのは難しい
    ○ システム化・仕組み化して、素早く効率的に変化を検知する
    ○ ローコードでWFの試作・評価サイクルを素早く回す
    ● Q:「作ったWF」と「状態変化」をどう紐づけるか?
    ○ 手動実行(GUI / API / CLI / etc..)
    ○ Webhook API
    ○ AWSのイベント駆動型サービスを利用する
    ■ SQS, SNS, EventBridge
    10
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  11. 今日のトピック
    ● サブスクリプションサービスは、
    「契約してから」が本番
    ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで
    ローコードにサブスクリプションの運用WFを構築しよう
    ● 変化に素早く対応するために、
    AWSのローコード・Serverlessツールを活用しよう
    11
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  12. EventBridgeで、「状態の変化」とWFを紐づける
    ● 「発生したイベント」と
    「実行したいWF」の
    関係性(ルール)を作る
    ● AWS内のイベントや、
    連携SaaSのイベント、
    AWS SDKによる手動通知に対応
    ● StripeやTwilioなどは、
    クイックスタートで
    Webhookエンドポイントを用意
    12
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    https://aws.amazon.com/jp/about-aws/whats-new/
    2022/08/amazon-eventbridge-supports-receiving-
    events-github-stripe-twilio-using-webhooks/

    View full-size slide

  13. クイックスタート利用の場合
    Sourceでstripe.comを指定
    detail-typeで
    Stripeのリソース名を指定
    detailで、JSON構造に対応した
    条件を書くと、絞り込み
    右の例:
    「5000円以上の請求書」に
    関する全てのイベント
    13
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    EventBridgeでのStripeイベントのフィルター例

    View full-size slide

  14. Webhook活用例1: フリートライアルのフォローアップ
    ● Stripeの「customer.subscription.trial_will_end」イベントを利用
    ○ 3日前または手動でトライアルを終了させた場合に発火
    ● Step FunctionsからSESで顧客に追加のフォローアップメール送信
    ○ 自動解約の場合、リソースやアカウント削除などの注意喚起
    ● Pinpointを使えば、LINEやSMSへの追加送信も可能
    ○ ユーザー層によっては、メールよりもLINEやSMSが有効な場合も
    ○ LINE Message APIでは、プランアップグレードのCTA誘導なども可能
    14
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  15. Webhook活用例2: 長期利用顧客のアップグレード提案
    ● customer.subscription.updatedイベントを利用
    ○ サブスクリプションの開始日と現在を比較
    ○ 「12ヶ月以上契約の月額プランユーザー」などでフィルタ
    ● SESやPinpointで、顧客に年額プランなどの長期プランを自動提案
    ● DynamoDBに累計支払額や契約数などを保存することで、
    DynamoDB Stream経由で優良顧客の発見も可能
    15
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  16. Tips: Stripe APIを呼び出すProxy Lambda
    16
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    https://gist.github.com/hideokamoto-stripe/b1ed354a65f386db8218330252287b7d #AWSStartup

    View full-size slide

  17. AWSリソースを活用して、サブスクの運用を効率化
    ● Event Bridge + Step Functionsで、
    コードを書かずにワークフローを作ることができる
    ● Event Bridge -> SNS -> Chatbotで、
    社内Slackやメーリスに状態変化を通知するだけでも有用
    ● Step Functions Workflow Studioを使って、
    さまざまな運用効率化施策をローコードで実現させてみよう
    ○ 本番稼働させる際は、ぜひCDKやCFNでコード管理を
    17
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  18. 今日のトピック
    ● サブスクリプションサービスは、
    「契約してから」が本番
    ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで
    ローコードにサブスクリプションの運用WFを構築しよう
    ● 変化に素早く対応するために、
    AWSのローコード・Serverlessツールを活用しよう
    18
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  19. 「ビジネスのコア機能」じゃないからこそ、ローコード
    ● 開発リソースはコア機能の開発や改善に使いたい
    ● クリティカルではない決済・サブスク周りの施策は
    「あればいいね」「できたら便利そう」になりやすい
    ○ Workflow Studioなら、
    テスト環境で実際に動くものを用意・デモしやすい
    ○ 想定外のエラーや障害を起こさないために、
    稼働しているDBや既存リソースの設定はなるべく触らない
    ● テスト環境で手早く試して、早く小さく失敗する
    19
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  20. うまく行った改善は、Next SaaSの種
    ● 自社でニーズのある改善は、他所でもニーズがあるかもしれない
    ● 疎結合なシステム構成を維持することで、
    作ったシステムをas a service化する
    ● SaaS化する際にも、AWSは無限に使い倒そう
    ○ AWS Amplify (Cognito, Amplify SDK, Amplify Studio, etc..)
    ○ AppSync, API Gateway, Lambda, DynamoDB,
    ○ AppRunner, Fargate, ECS, etc
    20
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  21. Stripe Appsの例: kintoneとStripeで顧客データ連携
    21
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide

  22. サブスクリプションシステムからDXをはじめよう
    ● 決済系SaaSを活用して、サブスクリプションの組み込みを効率的に
    ○ 効率化した分、
    「契約し続けてもらうための施策」を決済方面からもトライしよう
    ● Webhookを活用して、「顧客や契約の状態変化」へ
    システムや社員がスムーズな対応ができる環境を目指そう
    ● 成功した施策や企画を抽象化して、
    Stripe Appsなどで新しいas a Service化を目指そう
    22
    AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス!
    ~
    #AWSStartup

    View full-size slide