brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 27. 2021

 12탄-지금 아이돌과 , 인터랙티브 서비스, AWS

<1> 왜 인터랙티브 서비스인가?

<2> 구축 방법

<3> IVS로  K-POP 플랫폼 구축한  Amazer

<4> 200만 명이 사용하는  모바일 영상 통화 서비스 Wave

<5> 정리

<6> 개인 정리

<7> 같이 볼만한 자료



<1> 왜 인터랙티브 서비스인가?


1

Z 세대의 등장

스마트폰을 처음부터 사용한 세대


2

코로나 19가 불러온 변화

재택으로 비디오 시청 증가


3

라이브 커머스 등장

인프루언서, 양방향 소통



단방향 -> 채팅, 투표 같은 적극적인 참여 가능



<2> 구축 방법


1

IVS 이용?

스트리밍 소프트웨어 ------->   Amazon Interactive Video Service  -> Play


Amazon Interactive Video Service (IVS)?

Managed Live Streaming Soultion

IVS를 통해 양방향 라이브 영상 서비스 구축



2

Chime SDK 사용?

Custom 측 애플리케이션 --> Chime Media Service & SDK -----> 회사차원의 애플리케이션


Chime Media Service & SDK?

Managed  WebRTC Service

SDK를 통해 손쉽게 애플리케이션에 통합하여, WebRTC  기반 비디오 기능 구축



<3> IVS로  K-POP 플랫폼 구축한  Amazer



1

amazer 회사

K-POP 플랫폼

라이브


2

본인 아바타로 투표, OX 게임 등 진행함.

영어자막

게임을 라이브로 즐기는 서비스

IVS로 개발함.


3

구성?

비디오 인코더 -------RTMPS -------  IVS ----------- amazer live

자막 전송 툴 --------- REST ---------- IVS

라이브 관리 툴 -----  REST ----------IVS  ---------- HLS---amazer live


4

IVS 고려한 이유?

비용 - 접속 인원이 달라짐 , 클라우드 가능

송출지역 - 전 세계 품질이 다르면 문제 , IVS를 통해 해결?

인터랙션 타이밍 - 싱크 이슈 , 영상과 자막  문제 , 영상과 게임 타이밍  


5

Amazer 서비스 with IVS?

다국어 실시간 자막 시스템

아티스트-유저 실시간 게임

Unity 엔진을 연동!


6

아티스트들과 협업하여 서비스 중이다!





<4> 200만 명이 사용하는  모바일 영상 통화 서비스 Wave


1

Wave 서비스?

재미있게 놀 수 있는 모바일 영상 통화 서비스.

개발 인원 : 클라이언트 2명, 서버 2명.  총 4명 개발


2

시간/ 비용 부족?

시간 - 개발해야 양에 비해 부족한 시간

비용-  투자금을 최대한 아껴서 운영해야 함

어떻게 적은 시간과 비용으로 모바일 영상 통화 서비스를 만들었나?

클라이언트 측면?  서버 측면?


3

클라이언트?

안드로이드 , 아이폰 둘 다 오픈


클라이언트 전략?

안드로이드와  아이폰 둘 다 지원하는 리젠트 네이티브를 채택!


4

서버?

WebRTC 서버 -  다자간 영상통화

 API 서버 -  영상, 제외한 모든 도메인 로직 제공

Game 서버  - 영상 통화 중 게임


서버 전략?

비즈니스 로직을 모듈화 마이크로 서비스 형태로 AWS에 배포

API 서버 Serverless (Lambda , EKS Fargate)

WebRTC/Game서버는 Custom LB, Server-matching로직 및 Sopt / RI 적용

Database는 RDS , Elasticache


5

아키텍처?

클라이언트 (안드로이드, 아이폰)

circle CI

도커 허브


4

배포 방식이 달라짐?

API 서버  - HTTPS 사용

게임 서버 -  CI/CD 사용

WEBRTC는 RTP/RTCP 사용


5

서버 애플리케이션에   State Full , State less에 따라  배포 전략이 달라짐?


웹 RTC, Game 서버 -   퍼시턴스 캐시를 필수로 함. 런타임 중 교체가 쉽게 허용이 안 되는 서비스 - State Full  하다


API 서버 - 노트 하나가 장애 나더라도  처리 가능 , State less  


배포?

Game 서버 - Elastic Beanstalk

API Server - EKS , Lambda

WebRTC - EC2


몽고 디비 , Elastic Cache , RDS


log?

Apache Airflow  전처리 후 - > 타블로 전달 - > 비즈니스 인사이트  사용


6

WebRTC 구축한 이유?

RTMP - 아프리카 TV 등 사용

WAVE - 최대 8명이 동시에 처리해야 함. 저 지연이 필수,  개발 관점에 안드로이드 SDK 제공, 오픈소스 WebRTC 많이 있었다.


7

최적화?


API 서버  최적화?

모든 서비스를 서버리스로 진행

초기 람다에 업로드, APIGW로 접근하도록 함.

현재는 EKS  Fargate 사용 중

컴퓨팅 자원을 스스로 관리하지 않음.

실행시간만 비용 처리.


게임 서버 최적화?

CI/ CD로 사용

ElasticBeanstalk 사용  - 휴먼 에러 최소화,  인프라 관리업무를 자동화

개발만 집중

Spot, RI  사용

0~90% 절감


WebRTC?

초기는 PaSS도 가능하다.

사용량이 증가하면  분단위로 과금하여 개발?

다자간 영상 처리는 네트워크 트래픽 비용이 나간다.

분산하는 로직 필요 , 로드 밸런서 , 오토 스케일링 사용


데이터 베이스?

캐슁을 사용해  개선. 낮은 DB도 처리.

레디스, memcached 사용


8

자동화로 인프라 관리를 최소화.

서버는 죽을 수 있다는 설계 하도록 한다.

트러스티드 어드바이저  +  Well archtech review활용 (무료)!!!



<5> 정리


AWS Managed 서비스 활용해 개발 가속화

서비스 성장 속도에 맞추어 확장성 있는 인프라 구축

스타트업을 위한 AWS Activate Program 활용



<6> 개인 정리


라이브 커머스가 대세이긴 한가 보다.  양방향 소통, 매출도 잘 나온다.

AWS LVS로 구축한 사례 확인. LVS는 AWS가 대부분을 해준다.

Chime SDK 사용도 한다. 공부하자~

게임을 라이브로 즐기는 서비스. 오 특이하다!!

안드로이드와 아이폰 모두 지원하는 리액트 네이티브 사용.  플로터도 있고. 공부하자.

좀 더 공부해야 할 부분이 생겼다~ 아래~

API 서버 Serverless (Lambda , EKS Fargate)

WebRTC/Game서버는 Custom LB, Server-matching로직 및 Sopt / RI 적용

circle CI

도커 허브

Game 서버 - Elastic Beanstalk

ElasticBeanstalk 사용  - 휴먼 에러 최소화,  인프라 관리업무를 자동화

레디스, memcached 사용



<7> 같이 볼만한 자료


https://brunch.co.kr/@topasvga/1617


https://brunch.co.kr/@topasvga/1618


https://brunch.co.kr/@topasvga/1619


https://brunch.co.kr/@topasvga/1620/


https://brunch.co.kr/@topasvga/1621



감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari