AmazonConnectで作るサーバレス電話確認システム

03ff558c707624b324a31756a6a44e64?s=47 inamuu
July 12, 2019

 AmazonConnectで作るサーバレス電話確認システム

社内LTで発表した資料です。

03ff558c707624b324a31756a6a44e64?s=128

inamuu

July 12, 2019
Tweet

Transcript

  1. Amazon Connect で作る サーバーレス電話確認システム ランサーズSREチーム 稲村 2019.7.12(金) \#dev_tech_friday LT vol.1/

  2. ランサーズSREチーム 稲村一真 https://inamuu.com @kzm0211

  3. ランサーズの電話確認システムを 刷新した話をします!✋

  4. 電話確認システムとは クライアント様とランサー様それぞれの存在証明の  一つとして電話確認の実施を推奨 プロフィール画面で番号登録した電話から、    弊社指定の番号へ電話をかけていただくことで   電話確認が行われるシステム

  5. 移行前の構成 &$͕୆ 1ZUIPOίʔυ͸αʔόʔʹ͔͠ͳ ͍͔͠΋Πϯελϯε͸ߏ੒؅ ཧ͞Εͯͳ͍

  6. 移行することになった背景 電話確認を行うサーバーが1台のSPOFだった インフラと一部アプリケーションソースが構成管理されていなかっ た 検証環境が無かった 構築時のドキュメントが古くなり、新規での構築が容易では 無かった

  7. \同じ環境を構築するのたいへん/ LambdaとAmazon Connect連携できるのでは どうやらぜんぶサーバーレスで できるらしいので ぜんぶ作り直ししよう!!

  8. Amazon Connect

  9. AmazonConnectとは マネージドのコールセンターサービス Webベースで電話の受電、架電がおこなえる上 に、東京リージョンに対応 日本語で書いた漢字を含むテキストをそのまま読 み上げてくれる 問い合わせフローを作成できる専用のエディターが ある Lambda連携ができる!

  10. 問い合わせフローエディタ

  11. デモ

  12. 移行後の構成

  13. 移行後の構成 Amazon Connectでフローを作成 Lambda(in VPC)でDBへメールアドレスの確認&更 新&メール送信を実施 Lambdaの返り値に、メールアドレスの確認結果から    判断したアナウンスの文字列を渡す Amazon Connectでは渡された文字列を動的にテキス

    ト読み上げさせる メールの配信はSendGridのAPIを使って行う
  14. ちょっと工夫した所 VPCに配置したLambdaは起動に時間がかかる 定期的に実行していれば停止せずに再利用されるが、 しばらくすると停止してしまう Lambdaが起動するまでの間、電話の確認処理で止 まってしまう ClowdWatch Ruleで10分おきにただLambdaを実 行するだけのCronを追加

  15. Lambda Functionのmain関数 def lambda_handler(event, context): '''cloudwatch rulesで引数なしに定期実行することでLambdaを停止し ないための処理を最初に追加''' if 'Details'

    not in event: print('keys does not exist') return else: result = phoneCheck(event) return { 'data' : result }
  16. 10分おきに実行するCloudWatchRule ただし何も処理しない

  17. まとめ

  18. 検証から本番移行まで 短期間でできた \AWSすごい!/

  19. SPOFでレガシーだった環境を サーバーレスな今風な環境に 移行できた \だいぶイケてるのでは/

  20. Amazon ConnectやLambda, SendGridへの理解が深まった \理解できるとぜんぶたのしい!/

  21. マネージドにまかせられるところは どんどんやってきましょう

  22. おしまい☘