Amazon Connect를 이용한
Outbound Call 서비스 개발하기
현창훈
발표자 소개
• 현창훈
• 조직, 생산성, 자동화 등에 관심이 많습니다.
• 경력
• HBSmith 개발자
• 모두 컴퍼니 DevOps
• 지피지시 개발팀장
• 씨퓨처 개발자
• 발표 순서
• Outbound Call 서비스가 필요한 이유
• PagerDuty 내재화
• Architecture 설계
• Amazon Connect
• 유의사항
• 개발 후기
• Q&A
Outbound Call 서비스가
필요한 이유
Outbound Call 서비스가 필요한 이유
• HBSmith는 QA를 자동화 하고 테스트가 실패하면 연락을 드리는 서비스 입니다.
• hbsmith.io
• QA 자동화
• End To End Test
Outbound Call 서비스가 필요한 이유
• 연락 방법
QA
실패
pagerduty alert.
you have one triggered
#$%^$…
안녕하세요.
n번 테스트가 실패하는데
확인 부탁드려요.
HBSmith User
[AS-IS]
Pagerduty call을 받으면 개발자가 수동으로 연락
Outbound Call 서비스가 필요한 이유
• 연락 방법
[TO-BE]
문제가 생기면 on-call 담당자들에게 전화가 가도록 자동화
QA
실패
안녕하세요.
n번 테스트가 실패 했습니다.
확인 하셨으면 n번, …
User
내재화
서비스
내재화
pagerduty 내재화
내재화 하게 된 이유
• 비싸다.
• 39$ - (platform business, per user / month)
• Outbound Call 기능만 필요하다.
• 한국어를 지원하지 않는다.
• 새벽에 알람이 왔는데 영어로 말하면 인지하기 힘듦..
pagerduty 내재화
요구사항
• On Call 담당자에게 outbound call을 걸어줘야 한다.
• TTS로 한국어를 읽어줘야 한다.
• On Call 담당자의 Action
• resolve
• escalate
• snooze
• 받을때까지 계속 걸어준다.
Architecture 설계
내재화를 위한 도구 선택
Architecture 설계
Amazon
Connect
VS
Architecture 설계 - 도구 선택
• 콜 센터를 구축할 수 있는 AWS의 managed service
• 장점
• managed service라서 개발과 관리가 편하다.
• polly와 쉽게 연동된다.
• 단점
• IaC를 지원하지 않는다.
• 지원 안되는 action, event가 많다.
• 전화 미수신, 중간에 끊는 경우 등
Architecture 설계 - 도구 선택
• 전화, SMS 등을 가능하게 해주는 서비스
• 장점
• IaC가 가능하다.
• 다양한 API와 event를 지원한다.
• 단점
• 구현해야 할 코드가 상대적으로 많아진다.
• 추가적인 인프라 관리가 필요하다.
Architecture 설계 - 도구 선택
• 최대한 단순하고 빠르게 개발 / 배포 하는게 중요하다.
• AWS에 대한 기술적 경험을 축적할 수 있는 좋은 기회
Amazon
Connect
선택 -
Architecture에 대한 고민
Architecture 설계
Architecture 설계
[기존]
• API 서버에서 pagerduty로 trigger할 message를 sqs에
전달
• sqs의 event trigger를 이용해서 lambda에서 pagerduty
호출
Architecture 설계
[1안]
• lambda에서 호출하는 서비스를 Pagerduty -> Connect
로 변경
• 변경을 최소화 하고 서비스간 독립성을 유지
Architecture 설계
[1안의 문제점]
• Outbound call을 단순히 걸고 끝나는게 아니라 실시간으
로 다양한 동작에 의해서 상태가 변경돼야 한다.
• 웹 또는 전화를 받고 resolve, snooze 등의 action
=> Queue로 pub/sub 해서 Message에만 의존적인 구조는
불가능
Architecture 설계
[2안]
• SQS 대신 상태 관리를 위해서 DynamoDB 또는 Aurora
Serverless를 사용
• DB에 event trigger 또는 polling을 이용해서 대기중인
alarm 호출
Architecture 설계
• DynamoDB
• Managed service
• Key - Value 기반으로 관리할 수 있는 심플한 쿼리에 적합
• 예측 가능한 수준의 WCU / RCU
• 프리티어로 커버 가능할 것으로 예상됨.
Architecture 설계
• Aurora serverless
• Managed service
• Connection의 scale out에 제약이 있지만 해당 워크로드
에는 해당되지 않을 것으로 판단
• 심플한 테이블 / 쿼리
• Polling 구조라서 급격한 scale out이 필요하지 않음.
Architecture 설계
• Aurora serverless
• 새로운 AWS 기술 경험 축적
사실 그냥 궁금하다..
써보고 싶다..
Architecture 설계
[결정된 안]
• 기존 서비스와 의존성이 생기지만 그래도 최대한 단순하게 해서 빨리
배포 하자고 해서... 🙂
Amazon Connect
Amazon Connect
• 콜 센터 구축 서비스
• inbound, outbound 통화 흐름을 정의할 수 있다.
• 상담원을 관리할 수 있다.
• cloudwatch logs를 통한 log 관리
• polly, lex 등과 쉬운 연동
• 통화 대기중인 queue, 통화 관련 metric 관리 가능
Amazon Connect
• 다양한 국가의 번호를 on-demand 로 관리
Amazon Connect
• Contact flow를 통한 통화 흐름 제어
• Polly를 통한 TTS, mp3 등 prompt 재생 가능
• 사용자에게 입력 받기 가능
• Lambda와 Integration 가능
• 드래그 앤 드롭으로 셋팅
Amazon Connect
Amazon Connect
cloudwatch logs
boto3 api
start_outbound_voice_contact
유의사항
유의사항
국제번호 표준 준수
• request
• response
{
"InstanceId": "089d382c-9a74-4af4-b1f7-xxxxxxxxxxx",
"ContactFlowId": “edc50c16-5795-xxxx-9378-xxxxxx",
"SourcePhoneNumber": “+16502260000",
"DestinationPhoneNumber": "+8201000000000",
}
{
"ResponseMetadata": {
"RequestId": "fc46b5d5-8e49-11e9-91fd-6773747eab60",
"HTTPStatusCode": 200,
…
}
}
+821043997881
Connect는 비동기적으로 동작하기 때문에 전화 요청을
정상적으로 보냈다면 성공 했다는 결과값을 리턴한다.
유의사항
• 한국 리전에는 Connect가 없다.
• Outbound call을 한국 번호로 걸기 위해서는 Amazon
Connect Instance를 생성하고 특정 instance에 support
ticket을 열어서 whitelist에 KR을 추가해야 한다.
• 전화를 안받으면 자동으로 한번 더 걸어준다.
• IaC가 되지 않는것이 운영에 부담이 될 수 있다.
개발 후기
• 더 저렴하게 운영 중 입니다.
• 기존
• pagerduty - 78$
• 현재
• connect, polly 등 - 0$,
• contact center 10.15$ (전화 회선 2개 점유 비용)
• Managed service를 사용해서 빠르게 개발 했습니다.
• 1 sprint(2 weeks) 개발 후 배포
개발 후기
• 내부 on call 담당자들에게 전화를 잘 걸어주고 있습니다.
• 비지니스 문제로 고객들에게 직접 outbound call을 보내고
있지 않습니다.
• 한국어 지원 때문에 outbound call 서비스만 따로 이용할 수
있는지 문의하는 고객들이 생기고 있습니다.
• IaC가 안되면 관리가 힘들어요.
• blog version
Q&A
감사합니다.

