Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Amazon Connect

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

デモ

Slide 12

Slide 12 text

移行後の構成

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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 }

Slide 16

Slide 16 text

10分おきに実行するCloudWatchRule ただし何も処理しない

Slide 17

Slide 17 text

まとめ

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

おしまい☘