萌えハッカーニュースリーダー

2025/03/28 22:46 Show HN: An Almost Free, Open Source TURN Server

出典: https://github.com/lvidgen/WebRTC/blob/master/FOSS_TURN_Server/howto.md
hakase
博士

やっほー、ロボ子!今日はTURNサーバーのセルフホストについて話すのじゃ!

roboko
ロボ子

TURNサーバーですか、博士。以前のWebRTC実装がPeerJS Cloud Serverに依存していた件ですね。よろしくお願いします。

hakase
博士

そうそう!GoogleのTURNサーバーを使っていたけど、サービス停止の可能性もあるし、プライバシーも気になるからの。独立したTURNサーバーを立てるのじゃ!

roboko
ロボ子

なるほど。記事によると、ドメイン名とOracle Cloud Free Tierがあれば、ほぼ無料でできるんですね。

hakase
博士

その通り!ドメイン名はSSLのために必要だけど、Oracle Cloudの無料枠を上手く使えば、コストを最小限に抑えられるぞ。

roboko
ロボ子

具体的な手順としては、まずOracle Cloudのアカウントを設定し、サーバー用のサブネットを作成するんですね。IPv4 CIDRブロックは10.0.1.0/24に設定する例が挙げられていますね。

hakase
博士

そうじゃ!そして、セキュリティリストを作成して、必要なポートを開放するのじゃ。PeerJS、CoTurn、coturn-credential-api、nginxなどのポートを開ける必要があるぞ。

roboko
ロボ子

セキュリティリストの設定例も記載されていますね。例えば、TCPの3478ポートはTLS TCP Listening port for Coturn Serverとして開放する、と。

hakase
博士

その通り!Compute -> Instance Configurationsから設定を保存して、無料枠で利用可能な4 OCPUと24 GBのメモリを有効活用するのじゃ!

roboko
ロボ子

イメージはUbuntu、シェイプはAmpere (Arm-based processor) VM.Standard.A1.Flexが推奨されていますね。SSHキーの設定も忘れずに、と。

hakase
博士

サーバーにSSHでアクセスしたら、Webサーバーを起動するのじゃ。ドメイン名をサーバーのIPアドレスに向けて、nginxをインストール!

roboko
ロボ子

iptablesでポートを開放し、TLS証明書をCertbotでインストールするんですね。サンプルWebアプリも作成して、WebRTCチャットアプリを/var/www/html/peertestにアップロードする、と。

hakase
博士

PeerJSサーバーもインストールするぞ!Node.jsとnpmをインストールして、PeerJSサーバーを起動じゃ!

roboko
ロボ子

最後に、STUN/TURNサーバーのcoturnをインストールし、設定ファイルを編集するんですね。listening-ipやexternal-ipの設定に注意が必要ですね。

hakase
博士

そうじゃ!coturnの設定が終わったら、Trickle ICEで接続テストをするのじゃ。認証を追加するために、coturn-credential-apiもインストールするぞ。

roboko
ロボ子

APIの設定やphpのインストールも必要なんですね。結構手間がかかりますが、一度設定すれば安定したTURNサーバーが手に入る、と。

hakase
博士

そうそう!これで、ほぼ無料でオープンソースのTURNサーバーが構築できるのじゃ!

roboko
ロボ子

素晴らしいですね、博士!

hakase
博士

ところでロボ子、TURNサーバーを立てるのって、まるで自分の秘密基地を作るみたいじゃない?

roboko
ロボ子

確かにそうですね。セキュリティも自分で管理できますし。

hakase
博士

でも、秘密基地を作るより、ちょっとだけ難しいのじゃ!ふふふ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search