More Related Content

PPTX
Aws certified solutions architect
PDF
Function as a Service
PPTX
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
PDF
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
PPTX
Amazon EKS Deep Dive
PPTX
AWS 12월 웨비나 │클라우드 마이그레이션을 통한 성공사례
PDF
Working with MS Endpoint Manager
PDF
AWS Security Hub
Aws certified solutions architect
Function as a Service
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
Amazon EKS Deep Dive
AWS 12월 웨비나 │클라우드 마이그레이션을 통한 성공사례
Working with MS Endpoint Manager
AWS Security Hub

What's hot (20)

PDF
Introducing rubrik a new approach to data protection
PDF
Aws Elastic Block Storage
PDF
AWS 환경에서의 위협 탐지 및 사냥 - 신은수, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020
PDF
Limitations and Cost of Using Microsoft's Power Platform
PDF
PDF
AWS Systems manager 2019
PDF
Amazon EKS를 통한 빠르고 편리한 컨테이너 플랫폼 활용 – 이일구 AWS 솔루션즈 아키텍트:: AWS Cloud Week - Ind...
PDF
What is AWS | AWS Certified Solutions Architect | AWS Tutorial | AWS Training...
PDF
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
PDF
AWS IAM과 친해지기 – 조이정, AWS 솔루션즈 아키텍트:: AWS Builders Online Series
PDF
Getting Started on Amazon EKS
PDF
Aws seminar report
PDF
AWS를 활용한 리테일,이커머스 워크로드와 온라인 서비스 이관 사례::이동열, 임혁용:: AWS Summit Seoul 2018
PDF
Design Pattern for Federated Single Sign-On Access
PPTX
Azure Web App services
PPTX
AWS PPT.pptx
PDF
EKS Workshop
PPSX
Containers Docker Kind Kubernetes Istio
PDF
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
PDF
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Introducing rubrik a new approach to data protection
Aws Elastic Block Storage
AWS 환경에서의 위협 탐지 및 사냥 - 신은수, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020
Limitations and Cost of Using Microsoft's Power Platform
AWS Systems manager 2019
Amazon EKS를 통한 빠르고 편리한 컨테이너 플랫폼 활용 – 이일구 AWS 솔루션즈 아키텍트:: AWS Cloud Week - Ind...
What is AWS | AWS Certified Solutions Architect | AWS Tutorial | AWS Training...
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
AWS IAM과 친해지기 – 조이정, AWS 솔루션즈 아키텍트:: AWS Builders Online Series
Getting Started on Amazon EKS
Aws seminar report
AWS를 활용한 리테일,이커머스 워크로드와 온라인 서비스 이관 사례::이동열, 임혁용:: AWS Summit Seoul 2018
Design Pattern for Federated Single Sign-On Access
Azure Web App services
AWS PPT.pptx
EKS Workshop
Containers Docker Kind Kubernetes Istio
AWS DirectConnect 구성 가이드 (김용우) - 파트너 웨비나 시리즈
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Ad

