pile·
인프라 / DevOps·discord-blogDiscord Blog·

Discord 음성 서비스를 엣지로 이전하기

Discord는 30개 도시의 대형 데이터센터 기반 음성 인프라를 Cloudflare 엣지의 300개 이상 PoP(Point of Presence)로 마이그레이션했다. 현재 80% 이상의 음성·영상 트래픽이 Cloudflare에서 운영되며, 마이그레이션된 지역의 70%에서 연간 품질 개선이 확인됐다.

핵심 포인트
  • 호스트 디스커버리: Cloudflare가 자체 스케줄로 호스트를 관리하는 구조라 Valkey(GCP Memorystore) 기반 자체 디스커버리 서비스를 10분 TTL로 구현.
  • NIC 큐 경합: 4개 워커가 단일 NIC 송신 큐 공유로 1.5~2% 패킷 손실 발생 → Cloudflare의 UDP 버퍼 수정 후 워커당 8개 큐로 해결.
  • 25초 행(Freeze) 현상: 페이지 캐시 축적으로 인한 디스크 동기화 대기 → Cloudflare 커널팀 전사 차원 패치.
  • Tokio 비동기 스케줄러 병목: 128-poll yield 예산이 마이크로초 단위로 소진돼 recv 폴링 반복, p99 latency 500ms 초과 → 9ms flush 예산 + CPU affinity + RPS 활성화로 해결. Frankfurt p99 34% 감소, 패킷 손실 42% 감소.
  • 교훈: HTTP 워크로드와 실시간 미디어의 스케줄링·큐 경합 동작이 근본적으로 달라 별도 튜닝이 필요하다.
왜 읽나Tokio/Rust 기반 실시간 미디어 인프라를 운영하거나 Cloudflare 엣지 마이그레이션을 검토하는 인프라·미디어 엔지니어에게 실전 트러블슈팅 케이스.
discord-blog
Discord Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·vercel-blogVercel Blog·

    Vercel CLI 드라이런 배포로 실제 배포 전 구성 미리 확인하기

    Vercel CLI v54.17.2부터 vercel deploy --dry 명령으로 실제 파일 업로드 없이 배포 구성을 미리 검사할 수 있다. 프레임워크 감지 결과, 포함/제외 파일 목록, 디렉터리 크기 분포, 콘텐츠 해시까지 사전에 확인하고 나서 배포를 결정할 수 있어 의도치 않은 배포 실패를 예방한다.

    #deployment#ci-cd#vercel-cli+1