Amazon IVS 저지연 스트리밍 모니터링 - Amazon Interactive Video Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon IVS 저지연 스트리밍 모니터링

Amazon CloudWatch를 사용하여 Amazon Interactive Video Service(IVS) 리소스를 모니터링할 수 있습니다. CloudWatch는 Amazon IVS에서 원시 데이터를 수집하고 실시간에 가까운 읽기 가능한 지표로 처리합니다. 이러한 통계는 15개월간 보관되므로 웹 애플리케이션 또는 서비스의 과거 수행 방식을 파악할 수 있습니다. 특정 임계값을 설정하고 해당 임계값이 충족될 때 알림을 전송하거나 조치를 취할 수 있습니다. 자세한 내용은 CloudWatch 사용 설명서를 참조하세요.

지표의 타임스탬프는 지표 데이터가 누적되는 기간의 시작을 나타냅니다. 예를 들어, 01:02:00에서 분당 LiveDeliveredTime 지표 합계가 300초라고 가정합니다. 이는 01:02:00부터 01:02:59까지 1분 동안 시청자에게 5분 분량의 비디오가 제공되었음을 의미합니다.

고해상도로 지정된 지표의 경우 첫 번째 데이터 포인트가 스트림 시작 몇 초 후에 나타납니다. 지표 요청 시 기간을 5초로 지정하는 것이 좋습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 ​해결 방법 섹션을 참조하세요. 다른 지표의 경우 데이터는 참조하는 타임스탬프로부터 1분 이내에 생성됩니다.

고해상도 지표는 시간이 지나면 롤업됩니다. 지표가 오래되면서 해상도가 실질적으로 감소합니다. 일정은 다음과 같습니다.

  • 1초 지표는 3시간 동안 사용할 수 있습니다.

  • 60초 지표는 15일 동안 사용할 수 있습니다.

  • 5분 지표는 63일 동안 사용할 수 있습니다.

  • 1시간 지표는 455일(15개월) 동안 사용할 수 있습니다.

데이터 보존에 대한 최신 정보를 보려면 Amazon CloudWatch FAQ에서 '보존 기간'을 검색합니다.

사전 조건

스트림 세션 데이터 액세스

listStreamSessions 엔드포인트를 사용하면 채널에서 최대 60일 동안 보유하는 스트림 목록에 액세스할 수 있습니다. 이 목록에는 라이브 스트림 세션(비어 있는 endTime으로 표시됨)이 포함될 수 있습니다.

getStreamSession 엔드포인트를 통해 특정 스트림에 대한 세션 데이터를 가져올 수 있습니다. streamId 파라미터를 지정하지 않을 경우 엔드포인트가 최신 세션을 반환합니다. 또한 정기적으로 엔드포인트를 호출하여 스트림의 최신 이벤트(최대 최근 이벤트 500개)를 가져올 수 있습니다.

콘솔 지침

  1. Amazon IVS 콘솔을 엽니다.

    (또는 AWS Management Console을 통해서 Amazon IVS 콘솔에 액세스할 수 있습니다.)

  2. 탐색 창에서 채널을 선택합니다(탐색 창이 축소된 경우 먼저 햄버거 아이콘을 선택하여 엽니다).

  3. 채널을 선택하여 해당 세부 정보 페이지로 이동합니다.

  4. 스트림 세션 섹션이 표시될 때까지 페이지를 아래로 스크롤합니다.

  5. 액세스하려는 세션의 스트림 ID를 선택하여 Amazon CloudWatch 고해상도 지표에 대한 차트를 포함한 세션 세부 정보를 봅니다.

또는 하나 이상의 채널이 이미 라이브 상태인 경우

  1. Amazon IVS 콘솔을 엽니다.

  2. 탐색 창에서 라이브 채널을 선택합니다(탐색 창이 축소된 경우 먼저 햄버거 아이콘을 선택하여 엽니다).

  3. 목록에서 라이브 채널을 선택하여 분할 보기 내에서 해당 세션 세부 정보에 액세스합니다.

AWS SDK 지침

AWS SDK를 사용하여 스트림 세션 데이터에 액세스하는 것은 고급 옵션이며, 먼저 애플리케이션에서 SDK를 다운로드하고 구성해야 합니다. 다음은 JavaScript를 사용하는 AWS SDK에 대한 지침입니다.

사전 조건: 아래 코드 샘플을 사용하려면 애플리케이션에 AWS JavaScript SDK를 로드해야 합니다. 자세한 내용은 JavaScript용 AWS SDK 시작하기를 참조하세요.