Similar to Amazon Connect를 이용한 outbound call 서비스 개발하기 (20)

PDF
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
PDF
Stream Processing 과 Confluent Cloud 시작하기
PDF
Meetup tools for-cloud_native_apps_meetup20180510-vs
PDF
20170813 django api server unit test and remote debugging
PPT
Red Hat Ansible 적용 사례
PDF
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
PDF
designing, implementing and delivering microservices with event storming, spr...
PPTX
Micro Service Architecture의 이해
PDF
AWS 마켓플레이스 성공 런칭을 위한 핵심 기술 (이경수, AWS 솔루션즈아키텍트) :: AWS TechShift 2018
PDF
DevOps 시대의 새로운 Role - Full Cycle Developer
PDF
전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017
PDF
기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...
PDF
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
PPSX
무정지&무점검 서버 개발과 운영 사례
PDF
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
PDF
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
PDF
Event storming based msa training commerce example
PDF
Event storming based msa training commerce example v2
PPTX
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
PPTX
Aws serverless services
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
Stream Processing 과 Confluent Cloud 시작하기
Meetup tools for-cloud_native_apps_meetup20180510-vs
20170813 django api server unit test and remote debugging
Red Hat Ansible 적용 사례
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
designing, implementing and delivering microservices with event storming, spr...
Micro Service Architecture의 이해
AWS 마켓플레이스 성공 런칭을 위한 핵심 기술 (이경수, AWS 솔루션즈아키텍트) :: AWS TechShift 2018
DevOps 시대의 새로운 Role - Full Cycle Developer
전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017
기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
무정지&무점검 서버 개발과 운영 사례
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
Event storming based msa training commerce example
Event storming based msa training commerce example v2
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
Aws serverless services
Ad

