Agora Go Real

{{ page_meta.name }}|{{ group.public_title }}|{{ site_settings.logo_alt }}

作成者: ブイキューブ|Sep 5, 2025 3:00:00 PM

WebRTCとは

WebRTCとは、「Web Real-Time Communication」の略称で、APIを経由して、ウェブブラウザやモバイルアプリでリアルタイム通信を実現する技術のこと。WebRTCのプロジェクトに参画しているのは、Apple、Google、Microsoftなど名だたるIT企業ばかりです。

 

実運用では端末間のP2Pに加え、シグナリングサーバーSTUN/TURN/SFU などのwebrtc サーバー群を組み合わせて、接続確立・NAT越え・多拠点配信を安定させます。

対応ブラウザ

対応しているブラウザは、PCでは、Google Chrome、Microsoft Edge、Mozilla Firefox、Safari、Operaになります。多くの人が日常的に使っている主要なブラウザでは、ほぼ対応していると言ってよいでしょう。

 

またスマートフォンなどモバイル環境で使用するOSでは、AndroidはGoogle Chrome、Mozilla Firefox、Opera Mobile、iOSはSafariです。

利用シーン

WebRTCは様々なシーンで利用されています。例えば、Web会議、Web面接、オンライン営業などのビジネスシーンではもちろん、オンライン教育、ボイスチャット、オンラインクレーンゲームなどでもWebRTCの仕組みが利用されています。

 

また、遠隔医療(オンライン診療)、オンラインフィットネス、IoT映像配信、VRライブ配信などにもその活用が広がってきています。

シグナリングサーバーとは

WebRTCは、様々なサーバーなどを組み合わせ、利用できるようにしています。

 

その1つに「シグナリングサーバー」があります。シグナリングサーバーは「通信相手に関する情報を得る」のが役割で、WebRTCにおいて欠かせないサーバーです。

 

そもそも相手とやり取りをしようにも、相手が誰でどこにいるのか判別できなければ、やりようがありません。そこで、シグナリングサーバーは相手のユーザー名を伝えることで、その他通信に必要な情報を収拾できるようにしているのです。

 

WebRTCシグナリングでは、SDP(コーデック/ビットレート等)と ICE 候補WSS/HTTPS 経由で安全に交換します。扱うのは「誰と、どう繋ぐか」というメタ情報で、シグナリングサーバー自体はメディアを中継しません。認証(短命トークン)やルーム権限、再接続戦略、接続ログ収集などの運用機能を揃えると信頼性が大きく向上します。

P2Pとは

WebRTCを理解するうえで、とても重要な概念があります。それが「P2P」です。P2PはPeer to Peerの略になります。P2Pの基本的な概念は「サーバーを介さず、端末同士が直接通信できるようにする」というものです。

 

とはいえ、WebRTCの接続確立にはシグナリングサーバーSTUN/TURN が必要です。1対1や少人数はP2Pで十分な場面が多い一方、参加者が増える会議・配信では SFU といったWebRTCサーバーを用いて帯域端末負荷を最適化するのが実務的です。

STUNサーバーとは

"P2Pのような"やり取りを実現するために、必要となるのはシグナリングサーバーだけではありません。その他にも「STUNサーバー」や「TURNサーバー」などを利用します。

 

なぜ、これらのサーバーが必要となるのか。その理由は「NAT(=Network Address Translation)」の存在があります。

NATとは

NATは、ネットワークアドレスを変換する機能です。

 

例えば、自宅でWi-Fiをつないだ際、端末にグローバルIPアドレスが付与されていないケースがあります。これは、プロバイダーから割り振られるIPアドレスが一つのため、複数の端末がインターネットに接続できるよう、ルーターがIPをLANの端末へ振り分けているためです。

 

そのため、端末で表示されるIPアドレスがグローバルIPアドレスと異なることがあります。しかし、これでは情報を送りたい側は困ってしまいます。なぜなら、通信したい先の本当のIPアドレスが変換されているため、わからないからです。

 

