Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
AmazonConnectで作るサーバレス電話確認システム
inamuu
July 12, 2019
Technology
1
850
AmazonConnectで作るサーバレス電話確認システム
社内LTで発表した資料です。
inamuu
July 12, 2019
Tweet
Share
More Decks by inamuu
See All by inamuu
ランサーズのSendGrid活用事例
kzm0211
0
780
元ドラッグストア店員の転職LT
kzm0211
0
1.2k
さよならBIND
kzm0211
3
150
Other Decks in Technology
See All in Technology
モダンデータスタックとかの話(データエンジニアのお仕事とは)
foursue
0
500
Contrastive Self-Supervised Learning
yenlung
PRO
0
110
開発者のための GitHub Organization の安全な運用と 継続的なモニタリング
flatt_security
3
4k
runn is a package/tool for running operations following a scenario. / golang.tokyo #32
k1low
1
240
2022年最新版 GatsbyJS + TypeScript + microCMS でブログを作る。
hanetsuki
1
1k
YAMLを書くだけで構築できる分散ストレージ
sat
PRO
0
230
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
oracle4engineer
PRO
0
150
街じゅうを"駅前化"する電動マイクロモビリティのシェアサービス「LUUP」のIoTとSRE
0gm
1
1.1k
セマフォでタスクの同時実行数制限
hankehly
0
130
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.1k
Declarative Clients in Spring
olgamaciaszek
0
120
動的ルーティング・ゲートウェイ (DRG) 概要
ocise
0
130
Featured
See All Featured
The Brand Is Dead. Long Live the Brand.
mthomps
45
2.7k
What’s in a name? Adding method to the madness
productmarketing
11
1.5k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
125
8.5k
A designer walks into a library…
pauljervisheath
196
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
4
2k
Robots, Beer and Maslow
schacon
152
7.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Infographics Made Easy
chrislema
233
17k
The Language of Interfaces
destraynor
148
20k
Bash Introduction
62gerente
596
210k
What's new in Ruby 2.0
geeforr
336
30k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
Transcript
Amazon Connect で作る サーバーレス電話確認システム ランサーズSREチーム 稲村 2019.7.12(金) \#dev_tech_friday LT vol.1/
ランサーズSREチーム 稲村一真 https://inamuu.com @kzm0211
ランサーズの電話確認システムを 刷新した話をします!✋
電話確認システムとは クライアント様とランサー様それぞれの存在証明の 一つとして電話確認の実施を推奨 プロフィール画面で番号登録した電話から、 弊社指定の番号へ電話をかけていただくことで 電話確認が行われるシステム
移行前の構成 &$͕ 1ZUIPOίʔυαʔόʔʹ͔͠ͳ ͍͔͠Πϯελϯεߏ ཧ͞Εͯͳ͍
移行することになった背景 電話確認を行うサーバーが1台のSPOFだった インフラと一部アプリケーションソースが構成管理されていなかっ た 検証環境が無かった 構築時のドキュメントが古くなり、新規での構築が容易では 無かった
\同じ環境を構築するのたいへん/ LambdaとAmazon Connect連携できるのでは どうやらぜんぶサーバーレスで できるらしいので ぜんぶ作り直ししよう!!
Amazon Connect
AmazonConnectとは マネージドのコールセンターサービス Webベースで電話の受電、架電がおこなえる上 に、東京リージョンに対応 日本語で書いた漢字を含むテキストをそのまま読 み上げてくれる 問い合わせフローを作成できる専用のエディターが ある Lambda連携ができる!
問い合わせフローエディタ
デモ
移行後の構成
移行後の構成 Amazon Connectでフローを作成 Lambda(in VPC)でDBへメールアドレスの確認&更 新&メール送信を実施 Lambdaの返り値に、メールアドレスの確認結果から 判断したアナウンスの文字列を渡す Amazon Connectでは渡された文字列を動的にテキス
ト読み上げさせる メールの配信はSendGridのAPIを使って行う
ちょっと工夫した所 VPCに配置したLambdaは起動に時間がかかる 定期的に実行していれば停止せずに再利用されるが、 しばらくすると停止してしまう Lambdaが起動するまでの間、電話の確認処理で止 まってしまう ClowdWatch Ruleで10分おきにただLambdaを実 行するだけのCronを追加
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 }
10分おきに実行するCloudWatchRule ただし何も処理しない
まとめ
検証から本番移行まで 短期間でできた \AWSすごい!/
SPOFでレガシーだった環境を サーバーレスな今風な環境に 移行できた \だいぶイケてるのでは/
Amazon ConnectやLambda, SendGridへの理解が深まった \理解できるとぜんぶたのしい!/
マネージドにまかせられるところは どんどんやってきましょう
おしまい☘