BLOG

[2021 AWS SUMMIT Session Review] AWS 솔루션즈 아키텍트팀이 직접 만들어본 ‘새로운 웨비나 플랫폼’ 개발 고군분투기
작성일: 2021-08-23

블로그 콘텐츠의 내용 및 의견은 AWS SUMMIT 2021의 세션을 리뷰한 내용입니다. 

 

버벅거리고 끊기고, 때로는 세션이 많아 고르기도 어려운 웨비나를 보느라 힘들었던 경험 다들 없으신가요? AWS의 SA(Solutions Architect)들은 바로 이 불만에 집중했습니다. 그 결과 100% AWS에서 제공되는 서비스로 솔루션을 개발할 수 있었습니다. 가장 핵심적인 서비스로는 동영상을 안정적으로 송출하기 위한 Amazon IVS(Interactive Video Service)를 사용하고, 서버리스 기반으로 만든 Lambda, Kinesis, Fargate, QuickSight, AI/ML을 통해 개발과 아키텍트에 집중할 수 있도록 구성했다고 합니다.

 

 

무엇이 다른가요?

가장 큰 차이점은 동시 접속자 수에 포커스를 맞췄다는 것인데요. 100만 명 이상의 동시 접속을 허용할 수 있는 ‘twitch’라는 플랫폼의 기술을 활용하여 동시접속이 많아도 끊김이 없는 웨비나 플랫폼 데모를 만들었습니다. 또한, Amazon IVS 서비스는 테마, 스킨 등을 커스터마이징할 수 있으며 화면비율을 유연하게 조절할 수 있고, 팝업창을 통한 다양한 기능으로 발표자와 시청자간의 실시간 소통 또한 가능하다고 합니다. 이밖에도 ‘Lobby’라는 새로운 기능을 통해 웨비나 추천 및 이벤트 정보를 제공함으로써 시청을 독려하는 기능도 제공하고 있다고 합니다.

 

 

Webinar Platform Front-End

 

AWS SA팀이 Web Application을 구성할 때, Front-End 개발뿐만 아니라 인프라, Back-End 그리고 웹 서비스에 필요한 부가적인 기능들을 모두 고려해야 했기 때문에 매우 복잡한 작업이 될 뻔 했지만, AWS 서비스를 기반으로 하여 손쉽게 Front-end를 구축할 수 있었다고 합니다. 대표적으로는 ‘Amplify’ 서비스를 활용하여 모바일 Front-end 개발을 지원하기 위한 프레임 워크를 사용하였고, Front-end Web Hosting에 필요한 S3 Static Web Hosting 기능을 이용하여 Amplify에서 구성을 할 수 있었다고 합니다. 또한, 회원가입, 로그인 및 로그아웃은 ‘Cognito’를 통해 처리했으며 그 외에 필요한 Back-End 기능들은 API Gateway와 Lambda를 활용하여 구성했습니다.

 

  • Amazon Cognito
    ° Authorization & Authentication
  • Amazon S3
    ° Static Web Hosting
  • AWS Amplify
    ° Frond-End
  • API Gateway, AWS Lambda
    ° Back-End

 

 

핵심 기능인 세션 발표를 위한 비디오 오디오 스트리밍을 위해서 웹 표준 스트리밍 프로토콜인 WebRTC 기반으로 구성을 했고, Kinesis Video Streams WebRTC를 사용하여 처리했습니다. 또한, 대규모 브로드캐스팅을 위한 미디어시스템은 Amazon IVS를 활용했으며 WebRTC를 RTMPS로 인코딩하기 위해 AWS Fargate를 사용하여 세션별 인코딩을 처리 했다고 합니다.

 

 

Amazon IVS는 AWS에서 제공하는 라이브 스트리밍 솔루션이며 글로벌 스트리밍 플랫폼인 twitch를 구동하는 라이브 스트리밍 기술을 기반으로 제공하는 서비스입니다. 채널 및 WorkFlow를 구성할 수 있으며, 라이브 스트리밍을 기반으로 하는 서비스를 구성하고자 할 때 Amazon IVS 를 이용하면 좀 더 효과적으로 빠르게 구성할 수 있다고 합니다.

 

 

Webinar Platform Back-End

 