そこで、NATによって変換されたアドレスをセキュアに関連づける「NAT越え」が必要となります。その際に必要となるのが、STUNサーバーとTURNサーバーです。

STUNサーバーの役割

STUNサーバーは外部ネットワークから見た際の自身のIPアドレスを教えてくれます。そのアドレスと自身のPCのアドレスを比較してNAT越えが必要かを判断します。

 

経路選定は ICE(Interactive Connectivity Establishment) で行われ、端末はhost/srflx/relayなど複数候補を提示して最適経路を自動確立します。企業ネットワークやキャリア網では UDP/任意ポート制限 があり、STUNだけでは成立しないことも多いため、TURN の準備を早期から検討しましょう。

TURNサーバーとは

STUNサーバーを使えば、NAT超えが必要かどうかがわかります。実際に企業で導入しているネットワークにはNAT越えが必要な場合が多く、且つ、Firewallを超える必要もでてきます。

Firewallを超える

Firewallは、ほとんどのパソコンに組み込まれた基本的なセキュリティ対策の1つです。特に、企業においては、サイバー攻撃などのリスクを防ぐため、ポート制御やウイルス感染を防ぐ役割を担います。

 

しかし、Firewallをセキュアに超えられる仕組みがなければ、ビジネスシーンでP2Pのような通信ができません。そこで、考えられたのが「TURNサーバー」です。

TURNサーバーの仕組み

TURNサーバーは、もともとVoIPやオンラインゲームで使用されていた仕組みです。TURNサーバーでは、通信の際に発生するストリームデータの受け渡しをするブリッジの役割を担います。

 

TURNは、NAT環境下で端末間の直接接続が難しいときに、中継サーバーが介在してメディア通信を成立させるためのプロトコルです。TURNはメディアを中継(relay)して厳しいNAT/Firewall環境でも接続を成立させます。実装時は TLS と短命資格情報(TTL付き)、そして 接続成功率・RTT・再送率 などのモニタリングをセットで整えると、ユーザーは仕組みを意識せずに安定して使えます。

SFUサーバーとは

SFU(Selective Forwarding Unit)サーバーは、音声や映像をP2Pではなく、サーバー経由で行う技術です。配信者が直接相手に通信するのではなく、サーバーを間に挟むことで、動画の視聴者増加などによる、端末への負荷軽減を可能にします。これにより、リアルタイムで多くの視聴者に音声や動画を配信できます。

多拠点で接続する

現代では、多拠点に同時に動画を届ける必要があります。YouTubeなどの動画サイトでもライブ配信が行われ、大量のユーザーが同時に視聴するケースが多々あります。

 

このような処理を行うには、一般ユーザーが使用する端末では不可能です。よりハイスペックで、大量の同時接続にも耐えうるような強力なサーバーが求められ、その傾向は今後もさらに続くでしょう。

MCUとの違い

多拠点同時配信を行う技術として、MCU(Multipoint Control Unit)があります。MCUは、SFUで用いるサーバーよりさらにハイスペックなマシンを用いて、音声や映像を合成したり、回線が細いユーザーに対してはビットレートを落として映像を送るなどができます。

 

しかしその分、処理の負荷がかかり、特にCPUのコア数が必要です。

 

運用の目安は 1対1/少人数=P2P5〜20人規模=SFU合成や録画要件=MCU。特に SFU選択転送で上り帯域を節約でき、Simulcast/SVC による適応配信も取り入れやすいことから、WebRTCサーバーの中でも汎用的に採用されています。

仮想広域ネットワーク

SFUやMCUよりもさらに多くの拠点と接続できる仕組みとして、「仮想広域ネットワーク」を使ったサービスも存在します。

 

