このページでは、Google Meet ライブ配信に Google Meet Enterprise Content Delivery Network(eCDN)On-Premises API を使用する方法について説明します。
ここで説明する API ソリューションを使用すると、限定公開 IP 情報を Google に公開することなく、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 シグナリング中のセッション記述プロトコル(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 | NOT_FOUND |
null | クライアントが eCDN セッションを終了します。 |
200 | BLOCKED |
null | クライアントが eCDN セッションを終了します。 |
200 | 空ではないその他の文字列 | null | クライアントが eCDN セッションを終了します。 |
302(見つかりました) | クライアントはリダイレクト先の新しい URL(レスポンス本文の Location ヘッダーで指定)に移動します。 |
||
その他のステータス コード | 任意の文字列 | 任意の文字列 | クライアントが eCDN セッションを終了します。 |
SDP の Offer-Answer データ交換
WebRTC 接続を開始するには、デバイスがプライベート IP 情報を含む SDP オファーと回答(インタラクティブ接続確立(ICE)候補など)を交換する必要があります。これは、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(見つかりました) | クライアントはリダイレクト先の新しい URL(レスポンス本文の Location ヘッダーで指定)に移動します。 |
||
その他のステータス コード | 任意の値 | 任意の値 | クライアントが 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 管理コンソールにログインするには、管理コンソールにログインするをご覧ください。