Notice
Recent Posts
Recent Comments
Link
투케이2K
114. (Aws/Amazon) [Aws Kinesis Video Streams] Iot Core 프로비저닝 사물 인증서를 통해 디바이스 WebRTC 비디오 스트리밍 업로드 방법 본문
Aws (Amazon)
114. (Aws/Amazon) [Aws Kinesis Video Streams] Iot Core 프로비저닝 사물 인증서를 통해 디바이스 WebRTC 비디오 스트리밍 업로드 방법
투케이2K 2025. 9. 17. 22:14728x90
[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services

[설명 정리]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / Aws Kinesis Video Streams / Iot Core / WebRTC
- 사전) HLS 개념 설명 :
>> HTTP 라이브 스트리밍으로 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜입니다
>> HLS 는 Apple 장치에서 지원하는 유일한 형식입니다
>> 미디어는 h.264 또는 h.265 인코딩된 비디오를 포함해야 하며 AAC 인코딩된 오디오는 선택 사항입니다
>> 미디어 타입 유효한 값의 예로는 "video/h264" 및 "video/h264,audio/aac" 가 있습니다
- 사전) WebRTC 설명 :
>> WebRTC 란 웹, 애플리케이션, 디바이스 간 중간자 없이 오디오나 영상 미디어를 포착하고 실시간 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다
>> WebRTC 는 간단한 API 를 통해 웹 브라우저, 모바일 애플리케이션 및 커넥티드 디바이스 간에 실시간 통신을 활성화할 수 있습니다
>> WebRTC 주요 용어 :
- SDP (Session Description Protocol) : 오디오/비디오 코덱, 해상도, 포트 등 스트리밍 정보를 담은 텍스트 포맷
- Offer / Answer : 통신 연결을 협상하기 위한 SDP 메시지 (초기 연결 설정)
- ICE (Interactive Connectivity Establishment) : NAT/P2P 환경에서도 연결 가능한 경로(IP, 포트 등)를 찾기 위한 기술
- Candidate : 가능한 연결 경로 (IP + Port 조합)
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------
1. Aws IoT Core 에서 프로비저닝 수행 및 인증서 발급 & 정책 연결
>> KVS WebRTC SDK (C Producer SDK) 는 사물 인증서 직접 사용 가능합니다
>> 프로세스 정리 :
- AWS IoT Core 프로비저닝 사물(Thing) 생성
- 인증서 발급 (X.509 기반) 아래 파일들을 디바이스에 저장 :
: device-certificate.pem.crt ------> 사물 인증서에서 내려온 crt
: private.pem.key ------> 사물 인증서에서 내려온 key
: AmazonRootCA1.pem (AWS 루트 CA)
- 인증서에 정책 (Policy) Attach
: 사물 인증서에는 WebRTC 관련 권한이 반드시 필요합니다.
: 해당 정책을 인증서에 Attach 하면 디바이스가 WebRTC 마스터로 스트리밍할 수있습니다.
: 중요 권한 : IoT Core 연결 권한
: 중요 권한 : KVS WebRTC 채널에서 마스터로 연결 및 시그널링 수행 권한
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect",
"iot:Publish",
"iot:Subscribe",
"iot:Receive"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kinesisvideo:ConnectAsMaster",
"kinesisvideo:GetSignalingChannelEndpoint",
"kinesisvideo:GetIceServerConfig",
"kinesisvideo:CreateSignalingChannel",
"kinesisvideo:DeleteSignalingChannel",
"kinesisvideo:DescribeSignalingChannel",
"kinesisvideo:SendAlexaOfferToMaster"
],
"Resource": "arn:aws:kinesisvideo:ap-northeast-2:123456789012:channel/MyWebRTCChannel/*"
}
]
}
2. KVS 채널 생성 수행
>> AWS Kinesis Video Streams > 시그널링 채널(Signaling Channel) 생성
>> 정상적으로 생성 된 경우 신호 채널 ARN 정보 확인
3. 마스터 디바이스 (WebRTC Master) 스트리밍 업로드 동작 수행
>> 채널 정보 가져오기 : DescribeSignalingChannel 호출 → 채널 ARN 확인
>> 엔드포인트 획득 : GetSignalingChannelEndpoint 호출 → WSS (시그널링 서버용) , HTTPS (REST API용) 엔드포인트 반환
>> ICE 서버 설정 가져오기 : GetIceServerConfig 호출 → STUN/TURN 서버 목록 획득 (P2P 연결 시 방화벽/NAT 우회 목적)
>> 마스터로 연결 : ConnectAsMaster 호출 → 시그널링 서버에 WebSocket 연결 (이제 뷰어(Viewer)가 붙으면 SDP Offer/Answer 교환이 시작됨)
>> SDP 교환 : 뷰어가 Offer SDP를 전송 > 마스터는 이를 받아 PeerConnection 생성 후 Answer SDP 응답
>> 영상 업로드 : PeerConnection이 완료되면 미디어 스트림(영상/음성) 전송 시작
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행]
https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist
[Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리]
https://blog.naver.com/kkh0977/223858189791
[Aws KVS WebRTC 채널 생성 및 삭제에 관한 요금 정책 정리]
https://blog.naver.com/kkh0977/223995447546
[AWS] [Lambda] 런타임 Python 3.13 - boto3 모듈 사용해 특정 사물 인증서에 부여 된 policy 정책 JSON 정보 확인
https://blog.naver.com/kkh0977/223984301815?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
728x90
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments
