투케이2K

108. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS WebRTC 채널 생성 및 삭제에 관한 요금 정책 정리 본문

Aws (Amazon)

108. (Aws/Amazon) [Aws Kinesis Video Streams] Aws KVS WebRTC 채널 생성 및 삭제에 관한 요금 정책 정리

투케이2K 2025. 9. 4. 19:17
728x90

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Aws Kinesis Video Streams / WebRTC


- 사전) AWS KVS WebRTC 설명 : 

  >> WebRTC 란 웹, 애플리케이션, 디바이스 간 중간자 없이 오디오나 영상 미디어를 포착하고 실시간 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다

  >> WebRTC 는 간단한 API 를 통해 웹 브라우저, 모바일 애플리케이션 및 커넥티드 디바이스 간에 실시간 통신을 활성화할 수 있습니다

  >> WebRTC 주요 용어 : 

    - SDP (Session Description Protocol) : 오디오/비디오 코덱, 해상도, 포트 등 스트리밍 정보를 담은 텍스트 포맷
    - Offer / Answer	: 통신 연결을 협상하기 위한 SDP 메시지 (초기 연결 설정)
    - ICE (Interactive Connectivity Establishment) : NAT/P2P 환경에서도 연결 가능한 경로(IP, 포트 등)를 찾기 위한 기술
    - Candidate : 가능한 연결 경로 (IP + Port 조합)

  >> WebRTC [ICE] 연결 형태 : 

    - Relayed Address : TURN 서버가 패킷 릴레이를 위해 할당하는 주소
    - Server Reflexive Address : NAT 가 매핑한 클라이언트의 공인망 (Public IP, Port)
    - Local Address : 클라이언트의 사설주소 (Private IP, Port)

  >> WebRTC STUN 및 TURN 서버 설명 : 

    - (같은 와이파이 망) STUN 서버는 HOST 를 거쳐 >> Server Reflexive Address 만을 응답하지만,
      (릴레이서버 사용) TURN 서버는 Relayed Address와 Server Reflexive Address 를 모두 응답한다
    - STUN, TURN 서버를 이용해 SDP Answer IP주소 를 취득 >> RTCPeerConnection Remote 연결 수행

  >> WebRTC SDP 오퍼 생성 (뷰어) 및 응답 (마스터) 스트리밍 플로우 : 

    [Viewer → Signaling Server] -- SDP Offer --> [Master] : 뷰어는 마스터로 스트리밍 오퍼 신호 보낸다
    [Master] -- SDP Answer --> [Viewer] : 마스터는 특정 뷰어의 오퍼 신호 확인 후 응답을 보낸다

    [Viewer] -- ICE Candidate --> [Master] : 스트리밍을 할 수 있는 경로 확인
    [Master] -- ICE Candidate --> [Viewer] : 스트리밍을 할 수 있는 경로 확인

    P2P 연결 성립 → 스트리밍 시작

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. WebRTC 관련 요금 항목 : 

  >> 활성 신호 채널 (Active Signaling Channels) : 

    - 요금 : $0.03 / 채널 / 월

    - 한 달 동안 한 번이라도 연결된 채널은 "활성" 으로 간주되어 요금이 부과됩니다.

    - 신호 채널이 "활성화" 되었다고 간주되는 조건 : 

       : 뷰어(Viewer) 또는 마스터(Master) 중 하나 이상이 signaling channel에 연결되었을 때
       : 연결은 WebRTC signaling 메시지 (예: offer, answer, ICE candidate 등)를 통해 이루어짐


  >> 신호 메시지 (Signaling Messages) : 

    - 요금 : $2.25 / 백만 메시지

    - WebRTC 연결을 위한 offer/answer/ICE candidate 등 메시지들이 포함됩니다.


  >> TURN 스트리밍 시간 (TURN Streaming Minutes) : 

    - 요금 : $0.12 / 1,000분

    - P2P 연결이 불가능할 때 중계 서버(TURN)를 통해 전달되는 미디어 스트리밍 시간입니다.


2. 신호 채널 생성에 관한 요금 부과 기준 요약 : 

  >> 신호 채널을 생성만 하고, 한 번도 연결되지 않았다면 요금이 부과되지 않습니다.

  >> 한 번이라도 연결되면 "활성 채널" 로 간주되어 월 $0.03 의 요금이 부과됩니다.

  >> 활성 채널은 삭제하지 않으면 다음 달에도 계속 요금이 부과됩니다.

  >> 즉, 채널을 생성한 후 사용하지 않더라도 삭제하지 않으면 요금이 계속 발생할 수 있습니다.

    - 요금은 특정 30일자 기준이 아닌 달이 바뀌는 매월 1일에 요금이 부과됩니다.

    - 전달 15일에 채널을 생성하고 사용하더라도 달이 바뀌어 1일이 되면 30일 기간이 되지 않더라도 요금이 부과됩니다
  
  >> 요금 부과 기준 정리 : 
    ------------------------------------------------------------
     상태                 |     요금 부과 여부    |    설명
    ------------------------------------------------------------
    생성만 하고 사용 안 함 |   ❌ 부과되지 않음    | 채널이 한 번도 연결되지 않으면 요금 없음
    ------------------------------------------------------------
    한 번이라도 연결됨     |   ✅ 부과됨          | "활성 채널"로 간주되어 월 $0.03 부과
    ------------------------------------------------------------
    삭제됨                |   ❌ 부과되지 않음    | 삭제된 채널은 요금 없음
    ------------------------------------------------------------


3. 채널 생성 및 요금 부과 시나리오 : 
  -------------------------------------------------------------------------
    반복 횟수	      |     연결 여부    |    삭제 여부    |   요금 발생 여부
  -------------------------------------------------------------------------
       5회         |    모두 연결됨    |   모두 삭제됨   |  $0.15 (5 × $0.03)
  -------------------------------------------------------------------------
       5회         |     연결 안 됨    |   모두 삭제됨   |  $0.00
  -------------------------------------------------------------------------
       5회         |   일부만 연결됨   |   모두 삭제됨   | 연결된 채널 수 × $0.03
  -------------------------------------------------------------------------


4. WebRTC 비용을 줄이기 위한 방법 : 

  >> 마스터가 뷰어가 없을 때는 연결을 끊고, 필요할 때만 연결하도록 구성

  >> 마스터가 뷰어 연결 여부를 감지해서 자동으로 연결/해제하는 로직 구현

  >> 테스트 시에는 채널을 연결하지 않고 생성만 하거나, 하나의 채널을 재사용하는 방식으로 테스트를 구성

  >> 장기간 채널을 사용하지 않는 것은 백엔드에서 배치를 돌리며 채널을 삭제하는 로직 구현

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[AWS 공식 요금 페이지]

https://aws.amazon.com/ko/kinesis/video-streams/pricing/


[AWS Kinesis 비디오 스트림 WebRTC 할당량 질의]

https://repost.aws/questions/QU3WL20CA7RTyhzcuiag3JKw/aws-kinesis-video-streams-webrtc-quotas


[AWS WebRTC 서비스 할당량 설명 문서]

https://docs.aws.amazon.com/kinesisvideostreams-webrtc-dg/latest/devguide/kvswebrtc-limits.html#limits-signaling-service


[자바스크립트 AWS Kvs WebRTC 디바이스 역할 (master) sdp answer 응답 및 실시간 비디오 스트림 전송 수행]

https://blog.naver.com/kkh0977/223863377974


[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행]

https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist


[Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리]

https://blog.naver.com/kkh0977/223858189791

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments