このページでは、Google Meet ライブ ストリーミングで Google Meet エンタープライズ コンテンツ配信ネットワーク(eCDN)オンプレミス API を使用する方法について説明します。
ここで説明する API ソリューションを使用すると、お客様は Google にプライベート IP 情報を公開することなく、Meet eCDN のすべての機能を使用できます。プライベート IP アドレス情報の代わりに ID を渡す、独自のネットワークで新しいオンプレミス ウェブサービスを定義できます。
Meet eCDN の概要
eCDN は Meet に組み込まれており、Google Workspace 管理者が設定すると、ライブ配信中に自動的に開始されます。Meet eCDN を有効にすると、ローカル ネットワーク内のライブ配信視聴者は、ピアツーピア(P2P)共有を通じて、ライブ配信されたメディアをネットワーク内の他のピアと共有できます。ほとんどのデバイスは、近くのピアからライブ配信されたメディアを受信するため、Google のサーバーから取得する必要はありません。これにより、視聴者が使用する合計帯域幅が削減されます。Meet eCDN の設定と使用について詳しくは、大規模なライブ配信を主催するをご覧ください。
eCDN では、Meet ライブ ストリーミングの視聴者をピアリング グループに分類する必要があります。ピアリング グループは、メディアを相互に共有できるノードの集合です。ピアリング グループ内のデバイスは、ピアリングが許可されるか、ピアリングがブロックされます。許可されたデバイスは、同じピアリング グループ内の他のデバイスにのみ接続できます。ピアリング グループの詳細については、大規模なライブ ストリームを主催する前にをご覧ください。
API を使用するケース
eCDN は、random
、subnet
、custom rules
など、複数の異なるピアリング ポリシーを使用してピアリング グループを形成できます。後者は、Google の eCDN トラッカー サーバーとプライベート ネットワーク範囲のテーブルを共有して、各ピアノードのプライベート IP アドレスをピアリング グループにマッピングします。custom rules
ポリシーは推奨されるソリューションであり、ほとんどの本番環境に適しています。
ただし、custom rules
ポリシーでは、プライベート ネットワーク構造の大部分を Google と共有する必要があります。また、個々のユーザーは eCDN の使用中に、ローカルで検出されたプライベート IP アドレスを Google に公開します。一部の組織では、セキュリティ ガイドラインでプライベート IP 情報の共有が許可されていない場合があります。
Meet eCDN On-Premises API を使用して開発する
Meet eCDN On-Premises API は、組織のネットワークでローカルに実装してホストできるウェブサーバー仕様を提供します。API と互換性のあるカスタム ウェブサービスを構築して、プライベート IP 情報に依存するすべてのタスクを実行できます。これにより、情報が Google と共有されることはありません。
この API には、通常 eCDN トラッカー サーバーによって処理されるプライベート IP アドレスのマッチングの 2 つの重要なステップ(プライベート IP アドレスをピアリング グループにマッピングする、WebRTC シグナリング中の Session Description Protocol(SDP)のオファーとアンサーのデータ交換)が含まれています。
ウェブサービスの完了後、On-premises
service
ピアリング ポリシーを使用し、カスタム ウェブサービスの URL を含めるように管理コンソールを構成する必要があります。
要件
組織でこれらの要件のいずれかを有効にする必要がある場合は、Google Workspace 管理者に依頼してください。
HTTPS を使用するウェブサーバーであれば、この API を実装できます。
HTTPS を使用して、混合コンテンツのエラーを防ぎます。
JSON データを受け取って返します。ブラウザでサポートされているコンテンツ エンコードを使用します。
/vn
ルートでエンドポイントを処理します。ここで、n
は選択した API バージョンです。例:/v1/get-peering-group
Meet ライブ配信の視聴者は、Google 管理コンソールでウェブサービスの URL を確認できます。URL は、グローバル、組織部門ごと、またはグループごとに設定できます。閲覧者が割り当てられたサービスのインスタンスに接続できることを確認します。詳細については、管理コンソールを構成するをご覧ください。
サービスは 2 秒以内にレスポンスを返す必要があります。そうでない場合、eCDN クライアントはシャットダウンし、視聴者は通常の eCDN 以外のユーザーとしてライブイベントを視聴し続けるため、帯域幅の節約はできません。
サービスは、次のクロスオリジン リソース シェアリング(CORS)ヘッダーを設定する必要があります。
Access-Control-Allow-Origin: meet.google.com
Access-Control-Allow-Headers: GET, POST, OPTIONS
Access-Control-Allow-Credentials: true
プライベート IP アドレスをピアリング グループにマッピングする
eCDN クライアントは、eCDN トラッカー サーバーに再接続を試みるたびに呼び出しを行います。デバイスがプライベート IP アドレスを検出したら、そのアドレスを適切なピアリング グループにマッピングする必要があります。プライベート IP アドレスをネットワーク上のサーバーに送信し、get-peering-group()
メソッドを使用してピアリング グループに手動で解決する必要があります。レスポンスでピアリング グループ ID が返されます。Google との通信では、プライベート IP アドレスの代わりに、結果のピアリング グループ ID が渡されます。

