MBC : Touch MBC 서비스 사례 분석

jjuyaa·2022년 9월 8일
0

CloudClub

목록 보기
2/8

1. Touch MBC 서비스란?

  • aws 를 활용해 새롭게 런칭한 서비스
  • 방송일에 실시간으로 모바일에서 시청
  • 실시간 채팅 서비스 지원
  • 방송과 접목한 이벤트 실시

2. 당면 과제

  • 라이브 스트리밍 시 웹/모바일 서비스가 가지고 있떤 지연시간의 단축 필요 : 기존 소스와 모바일 소스 영상 딜레이 시간 30초 -> 10초로 단축 필요
  • 영상 딜레이 시간 단축을 통한 실시간 채팅 서비스 구현
  • 균일하지 않은 트래픽 대비 탄력적이고 비용 효율적인 서비스 운영 필요 : 방송과 접목한 이벤트 운영 가능하도록

3. 해결 방법

3-1. Amazon VPC & ELB & EC2 사용

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html

Amazon VPC 란?

장점

  • 사용자가 정의한 가상 네트워크로 AWS 리소스 시작 가능
    -> 각각의 vpc 마다 네트워크를 설정할 수 있고, 각각이 독립된 네트워크로 기능 할 수 있다.
  • 사용자가 정의한 가상 네트워크를 통해 AWS의 확장 가능한 인프라 사용 가능
  • 자체 데이터 센터에서 운영하느 기존 네트워크와 유사하게 사용 가능

기능

  • vpc를 생성한 후 가용 영역 마다 서브넷을 나눠 aws 리소스를 배포한다.
  • vpc와 서브넷에 IPv4, IPv6 주소를 할당해 라우팅 테이블을 사용해 네트워크 트래픽이 전달되는 위치를 결정할 수 있다.

Amazon ELB(Elastic Load Balancing)

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/what-is-load-balancing.html

장점

  • 워크로드를 다수의 컴퓨팅 리소스로 분산해 애플리케이션의 가용성과 내결함성이 높아진다.
  • 애플리케이션에 대한 전체적인 흐름을 방해하지 않고 필요에 따라 로드 밸런서에서 컴퓨팅 리소스를 추가 및 제거할 수 있다.
  • 정상적인 대상에게만 요청을 보내도록 컴퓨팅 리소스의 상태를 모니터링 할 수 있다.
  • 컴퓨팅 리소스가 주요 작업에 집중할 수 있도록 암호화 및 복호화 작업을 로드 밸런서로 오프로드 가능

기능

  • 둘 이상의 가용 영역에서 EC2 인스턴스 , 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산한다.
  • 등록된 대상의 상태를 모니터링하며 상태가 양호한 대상으로만 트래픽을 라우팅 한다.
  • 수신 트래픽의 변화에 따라 로드 밸런서 용량을 자동으로 조정한다.

VPC & EC2 & ELB 통해 탄력적인 트래픽에 대응

VPC 구성을 통해 여러 가용 영역에 네트워크를 생성한다. ELB 로 여러 가용 영역에 생성된 리소스인 EC2에 트래픽을 적절하게 라우팅 할 수 있다. 또한 EC2 auto scaling 기능을 통해 탄력적인 트래픽에 대응해 인스턴스 수요를 조절하고, 로드밸런서에 등록되어 라우팅을 할 수 있다.
이를 통해 시스템의 가용성 및 확장성을 가질 수 있다.

3-2. CDN 과 ALB 사용해 실시간 채팅 지원

ALB(Application Load Balacner)란?

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/load-balancer-listeners.html

  • Application Load Balancer는 OSI 7계층 중 애플리케이션 계층에서 작동한다. 로드 밸런서는 요청을 받으면 우선 순위에 따라 리스너 규칙을 평가하여 적용할 규칙을 결정한 다음, 규칙 작업의 대상 그룹에서 대상을 선택한다.
  • 리스너 는 연결 요청을 확인하는 프로세스이다.
  • Application Load Balancer는 WebSockets에 대한 기본 지원을 제공한다.

CDN의 websocket 지원

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.websockets.html

  • Amazon CloudFront는 클라이언트와 서버 사이에 수명이 긴 양방향 연결이 필요할 때 유용한 TCP 기반 프로토콜인 WebSocket의 사용을 지원한다.
  • 모든 CloudFront 배포에는, 클라이언트와 서버 모두 프로토콜을 지원하는 한, 내장된 WebSocket 프로토콜이 지원된다.

CDN & ALB 를 통한 실시간 채팅 지원

https://aws.amazon.com/ko/blogs/korea/how-to-build-a-chat-application-with-amazon-elasticache-for-redis/

Cloudfront 설정 최적화를 통해 미디어 자원을 빠르게 제공할 수 있을 뿐 만 아니라, ALB 와 함께 websocket 기능을 제공해 실시간 채팅을 구현할 수 있었다.

3-3. S3 & RDS &EBS 사용

S3란?

  • Amazon Simple Storage Service는 인터넷용 스토리지 서비스이다.
  • 쉽게 말해서 클라우드상의 외장하드 -> 미디어 파일들을 저장할 수 있다.

RDS란?

  • AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스
  • RDS 데이터베이스를 원격으로 접근 및 제어할 수 있는 역할에 특화되어 있는 별도의 EC2 서버
  • S3는 파일을 저장하는 역할, RDS는 관계형 데이터 베이스를 관리할 수 있다.

EBS란?

  • EC2 인스턴스에 사용할 수 있는 블록 수준 스토리지 볼륨을 제공
  • Amazon EBS는 내구성이 있는 블록 수준 스토리지 볼륨을 제공하여 실행 중인 인스턴스에 연결하는 것이 가능.
  • EBS는 충분한 스토리지를 보유해 데이터베이스를 확장할 수 있는 여유를 확보하는 것이 중요하다.

S3 & RDS & EBS 사용해 데이터 베이스 관리

S3에 미디어의 원본을 안전하게 저장할 수 있다. RDS를 통해 데이터 베이스 관리 & 서비스를 할 수 있다. 그리고 EBS 로 충분한 스토리지를 확보해 데이터 베이스를 확장 & 관리 할 수 있다.

4. 정리

  • VPC, EC2, ELB 사용 -> 탄력적 트래픽에 대응 가능
  • S3, EBS, RDS 사용 -> 안정적 스토리지 및 데이터 베이스 관리와 서비스 제공
  • Cloudfront 사용 -> 빠른 컨텐츠 제공 & 웹 채팅 가능
  • ALB & cloudfront -> 실시간 채팅 기능 제공

0개의 댓글