Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AmazonConnectで作るサーバレス電話確認システム
Search
inamuu
July 12, 2019
Technology
1
1.1k
AmazonConnectで作るサーバレス電話確認システム
社内LTで発表した資料です。
inamuu
July 12, 2019
Tweet
Share
More Decks by inamuu
See All by inamuu
メインサービスのDBを1年でAurora1から段階的にAurora3へアップグレードした話
kzm0211
1
170
エンジニアの副業のすゝめ / engineer-sidejob-20200130
kzm0211
0
790
ランサーズのSendGrid活用事例
kzm0211
0
1.2k
元ドラッグストア店員の転職LT
kzm0211
0
1.7k
さよならBIND
kzm0211
3
220
Other Decks in Technology
See All in Technology
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
920
頼られるのが大好きな 皆さんへ - 支援相手との期待の合わせ方、突き放し方 -/For_people_who_like_to_be_relied_on
naitosatoshi
1
290
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
270
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
ここがすごいよ! AWS Systems Manager!
saichan11
0
1.8k
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
Classmethod Odyssey 登壇資料
yamahiro
0
390
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Navigating Team Friction
lara
181
13k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
BBQ
matthewcrist
82
9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
224
21k
GitHub's CSS Performance
jonrohan
1026
450k
Bash Introduction
62gerente
607
210k
Web Components: a chance to create the future
zenorocha
307
41k
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
Being A Developer After 40
akosma
72
580k
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への理解が深まった \理解できるとぜんぶたのしい!/
マネージドにまかせられるところは どんどんやってきましょう
おしまい☘