Deepgram deepens Amazon SageMaker AI observability with Enhanced Metrics
Quick Summary
Deepgram은 Amazon SageMaker AI에서 Enhanced Metrics와 Prometheus·OpenTelemetry 지원을 통해 네트워크 격리를 유지하면서 청구·기능 사용량과 엔진·GPU 상태를 CloudWatch에서 관측하도록 지원한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Deepgram은 Amazon SageMaker AI에서 Enhanced Metrics와 Prometheus·OpenTelemetry 지원을 통해 네트워크 격리를 유지하면서 청구·기능 사용량과 엔진·GPU 상태를 CloudWatch에서 관측하도록 지원한다.
📌 핵심 요약
- Deepgram의 STT·TTS 모델은 AWS Marketplace 모델 패키지로 제공되며, SageMaker AI 실시간 엔드포인트로 배포하면 오디오와 전사문이 고객의 AWS 계정 안에 유지된다.
- Deepgram Enhanced Metrics는 기존 컨테이너 로그 경로와 EMF를 이용해 CloudWatch에 청구·사용량 지표를 전달하므로 별도 에이전트·사이드카나 추가 IAM 권한이 필요하지 않다.
- Deepgram/SageMakerInference의 ConsumedUnits는 AWS Marketplace 청구에 사용되는 과금 단위와 같으며, 범주·모델·전송 방식별 분석을 지원하지만 개별 엔드포인트나 인스턴스별 필터링은 지원하지 않는다.
- Deepgram/SelfHosted는 처리 방식·모델 등급·활성화 기능별 사용량을 제공한다. 사용량 스트림은 기본 활성화되며 비활성화할 수 있지만 청구 스트림은 비활성화할 수 없다.
- SageMaker AI 상세 관측 기능은 관리형 OpenTelemetry Collector로 엔진·개별 GPU·호스트 지표를 수집한다. 새 엔드포인트에서는 기본적으로 60초마다 게시하며, CloudWatch나 Grafana 등에서 PromQL로 조회할 수 있다.
🧩 주요 포인트
- 청구 단위와 기능 사용량의 분리 → ConsumedUnits로 과금 규모를 대조하고 Deepgram/SelfHosted로 실제 기능 활용을 분석할 수 있다.
- 계정·리전 단위 집계와 엔드포인트·인스턴스·GPU 단위 관측의 병행 → 비용 분석과 개별 자원의 병목 진단에 서로 다른 지표 스트림을 선택해야 한다.
- engine_estimated_stream_capacity와 engine_active_requests의 비교 → 엔진이 추정한 동시 스트림 처리 용량과 현재 부하를 바탕으로 확장 판단에 필요한 여유 용량 신호를 얻을 수 있다.
🧠 상세 정리
1. 자체 호스팅 음성 AI의 관측 공백
자체 호스팅 음성 AI에서는 엔드포인트의 가동 여부와 요청 수를 확인할 수 있어도, 실제 과금 대상과 사용 기능, 각 GPU에서 일어나는 추론 동작은 공급업체 컨테이너 내부에 가려지는 문제가 있었다. Deepgram의 STT·TTS 모델을 SageMaker AI에서 실행하면 오디오와 전사문을 고객의 AWS 계정 안에 유지하면서 배포·확장·모니터링을 위한 관리형 제어 기능을 이용할 수 있다. 이 구성은 데이터 상주와 규정 준수 노력을 지원할 수 있지만, 구체적인 의무 충족 여부는 고객의 통제와 평가에 달려 있다. 원문은 이러한 배포 방식에서 남아 있던 청구·사용량·엔진 동작의 관측 공백을 메우는 두 기능을 소개한다.
2. 기존 관측 기능과 네트워크 격리
Deepgram 음성 모델은 AWS Marketplace 모델 패키지로 제공되며 고객 계정의 SageMaker AI 실시간 엔드포인트에 배포된다. 기본적으로 CloudWatch의 ConcurrentRequestsPerModel과 FirstChunkLatency 같은 호출 지표, CloudWatch Logs의 컨테이너 로그, 경보 기반 자동 확장을 이용할 수 있다. Marketplace 모델 패키지는 네트워크 격리 상태에서 실행되어 컨테이너가 외부로 연결할 수 없으므로, 공급업체 지표를 외부 수집기로 보내는 방식에는 제약이 있다. 소개된 두 기능은 컨테이너의 외부 연결 없이 고객의 CloudWatch 계정으로 지표를 전달한다. 한편 SageMaker AI의 EnableEnhancedMetrics는 인스턴스·GPU별 활용도 차원을 추가하는 별도 기능으로, Deepgram Enhanced Metrics와 구별해야 한다.
3. 로그 경로를 활용하는 Enhanced Metrics
Deepgram Enhanced Metrics는 컨테이너의 표준 출력에 CloudWatch Embedded Metric Format인 EMF 레코드를 기록하는 방식으로 작동한다. SageMaker AI가 기존 경로로 이 출력을 엔드포인트의 CloudWatch 로그 그룹에 전달하면 CloudWatch Logs가 EMF 레코드에서 지표를 자동 추출한다. 따라서 에이전트·사이드카·수집기를 추가 배포하거나 기존 로깅 권한 외의 IAM 권한을 부여할 필요가 없고, 엔드포인트 구성에서 별도로 활성화할 항목도 없다. 생성된 지표는 일반 CloudWatch 지표이므로 기존 조회 명령과 경보, 지표 수식에 사용할 수 있다. 모든 차원은 값의 종류가 제한적이며 전사문, TTS 입력, 요청별 식별자 같은 개인 식별 정보는 포함하지 않는다.
4. 청구 단위의 대조와 집계 범위
Deepgram/SageMakerInference 네임스페이스는 완료된 스트리밍 세션, 사전 녹음 처리 요청, TTS 요청마다 하나의 레코드를 내보낸다. ConsumedUnits는 AWS Marketplace 종량제 청구에 사용되는 것과 같은 과금 단위이며, 기간 합계로 전체 청구 대상 처리량을 확인할 수 있다. AudioDurationSeconds는 STT로 처리한 오디오 길이를, CharCount는 TTS로 합성한 문자 수를 나타내며 SampleCount는 과금 요청 수를 나타낸다. 차원은 범주, 범주와 모델, 범주와 모델 및 전송 방식의 세 수준으로 제공되어 스트리밍 STT나 nova-3의 기여를 구분할 수 있다. 다만 Enhanced Metrics는 계정·리전 내 Deepgram 엔드포인트를 통합 집계하고 엔드포인트 이름이나 인스턴스 ID를 포함하지 않으므로 개별 자원 분석에는 다른 스트림이 필요하다.
5. 기능과 모델별 실제 사용량
Deepgram/SelfHosted는 API 서버가 내보내는 별도 스트림으로, 청구와 독립적으로 처리 방식·모델 등급·활성화 기능에 따른 사용량을 보여준다. AudioMs와 Requests는 스트리밍과 사전 녹음 처리량을 구분하고, TierAudioMs는 nova-3나 flux 같은 모델 등급별 오디오 처리량을 나타낸다. FeatureAudioMs와 FeatureTokens는 화자 분리, 스마트 서식, 정보 가림, 핵심 용어 프롬프팅 등 애플리케이션이 활성화한 기능의 활용을 분석하는 데 사용된다. TtsCharacters, Tokens, VoiceAgentMs는 TTS와 지능형 기능, 음성 에이전트의 사용 규모를 나타낸다. 사용량 스트림은 기본 활성화되지만 엔드포인트 환경 변수 재정의인 DEEPGRAM_API_01: emf.enabled=false로 끌 수 있으며, 청구 스트림은 계량 처리 과정의 일부이므로 끌 수 없다.
6. 엔진·GPU·호스트의 상세 관측
Deepgram 컨테이너는 Prometheus 지표 엔드포인트를 제공하고, SageMaker AI 상세 관측 기능은 엔드포인트를 구성하는 각 인스턴스에서 AWS 관리형 OpenTelemetry Collector를 실행한다. 수집기는 컨테이너의 엔진 지표와 GPU·호스트 지표를 CloudWatch의 OTel 호환 지표 저장소로 전달한다. GPU 지표는 DCGM exporter를 통해 장치마다 별도로 보고되므로 여러 GPU의 합계나 평균 속에 특정 장치의 포화 상태가 가려지는 문제를 피할 수 있다. 호스트 지표는 node exporter 형식으로 CPU와 메모리 상태를 제공하며, 엔진 지표는 활성 요청 수와 추정 스트림 처리 용량 등을 보여준다. 수집기는 모델 컨테이너 외부의 호스트에서 실행되므로 Marketplace 네트워크 격리 조건에서도 이 수집 방식이 작동한다.
7. 자원 식별과 확장 판단
상세 관측 지표의 각 시계열에는 SageMaker 엔드포인트 이름, 변형 이름, 인스턴스 ID 같은 자원 레이블이 포함된다. 따라서 특정 엔드포인트만 조회하거나 확장된 인스턴스 집합에서 하나의 인스턴스를 분리해 살펴보고, 동일 인스턴스 안의 GPU들을 비교할 수 있다. engine_estimated_stream_capacity는 해당 인스턴스가 유지할 수 있는 동시 스트림 수에 대한 Deepgram 엔진 자체의 추정치다. 이를 engine_active_requests와 비교하면 현재 부하에 비해 처리 여력이 얼마나 남았는지를 엔진 관점에서 파악하여 확장 판단에 활용할 수 있다. 이런 세부 관측은 개별 엔드포인트나 인스턴스 차원이 없는 Enhanced Metrics를 보완하며, 기본 SageMaker AI 관측 기능과 함께 사용할 수 있다.
8. 활성화·갱신과 PromQL 조회
상세 관측 기능은 새로 생성한 엔드포인트에서 기본 활성화되며 지표 게시 주기는 60초다. 기존 엔드포인트에서 명시적으로 활성화하거나 게시 주기를 바꾸려면 엔드포인트 구성의 MetricsConfig에 EnableDetailedObservability와 MetricPublishFrequencyInSeconds를 지정한다. 이미 트래픽을 처리하는 엔드포인트는 새 구성을 만든 뒤 update-endpoint를 실행하며, 이 갱신은 서비스를 유지하는 블루·그린 배포로 진행된다. 지표는 CloudWatch의 PromQL 편집기에서 조회하거나 SigV4 인증을 사용하는 표준 Prometheus 호환 HTTP API로 질의할 수 있다. Grafana 등 기존 Prometheus 호환 도구에서도 이 저장소를 조회할 수 있으므로 별도 모니터링 체계나 내보내기 파이프라인 없이 SageMaker AI 자원을 관측할 수 있다.
🧾 핵심 주장 / 시사점
- 과금 단위와 기능 사용량을 함께 보면 청구 규모의 검증과 애플리케이션 활용 방식의 분석을 서로 구분하면서 연결할 수 있다.
- 네트워크 격리를 유지하면서 기존 로그 경로와 호스트 수집기를 활용하므로, 컨테이너의 외부 연결 없이 관측 범위를 넓힐 수 있다.
- 계정·리전 수준의 비용 분석과 개별 GPU 수준의 운영 진단은 집계 범위와 조회 방식이 다르므로, 분석 목적에 맞는 스트림 선택이 중요하다.
✅ 액션 아이템
- Deepgram/SageMakerInference의 ConsumedUnits를 범주·모델·전송 방식별로 조회해 AWS Marketplace 청구 대상 사용량과 대조.
- Deepgram/SelfHosted에서 처리 방식·모델 등급·활성화 기능별 사용량을 분석.
- 엔드포인트·인스턴스별 engine_estimated_stream_capacity와 engine_active_requests를 비교해 확장 판단에 필요한 여유 용량을 확인.
❓ 열린 질문
- ConsumedUnits를 기준으로 AWS Marketplace 청구 대상 사용량에서 가장 큰 비중을 차지하는 모델과 전송 방식은 무엇인가?
- Deepgram/SelfHosted에서 사용량이 가장 많은 모델 등급과 활성화 기능은 무엇인가?
- engine_estimated_stream_capacity와 engine_active_requests를 비교할 때 어느 엔드포인트·인스턴스의 여유 용량이 가장 적은가?