【WebRTCでサーバーレスは可能?】仕組みから実現方法まで徹底解説!

WebRTC サーバーレス

WebRTCでサーバーレス通信を実現したいが、方法が分からない……」そんなお悩みをお持ちの方へ。WebRTCでは、実運用においては多くの場合サーバーが必要となりますが、限定的なシーンでは完全にサーバレスを実現する方法があります。

本記事では、WebRTCプラットフォームを運営するSkyWayサーバーに依存しないP2P通信の仕組みや、サーバーレスが可能な具体的な条件をわかりやすく解説。SkyWayを活用した効率的なWebRTC活用法もご紹介します。

※本記事においては、『サーバーが不要なこと、介さないこと』を『サーバーレス』と表現しています。

 

 

WebRTCの代表的なSDKとして、NTTコミュニケーションズが開発、運営する「SkyWay」があります。 「SkyWay」とは、ビデオ・音声通話をアプリケーションに簡単に実装できる国産SDKです。⇒無料で始めてみる

 

WebRTCとは?

WebRTC とは

WebRTC(Web Real-Time Communication)は、ウェブブラウザ間でリアルタイムに音声・映像・データを直接やり取りできる技術です。プラグイン不要で動作し、低遅延のP2P通信が特徴です。通信の確立にはシグナリングサーバーやNAT越えのためのSTUN/TURNサーバーが必要です。Chrome、Firefox、Safariなど主要なブラウザで標準サポートされており、ビデオ通話、画面共有、ライブ配信などに広く利用されています。

以下の記事にてWebRTCを詳しく解説しているので、ご参考ください。

skyway.ntt.com

WebRTCでサーバーレスは可能?

WebRTC サーバーレス

WebRTCで完全なサーバーレスは難しいです。P2P通信自体はサーバー不要で可能ですが、通信を開始するために必要な、シグナリングやNAT越えにはサーバーが必要です。

ただし、隣接端末間やローカルネットワーク内などの特定の条件であれば、サーバーレスのWebRTCが実現可能です。

後述で詳しく解説していきます。

WebRTCで必要なサーバーとは

WebRTCは、P2P(Peer To Peer) 通信を前提としており、2つのデバイスが直接データを交換できる仕組みを提供します。したがって、理論上、通信そのものにはサーバーが必要ありません。

ただし、シグナリングサーバー、STUN/TURNサーバーが必要になることがあります。

まず、P2P通信について解説します。

P2Pとは

WebRTC サーバーレス P2P

P2P(Peer To Peer)とは、サーバーを介さずに端末同士が直接通信する仕組みです。WebRTCにおけるP2Pは、音声・映像・データをリアルタイムでやり取りする際に使用されます。特徴として、通信遅延が少なく、サーバーの負荷を軽減できます。ただし、P2P接続には以下の要素が必要です。

  • シグナリングサーバー
  • STUN/TURNサーバー

以下で詳細に解説します。

シグナリングサーバー

WebRTC サーバーレス シグナリングサーバー

シグナリングサーバーは、WebRTCで通信を開始するための情報交換を行う役割を持つサーバーです。音声や映像などのデータ通信自体はP2Pで行いますが、接続前には以下の情報を交換する必要があります。

シグナリングサーバーは通信確立後は不要ですが、WebRTCの接続準備には多くのシーンで利用される存在です。

STUN/TURNサーバー

WebRTC サーバーレス STUN TURNサーバー

STUN/TURNサーバーは、WebRTCでP2P通信を確立する際に必要なサーバーです。

  • STUNサーバー(Session Traversal Utilities for NAT)

    NAT内の端末が外部IPアドレスとポート番号を知るために使います。NAT越えが可能な環境ではSTUNのみでP2P通信が確立します。

  • TURNサーバー(Traversal Using Relays around NAT) 

    NAT越えやファイアウォールの制限で直接接続できない場合、中継サーバーとして通信をリレーします。P2P接続が不可能な場合のバックアップです。

シグナリングサーバー、STUN/TURNサーバーにより、WebRTC通信が確立されます。

P2P通信やシグナリングサーバー、STUN/TURNサーバーなどのWebRTCの仕組みについては、以下の記事にて詳しく解説しているので、ご参考ください。

skyway.ntt.com

 

完全にサーバーレスを実現するには条件が必要

完全にサーバーレスなWebRTCを実現するには、サーバー以外の何らかの方法でSDPを交換し、端末同士が交換したSDPの情報を疎通可能である必要があります。たとえば、以下の条件で実現可能です。

  • 同じローカルネットワークに接続している

かつ

  • BluetoothやQRコードでSDPを交換する

このように通信開始時に従来サーバーが行う機能を代行する手段が確立できれば、サーバーレスでのWebRTC通信が実現できます。

SkyWayなら完全にサーバーレスで実装可能

上述で説明した条件であれば、サーバーレスも可能ですが、「なかなかクリアするには厳しい……」「開発したいサービスでは難しい……」という方も多いと思います。

そんな方ににおすすめなのが、「SkyWay」です。

NTTコミュニケーションズが提供するWebRTCプラットフォームの「SkyWay」であれば、サーバーレスでWebRTCを実装できます。

シグナリング、STUN/TURNサーバーの機能がクラウドで提供されるため、開発者はサーバー構築の手間を省くことが可能です。

 

SkyWay

「SkyWay」とは、ビデオ・音声通話をアプリケーションに簡単に実装できる国産SDKです。

大きな特徴としては、以下が挙げられます。

  • スピーディーな開発ができる
    開発資料が豊富かつ日本語でわかりやすい、国内エンジニアがサポートしてくれる
  • 信頼性・安全性が高い
    NTTコミュニケーションズが開発、運営する国産SDK。サービス歴は10年以上で、累計導入サービス数も21,000件以上
  • 無料で開発スタート
    開発検証用として、Freeプランあり。テスト検証期間中は無料で利用可能。商用サービス提供後も基本利用料11万 + 従量課金制で安心。

SkyWayの詳細はこちら

 

WebRTCのSDKとして提供されているものは、海外製が多いため、開発ドキュメントも英語か和訳のもので開発しにくい傾向にあります。 「SkyWay」であれば、NTTグループが開発、運営する安心の国産SDKかつ、国内エンジニアがサポートしてくれるため、開発運用工数も大幅に削減でき、開発のしやすさからもおすすめです。

テスト検証用は無料のため、ぜひアカウント登録をしてみください。

アカウント登録はこちら

まとめ

WebRTCはP2P通信によってサーバー不要でデータ交換が可能ですが、通常、通信開始にはシグナリングやNAT越えのためのサーバーが必要です。ただし、同一ネットワーク内、かつ通信情報の交換を独自に準備することで完全なサーバーレスが実現できます。SkyWayを使えば、サーバーレスのWebRTC通信が手軽に実装可能なため、おすすめです。