Info

์‹ค์‹œ๊ฐ„/์ง€์—ฐ ๋ฏผ๊ฐ ํŠธ๋ž˜ํ”ฝ(WebRTC, SIP, ๊ฒŒ์ž„, ์ปค์Šคํ…€ UDP ๋“ฑ)์„ Kubernetes ์œ„์—์„œ ์šด์˜ํ•  ๋•Œ์˜ ํŒจํ„ด์„ ์ •๋ฆฌํ•œ๋‹ค. ๊ธฐ๋ณธ K8s Service/Ingress ๋ชจ๋ธ์€ HTTPยท์งง์€ ์—ฐ๊ฒฐ์„ ์ „์ œ๋กœ ํ•˜๋ฏ€๋กœ ์ถฉ๋Œ ์ง€์ ์ด ์žˆ๋‹ค. ์‚ฌ๋ก€๋ณ„ ๋ถ„์„์„ ๋ˆ„์ ํ•˜๋Š” ํ˜•์‹์ด๋ฉฐ, ํ•œ ํšŒ์‚ฌยทํ•œ ๊ธ€์—์„œ๋งŒ ์œ ํšจํ•œ ๋””ํ…Œ์ผ์€ ๊ฐ€๋Šฅํ•œ ์ผ๋ฐ˜ํ™”ํ•œ๋‹ค.

์‚ฌ๋ก€

OpenAI โ€” Voice AI WebRTC ๋ฐ์ดํ„ฐํ”Œ๋ ˆ์ธ (2026-05)

Delivering Low-Latency Voice AI at Scale

9์–ต+ ์‚ฌ์šฉ์ž voice AI๋ฅผ ์œ„ํ•ด WebRTC ๋ฐ์ดํ„ฐํ”Œ๋ ˆ์ธ์„ ์žฌ์„ค๊ณ„ํ•œ ์‚ฌ๋ก€.

  • Split relay + transceiver: packet routing๊ณผ protocol termination์„ ๋ถ„๋ฆฌ. ๊ฐ€๋ฒผ์šด UDP forwarding relay (Goยทuserspace)์™€ stateful WebRTC transceiver๋ฅผ ๋ณ„๋„ ์ปดํฌ๋„ŒํŠธ๋กœ.
  • ICE ufrag์— ๋ผ์šฐํŒ… ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ž„๋ฒ ๋“œ: relay๊ฐ€ deep inspection ์—†์ด username fragment๋งŒ ๋ณด๊ณ  ์ ์ ˆํ•œ transceiver๋กœ ๋ถ„๋ฐฐ.
  • ๊ณ ์ • UDP ํฌํŠธ surface: K8s์—์„œ ๋™์  ํฌํŠธ ๋ฒ”์œ„๋ฅผ ๋…ธ์ถœํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ์ž‘์€ fixed ํฌํŠธ ์ง‘ํ•ฉ์œผ๋กœ ํ•ด๊ฒฐ. ์ผ๋ฐ˜ Service/LB ๋ชจ๋ธ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ.
  • Global relay ingress: ์‚ฌ์šฉ์ž์— ๊ฐ€๊นŒ์šด relay์—์„œ first-hop ์ข…๋‹จํ•ด latency ๊ฐ์†Œ. transceiver๋Š” ๋ชจ๋ธ ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒ.

์ผ๋ฐ˜ํ™”๋œ ํŒจํ„ด

1. Routing๊ณผ Termination ๋ถ„๋ฆฌ

  • ๋ฌด๊ฑฐ์šด stateful ์ฒ˜๋ฆฌ(ํ”„๋กœํ† ์ฝœ termination, ์„ธ์…˜, ์ฝ”๋ฑ)์™€ ๊ฐ€๋ฒผ์šด stateless ์ฒ˜๋ฆฌ(ํŒจํ‚ท ๋ถ„๋ฐฐ)๋ฅผ ๊ฐ™์€ ๋…ธ๋“œ์— ๋‘๋ฉด ์Šค์ผ€์ผ ํ•œ๊ณ„.
  • L4 relay + L7 termination, edge proxy + origin, ingress + workload ๋“ฑ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ๋™์ผ ์‚ฌ๊ณ .
  • ์ด์ : relay๋Š” ์ˆ˜ํ‰ ํ™•์žฅ ์‰ฌ์›€, transceiver๋Š” ๋ณ„๋„ ์ •์ฑ…์œผ๋กœ ์Šค์ผ€์ค„.