// This first call lists up to 50 stream sessions for a given channel. const AWS = require("aws-sdk"); const REGION = 'us-west-2'; let channelArn = USE_YOUR_CHANNEL_ARN_HERE; AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } }); AWS.config.update({region: REGION}); var ivs = new AWS.IVS(); // List Stream Sessions async function listSessions(arn) { const result = await ivs.listStreamSessions({"channelArn": arn}).promise(); console.log(result.streamSessions); } listSessions(channelArn); // Get Stream Session async function getSession(arn, id) { const result = await ivs.getStreamSession({"channelArn": arn, "streamId": id}).promise(); console.log(result); // This function polls every 3 seconds and prints the latest IVS stream events. setInterval(function(){ console.log(result.streamSession.truncatedEvents); }, 3000); } getSession(channelArn);

CLI 지침

AWS CLI를 사용하여 스트림 세션 데이터에 액세스하는 것은 고급 옵션이며, 먼저 머신에서 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서를 참조하세요.

  1. 스트림 세션을 나열합니다.

    aws ivs list-stream-sessions --channel-arn <arn>
  2. streamId를 사용하여 특정 스트림에 대한 스트림 세션 데이터를 가져옵니다.

    aws ivs get-stream-session --channel-arn <arn> --stream-id <streamId>

다음은 get-stream-session 호출에 대한 샘플 응답입니다.

{ "streamSession": { "startTime": "2021-10-22T00:03:57+00:00", "streamId": "st-1FQzeLONMT9XTKI43leLSo1", "truncatedEvents": [ { "eventTime": "2021-10-22T00:09:30+00:00", "name": "Session Ended", "type": "IVS Stream State Change" }, { "eventTime": "2021-10-22T00:09:30+00:00", "name": "Stream End", "type": "IVS Stream State Change" }, { "eventTime": "2021-10-22T00:03:57+00:00", "name": "Stream Start", "type": "IVS Stream State Change" }, { "eventTime": "2021-10-22T00:03:50+00:00", "name": "Session Created", "type": "IVS Stream State Change" } ], "endTime": "2021-10-22T00:09:31+00:00", "ingestConfiguration": { "audio": { "channels": 2, "codec": "mp4a.40.2", "sampleRate": 48000, "targetBitrate": 160000 }, "video": { "avcLevel": "4.0", "avcProfile": "Baseline", "codec": "avc1.42C028", "encoder": "obs-output module (libobs version 27.0.1)", "targetBitrate": 3500000, "targetFramerate": 30, "videoHeight": 1080, "videoWidth": 1920 } }, "channel": { "name": "", "ingestEndpoint": "3f234d592b38.global-contribute.live-video.net", "authorized": false, "latencyMode": "LOW", "recordingConfigurationArn": "", "type": "STANDARD", "playbackUrl": "https://3f234d592b38.us-west-2.playback.live-video.net/api/video/v1/us-west-2.991729659840.channel.dY7LsluQX1gV.m3u8", "arn": "arn:aws:ivs:us-west-2:991729659840:channel/dY7LsluQX1gV" } } }

상태별 스트림 필터링

문제가 발생한 스트림을 쉽게 찾으려면 listStreams를 사용하여 라이브 스트림을 '상태'별로 필터링할 수 있습니다.

콘솔 지침

  1. Amazon IVS 콘솔을 엽니다.

    (또는 AWS Management Console을 통해서 Amazon IVS 콘솔에 액세스할 수 있습니다.)

  2. 탐색 창에서 라이브 채널을 선택합니다(탐색 창이 축소된 경우 먼저 햄버거 아이콘을 선택하여 엽니다).

  3. 상태별 필터링에 대한 검색 필드를 선택합니다.

  4. 드롭다운 목록에서 Health = STARVING으로 필터링을 선택합니다.

필터링한 후 채널의 세부 정보 페이지로 이동하고 채널의 라이브 스트림 세션을 선택하여 입력 구성 세부 정보 및 스트림 이벤트에 액세스할 수 있습니다.

CLI 지침

AWS CLI를 사용하는 것은 고급 옵션이며, 먼저 시스템에 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서를 참조하세요.

상태별로 스트림을 필터링하려면(예: STARVING)

aws ivs list-streams --filter-by health=STARVING

ConcurrentStreams에 대한 CloudWatch 상태 차원

특정 Health를 기준으로 ConcurrentStreams를 필터링할 수 있습니다. CloudWatch 지표: IVS 저지연 스트리밍을 참조하세요.

