Cloud Composer에서 Private Service Connect 구성

Cloud Composer 1 | Cloud Composer 2

이 페이지에서는 VPC 피어링 대신 Private Service Connect를 사용하는 비공개 IP 환경을 만드는 방법을 설명합니다.

비공개 IP 환경 만들기에 대한 자세한 내용은 비공개 IP 환경 구성을 참조하세요.

Cloud Composer의 Private Service Connect 정보

환경 구성요소는 테넌트 및 고객 프로젝트 사이에 배포됩니다. 비공개 IP 환경에서 이러한 2개 프로젝트에 있는 구성요소는 VPC 피어링을 사용하여 연결됩니다. VPC 피어링에는 VPC의 최대 피어링 수 제한을 비롯한 몇 가지 제한사항이 있습니다. Cloud Composer 환경에서 대규모 네트워크를 사용하는 경우 이러한 제한이 더 명백해집니다.

Cloud Composer의 Private Service Connect 지원에 따라 비공개 IP 환경은 VPC 피어링을 사용하지 않고 내부적으로 통신합니다. 이러한 환경에는 PSC를 사용하는 비공개 IP 아키텍처가 사용됩니다.

시작하기 전에

  • Private Service Connect 지원은 Cloud Composer 2에서만 제공됩니다.

  • 새 환경을 만들 때만 Private Service Connect를 사용 설정할 수 있습니다. Private Service Connect를 사용하도록 기존 환경을 전환할 수 없습니다.

  • 해당 환경은 비공개 IP 환경이어야 합니다. VPC 피어링이 사용되지 않으면 Cloud SQL 인스턴스 및 내부 Cloud Composer 네트워크에 대해 CIDR 범위를 지정할 필요가 없습니다.

  • 일반 사용자용 Private Service Connect 사용 중지 조직 정책 제약조건이 SERVICE_PRODUCER 엔드포인트를 거부하는 경우에는 Private Service Connect로 환경을 만들 수 없습니다. 이 정책은 PSC가 있는 기존 Cloud Composer 환경에 영향을 주지 않습니다. 이 정책이 사용 설정되어도 이러한 환경이 작동할 수 있습니다.

환경을 만들 때 Private Service Connect 사용 설정

Console

Private Service Connect를 사용하여 환경을 만들려면 비공개 IP 환경을 만들 때 Private Service Connect 연결 유형을 선택하세요. 그런 후 Private Service Connect 연결에 대해 서브네트워크를 지정합니다.

비공개 IP 환경을 만들 때 다음을 수행합니다.

  1. 네트워크 구성 섹션에서 네트워크 구성 표시 항목을 펼칩니다.

  2. 네트워킹 유형 섹션에서 비공개 IP 환경 옵션을 선택하여 비공개 IP 환경을 만듭니다.

  3. Composer 연결 섹션에서 Private Service Connect를 선택합니다.

  4. Composer 연결 서브네트워크 드롭다운 목록에서 Private Service Connect 엔드포인트의 서브네트워크를 선택합니다.

    해당 환경의 서브네트워크를 사용할 수 있습니다.

    또는 다른 서브네트워크를 지정할 수 있습니다. 이렇게 하면 PSC 엔드포인트의 IP 주소가 선택되는 CIDR 범위를 더 세부적으로 제어할 수 있습니다. 이 범위는 여러 Cloud Composer 환경에 공유될 수 있습니다. 각 환경에는 하나의 IP 주소가 필요합니다.

  5. 비공개 IP 환경의 다른 매개변수를 지정하세요.

gcloud

Private Service Connect로 환경을 만들려면 비공개 IP 환경을 만들 때 --connection-subnetwork 인수를 사용합니다. 그런 후 Private Service Connect 연결에 대해 서브네트워크를 지정합니다.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.8.2-airflow-2.7.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.
  • ENVIRONMENT_PSC_SUBNETWORK를 Private Service Connect 엔드포인트의 서브네트워크 URI로 바꿉니다.

    해당 환경의 서브네트워크를 사용할 수 있습니다.

    또는 다른 서브네트워크를 지정할 수 있습니다. 이렇게 하면 PSC 엔드포인트의 IP 주소가 선택되는 CIDR 범위를 더 세부적으로 제어할 수 있습니다. 이 범위는 여러 Cloud Composer 환경에 공유될 수 있습니다. 각 환경에는 하나의 IP 주소가 필요합니다.

예를 들면 다음과 같습니다.

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.8.2-airflow-2.7.3 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

environments.create API 요청을 생성합니다. 환경 리소스에서 Private Service Connect 연결의 구성 매개변수를 지정합니다.

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.8.2-airflow-2.7.3"
    },
    "nodeConfig": {
      "network": "ENVIRONMENT_NETWORK",
      "subnetwork": "ENVIRONMENT_SUBNETWORK"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • ENVIRONMENT_NETWORK를 환경의 네트워크의 URI로 바꿉니다.
  • ENVIRONMENT_SUBNETWORK를 환경의 서브네트워크의 URI로 바꿉니다.
  • ENVIRONMENT_PSC_SUBNETWORK을 PSC 엔드포인트의 서브네트워크 URI로 바꿉니다.

    해당 환경의 서브네트워크를 사용할 수 있습니다.

    또는 다른 서브네트워크를 지정할 수 있습니다. 이렇게 하면 PSC 엔드포인트의 IP 주소가 선택되는 CIDR 범위를 더 세부적으로 제어할 수 있습니다. 이 범위는 여러 Cloud Composer 환경에 공유될 수 있습니다. 각 환경에는 하나의 IP 주소가 필요합니다.

예를 들면 다음과 같습니다.

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {

    "softwareConfig": {
      "imageVersion": "composer-2.8.2-airflow-2.7.3"
    },
    "nodeConfig": {
      "network": "projects/example-project/global/networks/default",
      "subnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

Terraform

환경을 만들 때 private_environment_config 블록의 cloud_composer_connection_subnetwork 필드에서 Private Service Connect를 사용 설정합니다.

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {
      image_version = "composer-2.8.2-airflow-2.7.3"
    }

    node_config {
      network = "ENVIRONMENT_NETWORK"
      subnetwork = "ENVIRONMENT_SUBNETWORK"

    }

    private_environment_config {
      // Other private IP environment parameters
      cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
  }
}

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • ENVIRONMENT_NETWORK를 환경의 네트워크의 URI로 바꿉니다.
  • ENVIRONMENT_SUBNETWORK를 환경의 서브네트워크의 URI로 바꿉니다.
  • ENVIRONMENT_PSC_SUBNETWORK을 PSC 엔드포인트의 서브네트워크 URI로 바꿉니다.

    해당 환경의 서브네트워크를 사용할 수 있습니다.

    또는 다른 서브네트워크를 지정할 수 있습니다. 이렇게 하면 PSC 엔드포인트의 IP 주소가 선택되는 CIDR 범위를 더 세부적으로 제어할 수 있습니다. 이 범위는 여러 Cloud Composer 환경에 공유될 수 있습니다. 각 환경에는 하나의 IP 주소가 필요합니다.

예를 들면 다음과 같습니다.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    environment_size = "ENVIRONMENT_SIZE_SMALL"

    software_config {
      image_version = "composer-2.8.2-airflow-2.7.3"
    }

    node_config {
      network = "projects/example-project/global/networks/default"
      subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    private_environment_config {
      // Other private IP environment parameters
      enable_private_endpoint = "true"
      cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
 }
}

다음 단계