Back-End 개발을 할 때에는 변경에 빠르게 대응하기 쉽도록 개발 테스트가 편리해야 하고, 서버 배포 또한 용이하도록 구성해야 했습니다. 이외에도 운영적인 측면에서는 고가용성, 성능확장성 등이 잘 지원되는 구조를 구현해야 하는 과제가 있었습니다. 이를 위해  AWS SA팀은 기본적으로 서버리스 아키텍쳐를 도입했으며, 고객이 보내는 요청을 받는 Amazon API Gateway와 Back-End 로직을 처리하는 AWS Lambda, 그리고 비동기처리가 필요한 경우를 위해서 Amazon SQS, 데이터를 처리하는 NoSQL 서비스인 AWS DynamoDB를 적극 활용 했다고 합니다. 전체적으로 살펴보면 모든 인프라에 완전 관리형 서비스들을 도입함으로써 서버 관리에 대한 부담을 없애고 확실히 개발과 아키텍트에 집중할 수 있는 구조입니다.

 

 

Webinar Platform Analytics

 

데이터 분석에서는 Lambda 아키텍처로 알려진 실시간 분석과 배치 분석으로 구성이 되어 있습니다. 진행중인 웨비나 상황을 실시간으로 확인할 수 있도록 예열타임 대시보드와 웨비나 종료 후 전체 통계와 질의응답의 데이터 분석을 위한 아키텍처, 그리고 2개의 파이프라인으로 구성되어 있다고 합니다.

세부적으로 함께 살펴보실까요?

 

  • Real-time Dashboard– Webinar Monitoring

참석자로부터 현재 사용중인 접속 관련 정보와 함께 접속 IP, 시간 등을 주기적으로 수집해서 최종적으로 Kibana 대시보드로 보여줄 실시간 분석에 사용하기 위한 아키텍처입니다. 굉장히 간결한 인프라로 구성이 되어 있습니다.

  • Real-time Dashboard– Question Analysis

웨비나 Track 계열 참석자가 몇 명인지와 같은 기본적인 정보뿐만 아니라,
웨비나에 참석하는 사용자의 실시간 반응을 보기 위해 참석자가 질문을 남기면 DynamoDB에 질문이 저장되고, 이후 텍스트 안에 있는 인사이트와의 관계를 찾아내는 자연어 처리 서비스인 Amazon Comprehend를 사용하여 실시간 분석을 하게 된다고 합니다. 이를 활용하면 운영 관리에 대한 부담도 확실히 줄어들 것으로 보입니다.

 

  • Analytics Architecture – Batch Analysis

저장된 통계파일은 Data Catalog 생성이 먼저 필요하기 때문에 AWS Glue  사용하여 meta data를 확보하고 Athena는 그 정보를 사용해서 SQL Query를 질의합니다. 이후 QuickSight를 활용하여 Query 결과를 로딩하면 그 이후로는 자유롭게 원하는 시각화 기능을 사용해서 대시보드를 만들 수 있습니다.

 

 

마무리하며

 

완전관리형 서비스의 장점을 활용하여 고객사와 개발자들은 개발에 집중하는 프로세스를 확보할 수 있으며, 성능이 검증된 미디어 재생 플랫폼인 IVS를 통해 빠르고 쉽게 서비스를 구축 할 수 있다는 점이 큰 메리트라고 생각합니다. 최근 점점 모바일 앱에서 실시간 라이브 기능을 넣는 경우가 늘어나고 있습니다. 이처럼 현 시대의 트렌드와 사회적 현상에 맞춰 빠르게 대응하는 AWS의 전략은 역시 AWS의 ‘고객 지향성’에서 나온 것이 아닐까요?

 

발표 자료 URL: https://www.slideshare.net/awskorea/struggling-story-to-develop-new-webinar-platform-created-by-aws-solutions-architect-team

*해당 블로그는 메가존클라우드 임직원이 AWS SUMMIT 2021 “현대백화점 리테일테크랩과 AWS Prototyping 팀 개발자가 들려주는 인공 지능 무인 스토어 개발 여정 ” 세션을 보고 작성한 글로 발표 자료 및 자세한 내용은 위의 URL에서 확인하실 수 있습니다.