次のコードサンプルは、get-peering-group()
メソッドを呼び出す方法と、考えられるエラー レスポンスと想定されるレスポンス本文を示しています。
POST /v1/get-peering-group
Content-Type: application/json
Request body:
{
"availableIPs": []{
"format": "ipv4"|"ipv6",
"address": "DETECTED_ADDRESS"
}
}
Error response:
{
"result": null,
"error": "ERROR_MESSAGE",
}
Response body:
{
"result": "PEERING_GROUP_ID",
"error": null,
}
次の表に、想定されるレスポンス形式を示します。
HTTP ステータス | エラー | ピアリング グループ ID | クライアントの反応 |
---|---|---|---|
200 | null | 空でない文字列 | クライアントはピアリング グループに分類され、eCDN トラッカー サーバーへの接続に進みます。 |
200 | null | NOT_FOUND |
クライアントが eCDN セッションを終了します。 |
200 | null | BLOCKED |
クライアントが eCDN セッションを終了します。 |
200 | その他の空でない文字列 | null | クライアントが eCDN セッションを終了します。 |
302(検出) | クライアントは、レスポンス本文の Location ヘッダーで指定された新しい URL にリダイレクトします。 |
||
その他のステータス コード | 任意の文字列 | 任意の文字列 | クライアントが eCDN セッションを終了します。 |
SDP のオファーとアンサーのデータ交換
WebRTC 接続を開始するには、デバイスはプライベート IP 情報を含む Interactive Connectivity Establishment(ICE)候補を含む SDP オファーとアンサーを交換する必要があります。これは WebRTC シグナリング プロセスの一部として行われます。
クライアントは、encrypt-sdp()
メソッドを使用して、Meet eCDN On-Premises API を介してネットワーク内の ICE 候補を暗号化する必要があります。このメソッドは、Google に公開されない鍵を使用します。暗号化された SDP オファーは、eCDN トラッカー サーバーを使用してピアに送信されます。クライアント ピアは、decrypt-sdp()
メソッドを使用して、ネットワーク内で受信した情報を復号します。Google は、接続されたピア間でオファーと回答を転送します。
Meet eCDN On-Premises API を使用して接続が確立されると、eCDN は通常どおりに動作します。ピアは通常のピアリング ネットワークを介してメディアをルーティングし、メディア トラフィックは API を通過または使用しません。

次のコードサンプルは、encrypt-sdp()
メソッドを呼び出す方法と、考えられるエラー レスポンスと想定されるレスポンス本文を示しています。
POST /v1/encrypt-sdp
Content-Type: application/json
Request body:
{
"data": "SDP_DATA" // raw SDP data
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "ENCRYPTED_DATA_STRING", // encrypted data as string
"error": null,
}
次のコードサンプルは、decrypt-sdp()
メソッドを呼び出す方法と、考えられるエラー レスポンスと想定されるレスポンス本文を示しています。
POST /v1/decrypt-sdp
Content-Type: application/json
Request body:
{
"data": "ENCRYPTED_DATA_STRING", // encrypted data as string (size limit: 1 MB)
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "SDP_DATA" // raw SDP data
"error": null,
}
次の表に、想定されるレスポンス形式を示します。
HTTP ステータス | エラー | ピアリング グループ ID | クライアントの反応 |
---|---|---|---|
200 | null | 空でない文字列 | クライアントは、適切にエンコードまたはデコードされた SDP データが使用されることを想定しています。 |
200 | 空でない任意の文字列 | null | クライアントが eCDN セッションを終了します。 |
302(検出) | クライアントは、レスポンス本文の Location ヘッダーで指定された新しい URL にリダイレクトします。 |
||
その他のステータス コード | 任意の値 | 任意の値 | クライアントが eCDN セッションを終了します。 |
管理コンソールを設定する
Meet eCDN On-Premises API を使用するには、 管理コンソールで eCDN を構成して、カスタム ウェブサービスの URL を含める必要があります。
eCDN を設定するには、On-premises service
を使用してピアリング ポリシーを作成し、IP 情報をピアリング グループに手動で照合します。デフォルトの 443 を使用していない場合は、ポート番号を含めることもできます。URL は WEB_SERVICE.example.com:8080
の形式である必要があります。ここで、WEB_SERVICE
はウェブ サービス名です。
ピアリング ポリシーの設定の詳細については、ネットワーク グループを構成するをご覧ください。
関連トピック
Meet eCDN の使用方法については、大規模なライブ配信を主催するの手順に沿って操作してください。
eCDN の設定方法については、大規模なライブ ストリームを主催する前にをご覧ください。
ネットワークを設定する方法については、Meet の会議とライブ配信用にネットワークを準備するをご覧ください。
管理者として Google 管理コンソールにログインするには、管理コンソールにログインするをご覧ください。