SlideShare a Scribd company logo
1 of 37
Download to read offline
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

What's hot

What's hot (20)

20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
20200818 AWS Black Belt Online Seminar AWS Shield Advanced20200818 AWS Black Belt Online Seminar AWS Shield Advanced
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
 
Building an E-Commerce Business on AWS
Building an E-Commerce Business on AWSBuilding an E-Commerce Business on AWS
Building an E-Commerce Business on AWS
 
20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ 20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ
 
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
20190319 AWS Black Belt Online Seminar Amazon FSx for Windows Server
 
AWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management ConsoleAWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management Console
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
 
Serverless Architecture - A Gentle Overview
Serverless Architecture - A Gentle OverviewServerless Architecture - A Gentle Overview
Serverless Architecture - A Gentle Overview
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
 
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
20191105 AWS Black Belt Online Seminar Amazon Route 53 Hosted Zone
 
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015
 
한글과컴퓨터의 클라우드 마이그레이션, 거버넌스 그리고 모더나이제이션-박인재, AWS ISV SA Manager / 박상형, 한글과컴퓨터 I...
한글과컴퓨터의 클라우드 마이그레이션, 거버넌스 그리고 모더나이제이션-박인재, AWS ISV SA Manager / 박상형, 한글과컴퓨터 I...한글과컴퓨터의 클라우드 마이그레이션, 거버넌스 그리고 모더나이제이션-박인재, AWS ISV SA Manager / 박상형, 한글과컴퓨터 I...
한글과컴퓨터의 클라우드 마이그레이션, 거버넌스 그리고 모더나이제이션-박인재, AWS ISV SA Manager / 박상형, 한글과컴퓨터 I...
 
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
천만 사용자를 위한 AWS 아키텍처 보안 모범 사례 (윤석찬, 테크에반젤리스트)
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
 

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

[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
Sang Don Kim
 
전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017
전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017
전자 상거래 기업을 위한 클라우드 성공 전략 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...
기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...
기업 IT 담당자라면 꼭 알아야 할 Enterprise AWS 사례와 특징::김종호 상무, 조영준 상무, BSG::AWS Summit Se...
Amazon Web Services Korea
 

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

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

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