CloudWatch 지표 액세스

Amazon CloudWatch는 Amazon IVS에서 원시 데이터를 수집하고 실시간에 가까운 읽기 가능한 지표로 처리합니다. 이러한 통계는 15개월간 보관되므로 웹 애플리케이션 또는 서비스의 과거 수행 방식을 파악할 수 있습니다. 특정 임계값을 설정하고 해당 임계값이 충족될 때 알림을 전송하거나 조치를 취할 수 있습니다. 자세한 내용은 CloudWatch 사용 설명서를 참조하세요.

CloudWatch 지표는 시간이 지나면 롤업됩니다. 지표가 오래되면서 해상도가 실질적으로 감소합니다. 일정은 다음과 같습니다.

  • 1초 지표는 3시간 동안 사용할 수 있습니다.

  • 60초 지표는 15일 동안 사용할 수 있습니다.

  • 5분 지표는 63일 동안 사용할 수 있습니다.

  • 1시간 지표는 455일(15개월) 동안 사용할 수 있습니다.

getMetricData를 호출할 때 고해상도 지표에 대해 1, 5(권장), 10, 30 또는 60초의 배수를 기간으로 지정할 수 있습니다.

CloudWatch 콘솔 지침

  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 측면 탐색에서 지표 드롭다운을 확장한 다음 모든 지표를 선택합니다.

  3. 검색 탭에서 왼쪽에 있는 레이블이 없는 드롭다운을 사용하여 채널이 생성된 '홈' 리전을 선택합니다. 리전에 대한 자세한 내용은 글로벌 솔루션, 리전별 제어를 참조하세요. 지원되는 리전 목록은 AWS 일반 참조Amazon IVS 페이지를 참조하세요.

  4. 검색 탭 하단 부분에서 IVS 네임스페이스를 선택하세요.

  5. 다음 중 하나를 수행합니다.

    1. 검색 창에 리소스 ID(ARN의 일부, arn:::ivs:channel/<resource id>)를 입력합니다.

      IVS > 채널별을 선택합니다.

    2. IVSAWS 네임스페이스 아래에서 선택 가능한 서비스로 나타나는 경우 선택하세요. Amazon IVS를 사용하고 Amazon CloudWatch에 지표를 전송하는 경우 나열됩니다(IVS가 목록에 없으면 Amazon IVS 지표가 없습니다).

      그리고 나서 필요할 경우 차원 그룹화를 선택하세요. 아래의 CloudWatch 지표에 사용 가능한 차원이 나열되어 있습니다.

  6. 지표를 선택하여 그래프에 추가합니다. 아래의 CloudWatch 지표에 사용 가능한 지표가 나열되어 있습니다.

또한 스트림 세션의 세부 정보 페이지에서 CloudWatch에서 보기 버튼을 선택하여 스트림 세션의 CloudWatch 차트에 액세스할 수 있습니다.

CLI 지침

AWS CLI를 사용하여 지표에 액세스할 수도 있습니다. 그러려면 먼저 시스템에 CLI를 다운로드하여 구성해야 합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서를 참조하세요.

그런 다음, AWS CLI를 사용하여 Amazon IVS 저지연 스트리밍 지표에 액세스하려면 다음을 수행합니다.

  • 명령 프롬프트에서 다음을 실행합니다.

    aws cloudwatch list-metrics --namespace AWS/IVS

자세한 내용은 Amazon CloudWatch 사용 설명서에서 Amazon CloudWatch 지표 사용을 참조하세요.

CloudWatch 지표: IVS 저지연 스트리밍

Amazon IVS는 [AWS/IVS] 네임스페이스에서 다음 지표를 제공합니다.

지표 차원 설명

ConcurrentViews

없음

모든 라이브 채널에서 동시 보기 횟수입니다. 보기는 비디오를 적극적으로 다운로드하거나 재생하는 고유한 시청 세션입니다. (자세한 정의는 용어집 섹션을 참조하세요.) 라이브 채널이지만 집계에 보기가 없는 경우 이 지표의 값은 0입니다. 라이브 채널이 아닌 경우 지표에 데이터 포인트가 없습니다.

단위: 개

유효한 통계: 평균, 최댓값, 최소값 - 구성된 간격 동안 동시 보기의 각 평균 수, 가장 많은 수 또는 가장 적은 수입니다.

ConcurrentViews

Channel

