Meet eCDN On-Premises API を使用する

このページでは、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 は、randomsubnetcustom 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 が渡されます。

プライベート IP アドレスがピアリング グループにマッピングされる方法。
図 1. プライベート IP アドレスをピアリング グループにマッピングする。

次のコードサンプルは、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 を通過または使用しません。

SDP の提案と回答データの暗号化と復号方法。
図 2. SDP オファーと回答データの暗号化と復号。

次のコードサンプルは、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 はウェブサービス名です。

ピアリング ポリシーの設定の詳細については、ネットワーク グループを構成するをご覧ください。