2. Stateless ๋ผ์šฐํŒ…์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ํ—ค๋” ํ™œ์šฉ

  • LB๊ฐ€ connection state๋ฅผ ์ž์ฒด ๋ณด์œ ํ•˜๋ฉด failover/scale ๋น„์šฉ ํผ.
  • ๋ผ์šฐํŒ… ํ‚ค๋ฅผ ํ”„๋กœํ† ์ฝœ ํ—ค๋”์— ๋ฐ•์•„ LB๋Š” ๊ทธ ํ‚ค๋งŒ ๋ณธ๋‹ค: HTTP Host/SNI, gRPC metadata, JWT claim, ICE ufrag ๋“ฑ.
  • ์ผ๋ฐ˜ ์›์น™: ์„ธ์…˜ ์‹๋ณ„์ž๋ฅผ ํ”„๋กœํ† ์ฝœ์ด ์ฒ˜์Œ ๋…ธ์ถœํ•˜๋Š” ์ง€์ ์— ์œ„์น˜์‹œํ‚ค๊ธฐ. ๊ทธ ์œ„ ๊ณ„์ธต์€ statelessํ•˜๊ฒŒ ๊ฒฐ์ • ๊ฐ€๋Šฅ.

3. K8s์— ๋น„์นœํ™”์  ํ”„๋กœํ† ์ฝœ์˜ ํฌํŠธ surface ์ถ•์†Œ

  • ๋™์  UDP ํฌํŠธ ๋ฒ”์œ„, ์ž„์˜ ํฌํŠธ punch-through ๋“ฑ์€ K8s Service ๋ชจ๋ธยทCNIยทํด๋ผ์šฐ๋“œ LB์™€ ์ถฉ๋Œ.
  • ํ•ด๋ฒ•: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ ํฌํŠธ surface๋ฅผ ์ž‘์€ ๊ณ ์ • ์ง‘ํ•ฉ์œผ๋กœ ์••์ถ•. ๋‹ค์ค‘ ์„ธ์…˜์„ ๊ฐ™์€ ํฌํŠธ์—์„œ multiplex.
  • ์‘์šฉ ๋„๋ฉ”์ธ: SIP/RTP, ๊ฒŒ์ž„ ์„œ๋ฒ„, QUIC custom, WireGuard, ์ผ๋ถ€ P2P.

4. Global ingress = first-hop latency

  • ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์€ ์ง€๋ฆฌ์  ๊ฑฐ๋ฆฌ๊ฐ€ ๊ณง ํ’ˆ์งˆ. ๋‹จ์ผ ๋ฆฌ์ „ ingress๋Š” ํ•œ๊ณ„.
  • Anycastยทmulti-region front doorยทCDN PoP๊ณผ ๊ฐ™์€ ์‚ฌ๊ณ . relay๋งŒ ๊ธ€๋กœ๋ฒŒ ๋ถ„์‚ฐํ•˜๊ณ  ๋ฌด๊ฑฐ์šด ์›Œํฌ๋กœ๋“œ๋Š” ๋ชจ๋ธ/๋ฐ์ดํ„ฐ ๊ฐ€๊นŒ์ด.

5. Userspace๋กœ ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ์˜ ํŒ๋‹จ

  • ๋ชจ๋“  ๋ฐ์ดํ„ฐํ”Œ๋ ˆ์ธ์ด eBPF/XDP/์ปค๋„ ์šฐํšŒ๋ฅผ ์š”๊ตฌํ•˜์ง€๋Š” ์•Š์Œ. Go userspace forwarding์œผ๋กœ ์ถฉ๋ถ„ํ•œ throughput ํ™•๋ณด ๊ฐ€๋Šฅ.
  • ํŒ๋‹จ ์ถ•: ํŒจํ‚ท๋‹น ์ฒ˜๋ฆฌ ๋น„์šฉ, ๋™์‹œ ํ๋ฆ„ ์ˆ˜, latency budget. over-engineering ํšŒํ”ผ.

์ฐธ๊ณ  ์ž๋ฃŒ