비공개 풀 구성

라이브 스트림을 처리하려면 수집, 트랜스코딩, 다중화와 같은 태스크를 실행하는 여러 구성요소를 관리해야 합니다. Live Stream API는 을 사용하여 이러한 구성요소와 리소스를 내부적으로 관리합니다. 풀은 리전별로 각 Google Cloud 프로젝트에 할당되는 처리 단위이며 특정 리전의 모든 채널 간에 공유됩니다.

기본적으로 Input 리소스를 만들면 입력 스트림을 전송할 수 있는 공개 IP 주소가 포함된 엔드포인트 URI가 제공됩니다. 온프레미스 네트워크에서 스트리밍하는지 아니면 Google Cloud Virtual Private Cloud(VPC) 네트워크에서 스트리밍하는지에 관계없이 데이터는 공개 인터넷을 통해 실시간 스트림 서비스 엔드포인트에 도달합니다.

공개 인터넷으로 스트리밍

실시간 스트림 서비스에 대한 비공개 서비스 액세스를 설정할 수도 있습니다. 비공개 서비스 액세스는 Google Cloud Virtual Private Cloud(VPC) 네트워크와 Google 관리 또는 타사 서비스 간의 안전한 비공개 연결입니다. 이 연결을 통해 VPC 네트워크의 VM 인스턴스가 공개 인터넷에 트래픽을 노출하지 않고도 내부 IP 주소를 사용하여 이러한 서비스와 통신할 수 있습니다. Live Stream API에서 비공개 서비스 액세스를 사용 설정하면 입력 엔드포인트로 사용될 내부 IP 주소가 VPC 네트워크에서 예약됩니다. 이렇게 하면 다음과 같은 이점이 있습니다.

  • 보안 강화: 비공개 서비스 액세스를 사용하면 트래픽을 공개 인터넷에 노출하지 않으면서 Live Stream API 입력 엔드포인트에 연결할 수 있습니다. 이를 통해 보안 상황을 개선하고 정보 유출 위험을 줄일 수 있습니다.
  • 성능 향상: 비공개 서비스 액세스는 공개 인터넷을 회피하여 연결 성능을 높일 수 있습니다. 이 방법은 지연 시간을 줄이고 처리량을 높이는 데 특히 유용합니다.

비공개 서비스 액세스를 Cloud Interconnect 또는 Cloud VPN과 페어링하여 온프레미스 네트워크와 라이브 스트림 서비스 간에 엔드 투 엔드 비공개 연결을 제공할 수도 있습니다.

비공개 엔드포인트로 스트리밍

시작하기 전에

비공개 풀을 구성하려면 다음 기본 요건을 완료하세요.

  • 서비스 프로듀서의 네트워크에 연결하는 데 사용할 수 있는 기존 VPC 네트워크가 있어야 합니다. VM 인스턴스는 이 VPC 네트워크를 사용하여 비공개 연결을 통해 서비스에 연결해야 합니다.
  • VPC 네트워크에 비공개 서비스 액세스를 구성해야 합니다.
  • 리전의 모든 채널을 중지해야 하며, 그렇지 않으면 Live Stream API가 풀의 피어링된 네트워크를 업데이트하는 요청을 거부합니다.
  • 풀 업데이트 중에는 리전의 모든 채널을 시작할 수 없습니다.

비공개 풀 구성

  1. 기본 풀이 이미 생성되었는지 확인합니다. 첫 번째 Input 리소스를 만들 때 위치의 기본 풀이 생성됩니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
    • LOCATION: 이미 입력을 만든 지원되는 리전 중 하나를 사용합니다.
      위치 표시
      • us-central1
      • us-east1
      • us-east4
      • us-west1
      • us-west2
      • northamerica-northeast1
      • southamerica-east1
      • asia-east1
      • asia-east2
      • asia-south1
      • asia-northeast1
      • asia-southeast1
      • australia-southeast1
      • europe-north1
      • europe-west1
      • europe-west2
      • europe-west3
      • europe-west4

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음과 비슷한 JSON 응답이 표시됩니다.

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default",
      "createTime": CREATE_TIME,
      "updateTime": UPDATE_TIME
    }
    

  2. 피어링된 네트워크 이름으로 풀을 업데이트합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
    • LOCATION: 기본 풀의 위치입니다. 지원되는 리전 중 하나를 사용합니다.
      위치 표시
      • us-central1
      • us-east1
      • us-east4
      • us-west1
      • us-west2
      • northamerica-northeast1
      • southamerica-east1
      • asia-east1
      • asia-east2
      • asia-south1
      • asia-northeast1
      • asia-southeast1
      • australia-southeast1
      • europe-north1
      • europe-west1
      • europe-west2
      • europe-west3
      • europe-west4
    • NETWORK: 현재 프로젝트에서 서비스와 피어링할 네트워크의 사용자 정의 식별자입니다.

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음과 비슷한 JSON 응답이 표시됩니다.

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    }
    

    이 요청은 장기 실행 작업을 시작합니다. 반환된 OPERATION_ID를 복사하여 다음 단계에서 사용합니다.

  3. projects.locations.operations.get 메서드를 사용하여 업데이트가 완료되었는지 확인합니다. 풀을 업데이트하는 데 최대 30분이 걸릴 수 있습니다. 응답에 "done: false"가 포함되어 있으면 응답에 "done: true"가 포함될 때까지 요청을 반복합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
    • LOCATION: 리소스가 있는 위치입니다. 지원되는 리전 중 하나를 사용합니다.
      위치 표시
      • us-central1
      • us-east1
      • us-east4
      • us-west1
      • us-west2
      • northamerica-northeast1
      • southamerica-east1
      • asia-east1
      • asia-east2
      • asia-south1
      • asia-northeast1
      • asia-southeast1
      • australia-southeast1
      • europe-north1
      • europe-west1
      • europe-west2
      • europe-west3
      • europe-west4
    • OPERATION_ID: 작업의 식별자

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음과 비슷한 JSON 응답이 표시됩니다.

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Pool",
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default",
        "createTime": CREATE_TIME,
        "updateTime": UPDATE_TIME,
        "networkConfig": {
          "peeredNetwork": "projects/PROJECT_NUMBER/global/networks/NETWORK"
        }
      }
    

업데이트 후 리전의 기존 입력 엔드포인트 및 향후 입력 엔드포인트의 모든 URI는 제공된 VPC 네트워크에 예약된 내부 IP 주소입니다. 입력 엔드포인트를 나열하여 업데이트된 URI를 확인합니다.

공개 풀로 전환

공개 풀로 되돌리려면 풀 업데이트 요청에서 피어링된 네트워크 이름으로 빈 문자열을 제공합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다. IAM 설정 페이지의 프로젝트 번호 필드에 있습니다.
  • LOCATION: 기본 풀의 위치입니다. 지원되는 리전 중 하나를 사용합니다.
    위치 표시
    • us-central1
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • northamerica-northeast1
    • southamerica-east1
    • asia-east1
    • asia-east2
    • asia-south1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

projects.locations.operations.get 메서드를 다시 사용하여 업데이트가 완료되었는지 확인할 수 있습니다.