例えば、ライブ配信・ビデオ通話・音声通話API/SDKのAgoraは、HLSやFlashを使用せず、独自のプロトコルで超低遅延を実現。世界中のデータセンターにノードを構築し、自動で最適な経路を選択するアルゴリズムを備えています。世界中のデータセンターを介した最適ルーティングを実現し、サブ秒レベル(約300 ms)~最大でも1秒程度という超低遅延通信を可能にしています。

 

またWebRTCとも互換性を持ち、SFU型よりさらに規模が大きい通話などにも対応。P2Pより安定した通信を実現しています。

代表的な構成例(用途別)

最小構成:1対1/小人数P2P

1〜3、4名を目安とします(5名は端末性能や映像ビットレート次第)。クライアント⇄シグナリング+STUNで接続し、必要に応じてTURNを利用します。企業ネットワークでは常時TURN経由となる場合があります。遅延とコストは最小化できますが、CPUと上り帯域は参加人数に比例して増加する点に注意が必要です。

小規模会議:5〜20名 SFU

クライアント⇄シグナリング+STUN/TURN⇄SFU。Simulcast/SVCで端末負荷と回線を最適化。録画や権限管理をサーバー側に集約。

大規模ウェビナー:SFU+配信

クライアント⇄シグナリング+STUN/TURN⇄SFUで構成します。Simulcast/SVCを用いて端末負荷と回線を最適化します。録画や権限管理はサーバー側に集約します。

グローバル超低遅延:マルチリージョン/SD-RTN

地理的に近いノードへ自動ルーティングし、障害時は最短経路へ迂回します。国・地域ごとのデータ取り扱いと録画保存域も明示します。

SDKを用いて開発する

上記の通り、WebRTCを利用したシステムを自社開発するには、様々なサーバーの構築・管理が必要です。しかし、最近ではSDKを使って自社開発を極力少なくすることができます。

 

また、自前運用は、ピーク時のスケール対応・国際間の遅延対策・監視(getStats/接続成功率の見える化)・SLA対応までコストがかさみます。SDK/クラウドなら、WebRTCシグナリングから多拠点配信までを短期間で立ち上げ、プロダクトの体験改善に集中できます。

 

とはいえ、SDKにも様々な種類があり、選ぶのに迷うケースもあるでしょう。その際は、WebRTCの商用サービスについてまとめた記事がありますので、こちらをご覧ください。

 

FAQ

TURNとSTUNの違いは?

STUNはクライアントのパブリックIP/ポートを教える仕組みで、P2P接続を助けます。TURNはメディアをサーバー経由で中継し、P2Pが通らない環境でも接続を保証します。

どんな場合にTURNサーバーが必要?

企業ネットワークやキャリア網などで厳しいNAT/Firewallがある場合や、接続率を保証したい時はTURNを用意します。

SFUは遅延にどう影響しますか?

SFUはメディアを混合せずに転送するため、MCUより低遅延でスケールしやすい一方、中継分のわずかな遅延は加わります。

シグナリングサーバーは必須ですか?

はい。オファー/アンサーやICE候補の交換に必要ですが、方式は規定されていないためWebSocketやHTTPなど任意の手段で実装できます

推奨の基本構成は?

クライアント↔シグナリング、STUN/TURN(必ずTURNを用意)、SFUを組み合わせ、用途に応じて録画・監視を追加します。

 

まとめ

ここまで、WebRTCの基本的な仕組みからサーバーの構成までお伝えしました。

動画・音声サービスは今後さらに発展していくと予想されます。


単なる1:Nの配信だけでなく、参加型ライブ配信などに代表される双方向性の高い映像配信や、ウォッチパーティのような仲間同士で楽しめるサービス、また、パフォーマー側にもオーディエンスの気持ちが伝わる熱量可視化のサービスなど、オンラインならではの体験が加速しています。

 

また近年では、会話型AIを組み込んだリアルタイム通信の活用も進んでいます。
こうした新しいサービスを実現する際には、WebRTCの実装が重要な役割を果たします。その際は本記事を参考にしていただければ幸いです。