Amazon Connect를 이용한 outbound call 서비스 개발하기

  • 1. Amazon Connect를 이용한 Outbound Call 서비스 개발하기 현창훈
  • 2. 발표자 소개 • 현창훈 • 조직, 생산성, 자동화 등에 관심이 많습니다. • 경력 • HBSmith 개발자 • 모두 컴퍼니 DevOps • 지피지시 개발팀장 • 씨퓨처 개발자
  • 3. • 발표 순서 • Outbound Call 서비스가 필요한 이유 • PagerDuty 내재화 • Architecture 설계 • Amazon Connect • 유의사항 • 개발 후기 • Q&A
  • 5. Outbound Call 서비스가 필요한 이유 • HBSmith는 QA를 자동화 하고 테스트가 실패하면 연락을 드리는 서비스 입니다. • hbsmith.io • QA 자동화 • End To End Test
  • 6. Outbound Call 서비스가 필요한 이유 • 연락 방법 QA 실패 pagerduty alert. you have one triggered #$%^$… 안녕하세요. n번 테스트가 실패하는데 확인 부탁드려요. HBSmith User [AS-IS] Pagerduty call을 받으면 개발자가 수동으로 연락
  • 7. Outbound Call 서비스가 필요한 이유 • 연락 방법 [TO-BE] 문제가 생기면 on-call 담당자들에게 전화가 가도록 자동화 QA 실패 안녕하세요. n번 테스트가 실패 했습니다. 확인 하셨으면 n번, … User 내재화 서비스
  • 9. pagerduty 내재화 내재화 하게 된 이유 • 비싸다. • 39$ - (platform business, per user / month) • Outbound Call 기능만 필요하다. • 한국어를 지원하지 않는다. • 새벽에 알람이 왔는데 영어로 말하면 인지하기 힘듦..
  • 10. pagerduty 내재화 요구사항 • On Call 담당자에게 outbound call을 걸어줘야 한다. • TTS로 한국어를 읽어줘야 한다. • On Call 담당자의 Action • resolve • escalate • snooze • 받을때까지 계속 걸어준다.
  • 12. 내재화를 위한 도구 선택 Architecture 설계 Amazon Connect VS
  • 13. Architecture 설계 - 도구 선택 • 콜 센터를 구축할 수 있는 AWS의 managed service • 장점 • managed service라서 개발과 관리가 편하다. • polly와 쉽게 연동된다. • 단점 • IaC를 지원하지 않는다. • 지원 안되는 action, event가 많다. • 전화 미수신, 중간에 끊는 경우 등
  • 14. Architecture 설계 - 도구 선택 • 전화, SMS 등을 가능하게 해주는 서비스 • 장점 • IaC가 가능하다. • 다양한 API와 event를 지원한다. • 단점 • 구현해야 할 코드가 상대적으로 많아진다. • 추가적인 인프라 관리가 필요하다.
  • 15. Architecture 설계 - 도구 선택 • 최대한 단순하고 빠르게 개발 / 배포 하는게 중요하다. • AWS에 대한 기술적 경험을 축적할 수 있는 좋은 기회 Amazon Connect 선택 -
  • 17. Architecture 설계 [기존] • API 서버에서 pagerduty로 trigger할 message를 sqs에 전달 • sqs의 event trigger를 이용해서 lambda에서 pagerduty 호출
  • 18. Architecture 설계 [1안] • lambda에서 호출하는 서비스를 Pagerduty -> Connect 로 변경 • 변경을 최소화 하고 서비스간 독립성을 유지
  • 19. Architecture 설계 [1안의 문제점] • Outbound call을 단순히 걸고 끝나는게 아니라 실시간으 로 다양한 동작에 의해서 상태가 변경돼야 한다. • 웹 또는 전화를 받고 resolve, snooze 등의 action => Queue로 pub/sub 해서 Message에만 의존적인 구조는 불가능
  • 20. Architecture 설계 [2안] • SQS 대신 상태 관리를 위해서 DynamoDB 또는 Aurora Serverless를 사용 • DB에 event trigger 또는 polling을 이용해서 대기중인 alarm 호출
  • 21. Architecture 설계 • DynamoDB • Managed service • Key - Value 기반으로 관리할 수 있는 심플한 쿼리에 적합 • 예측 가능한 수준의 WCU / RCU • 프리티어로 커버 가능할 것으로 예상됨.
  • 22. Architecture 설계 • Aurora serverless • Managed service • Connection의 scale out에 제약이 있지만 해당 워크로드 에는 해당되지 않을 것으로 판단 • 심플한 테이블 / 쿼리 • Polling 구조라서 급격한 scale out이 필요하지 않음.
  • 23. Architecture 설계 • Aurora serverless • 새로운 AWS 기술 경험 축적 사실 그냥 궁금하다.. 써보고 싶다..
  • 24. Architecture 설계 [결정된 안] • 기존 서비스와 의존성이 생기지만 그래도 최대한 단순하게 해서 빨리 배포 하자고 해서... 🙂
  • 26. Amazon Connect • 콜 센터 구축 서비스 • inbound, outbound 통화 흐름을 정의할 수 있다. • 상담원을 관리할 수 있다. • cloudwatch logs를 통한 log 관리 • polly, lex 등과 쉬운 연동 • 통화 대기중인 queue, 통화 관련 metric 관리 가능
  • 27. Amazon Connect • 다양한 국가의 번호를 on-demand 로 관리
  • 28. Amazon Connect • Contact flow를 통한 통화 흐름 제어 • Polly를 통한 TTS, mp3 등 prompt 재생 가능 • 사용자에게 입력 받기 가능 • Lambda와 Integration 가능 • 드래그 앤 드롭으로 셋팅
  • 30. Amazon Connect cloudwatch logs boto3 api start_outbound_voice_contact
  • 32. 유의사항 국제번호 표준 준수 • request • response { "InstanceId": "089d382c-9a74-4af4-b1f7-xxxxxxxxxxx", "ContactFlowId": “edc50c16-5795-xxxx-9378-xxxxxx", "SourcePhoneNumber": “+16502260000", "DestinationPhoneNumber": "+8201000000000", } { "ResponseMetadata": { "RequestId": "fc46b5d5-8e49-11e9-91fd-6773747eab60", "HTTPStatusCode": 200, … } } +821043997881 Connect는 비동기적으로 동작하기 때문에 전화 요청을 정상적으로 보냈다면 성공 했다는 결과값을 리턴한다.
  • 33. 유의사항 • 한국 리전에는 Connect가 없다. • Outbound call을 한국 번호로 걸기 위해서는 Amazon Connect Instance를 생성하고 특정 instance에 support ticket을 열어서 whitelist에 KR을 추가해야 한다. • 전화를 안받으면 자동으로 한번 더 걸어준다. • IaC가 되지 않는것이 운영에 부담이 될 수 있다.
  • 34. 개발 후기 • 더 저렴하게 운영 중 입니다. • 기존 • pagerduty - 78$ • 현재 • connect, polly 등 - 0$, • contact center 10.15$ (전화 회선 2개 점유 비용) • Managed service를 사용해서 빠르게 개발 했습니다. • 1 sprint(2 weeks) 개발 후 배포
  • 35. 개발 후기 • 내부 on call 담당자들에게 전화를 잘 걸어주고 있습니다. • 비지니스 문제로 고객들에게 직접 outbound call을 보내고 있지 않습니다. • 한국어 지원 때문에 outbound call 서비스만 따로 이용할 수 있는지 문의하는 고객들이 생기고 있습니다. • IaC가 안되면 관리가 힘들어요. • blog version
  • 36. Q&A