채널 ARN을 기준으로 ConcurrentViews를 필터링합니다. 라이브 채널이지만 보기가 없는 경우 이 지표의 값은 0입니다. 라이브 채널이 아닌 경우 지표에 데이터 포인트가 없습니다.

이 지표는 스트림이 아닌 채널에 대한 데이터를 제공합니다. 지정된 채널에서 특정 스트리밍 세션에 대한 동시 보기를 확인하려면 ConcurrentViews 지표를 스트리밍 세션의 시작 시간과 종료 시간 사이에 평가합니다.

단위: 개

유효한 통계: 평균, 최댓값, 최소값 - 구성된 간격 동안 동시 보기의 각 평균 수, 가장 많은 수 또는 가장 적은 수입니다.

ConcurrentStreams

None

라이브로 스트리밍되는 채널의 수입니다. 라이브 채널이 아닌 경우 이 지표에 데이터 포인트가 없습니다.

단위: 개

유효한 통계: 평균, 최댓값, 최소값 - 구성된 간격 동안 동시 스트림의 각 평균 수, 가장 많은 수 또는 가장 적은 수입니다.

ConcurrentStreams

Health

채널 상태별로 ConcurrentStreams를 필터링합니다. 라이브 채널이 아닌 경우 이 지표에 데이터 포인트가 없습니다.

단위: 개

유효한 통계: 평균, 최대, 최소 - 구성된 간격 동안 특정 Health에 대한 동시 스트림의 각 평균 수, 최대 수 또는 최소 수입니다.

IngestAudioBitrate

Channel

(고해상도 지표) 스트리밍할 때 Amazon IVS가 수신하는 오디오 데이터의 양입니다. 비트 전송률이 높을수록 사용 가능한 인터넷 대역폭을 더 많이 차지합니다.

단위: 초당 비트

유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 수집 오디오 비트 전송률의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.

IngestFramerate

Channel

(고해상도 지표) 스트리밍할 때 Amazon IVS에서 애니메이션 프레임을 수신하는 빈도입니다.

단위: 초당 프레임

유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 수집 프레임 속도의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.

IngestVideoBitrate

Channel

(고해상도 지표) 스트리밍할 때 Amazon IVS가 수신하는 비디오 데이터의 양입니다. 비트 전송률이 높을수록 사용 가능한 인터넷 대역폭을 더 많이 차지합니다. 비트 전송률이 높을수록 비디오 품질이 향상되지만 특정 지점까지만 향상됩니다.

단위: 초당 비트

유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 수집 비디오 비트 전송률의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.

KeyframeInterval

Channel

(고해상도 지표) 이전 프레임과의 차이점만 전송하는 것이 아니라 전체 프레임을 전송하는 비디오 스트림의 지점입니다.

단위: 초

유효 통계: 평균, 최대, 최소 - 구성된 간격 동안 키프레임 간격의 평균 수, 가장 많은 수 또는 가장 적은 수(각각)입니다.

LiveDeliveredTime

None

모든 시청자에게 제공되는 비디오의 총 실시간 지속 시간입니다.

단위: 초

유효한 통계: Sum

LiveDeliveredTime

Channel

채널을 기준으로 LiveDeliveredTime을 필터링합니다. Channel 값은 채널의 resource-id로, ARN의 마지막 부분입니다.

단위: 초

유효한 통계: Sum

LiveDeliveredTime

Channel, ViewerCountryCode

채널 및 시청자의 국가 코드로 LiveDeliveredTime을 필터링합니다. Channel 값은 채널의 resource-id로, ARN의 마지막 부분입니다. 국가 값은 2자리 ISO 3166-1 국가 코드입니다. 이 값으로 시청자는 어디에서 시청하고 있습니까?란 질문에 답할 수 있습니다. 시청자의 국가를 확인할 수 없으면 UNKNOWN으로 표시됩니다.

단위: 초

유효한 통계: Sum

LiveInputTime

None

비디오 스트림의 실시간 지속 시간입니다.

단위: 초

유효한 통계: Sum

LiveInputTime

Channel

채널을 기준으로 LiveInputTime을 필터링합니다. Channel 값은 채널의 resource-id로, ARN의 마지막 부분입니다.

단위: 초

유효한 통계: Sum

RecordedTime

None

레코딩된 비디오의 실시간 지속 시간입니다.

단위: 초

유효한 통계: Sum

RecordedTime

Channel

채널을 기준으로 RecordedTime을 필터링합니다. Channel 값은 채널의 resource-id로, ARN의 마지막 부분입니다.

단위: 초

유효한 통계: Sum