비공개 IP 네트워킹 구성

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

이 페이지에서는 비공개 IP 환경에 대한 Google Cloud 프로젝트 네트워킹을 구성하는 방법을 설명합니다.

비공개 IP 환경의 경우 Cloud Composer는 개발자 환경의 관리형 Google Kubernetes Engine과 Cloud SQL VM에 비공개 IP(RFC 1918) 주소만 할당합니다.

옵션으로 비공개로 사용되는 공개 IP 주소IP 매스커레이드 에이전트를 사용하여 IP 주소 공간을 절약하고 RFC 1918 이외 주소를 사용할 수도 있습니다.

개발자 환경의 리소스에 연결하는 방법에 대한 자세한 내용은 비공개 IP를 참조하세요.

시작하기 전에

환경을 만들 수 있는 적절한 사용자 및 서비스 계정 권한이 있는지 확인합니다.

네트워크 요구사항 확인

프로젝트의 VPC 네트워크에서 다음 요구사항을 충족하는지 확인합니다.

  • 비공개 IP 블록 충돌이 없는지 확인합니다. VPC 네트워크와 설정된 VPC 피어에 Google 관리 테넌트 프로젝트의 VPC 네트워크와 겹치는 IP 블록이 있으면 Cloud Composer가 환경을 만들 수 없습니다. 각 리전에서 사용되는 기본값은 기본 IP 범위 표를 참조하세요.

  • Cloud Composer GKE 포드 및 서비스에 충분한 보조 IP 범위가 있는지 확인합니다. GKE는 IP 별칭 지정을 위한 보조 IP 범위를 검색합니다. GKE가 범위를 찾을 수 없으면 Cloud Composer가 환경을 만들 수 없습니다.

  • 서브네트워크의 보조 범위 수가 30개를 초과하지 않는지 확인합니다. 다음 사항을 고려하세요.

    • 비공개 IP 환경의 GKE 클러스터는 서브네트워크에 보조 범위 2개를 만듭니다. 같은 VPC 네트워크의 동일한 리전에 서브네트워크를 여러 개 만들 수 있습니다.
    • 지원되는 보조 범위 최대 수는 30개입니다. 각 비공개 IP 환경에는 Cloud Composer GKE 포드와 서비스용 보조 범위 두 개가 필요합니다.
  • 프로젝트 네트워크에서 단일 VPC 네트워크의 최대 연결 수 제한을 수용할 수 있는지 확인합니다. 만들 수 있는 비공개 IP Cloud Composer 환경의 최대 개수는 VPC 네트워크에 있는 기존 VPC 피어링 연결 수에 따라 달라집니다.

  • 각 비공개 IP 환경은 환경당 VPC 피어링을 최대 2개까지 사용합니다. Cloud Composer는 테넌트 프로젝트 네트워크의 VPC 피어링을 하나 만듭니다. 두 번째 피어링은 환경의 GKE 클러스터에서 생성되며 GKE 클러스터는 이 연결을 재사용할 수 있습니다.

네트워크, 서브네트워크, 네트워크 범위 선택

비공개 IP 환경의 네트워크 범위를 선택하거나 기본 범위를 사용합니다. 나중에 비공개 IP 환경을 만들 때 이러한 네트워크 범위를 사용합니다.

비공개 IP 환경을 만들려면 다음 정보가 필요합니다.

  • VPC 네트워크 ID
  • VPC 서브네트워크 ID
  • VPC 서브네트워크의 보조 IP 범위 2개:
    • pod의 보조 IP 범위
    • 서비스의 보조 IP 범위
  • 환경 구성요소의 IP 범위:

    • GKE 제어 영역 IP 범위. GKE 제어 영역의 IP 범위입니다.
      • 웹 서버 IP 범위.
    • 웹 서버 IP 범위. Airflow 웹 서버 인스턴스의 IP 범위입니다.
    • Cloud SQL IP 범위. Cloud SQL 인스턴스의 IP 범위.

각 리전에서 사용되는 기본값은 기본 IP 범위 표를 참조하세요.

기본 IP 범위

리전 GKE 제어 영역 IP 범위 웹 서버 IP 범위 Cloud SQL IP 범위
africa-south1 172.16.64.0/23 172.31.223.0/24 10.0.0.0/12
asia-east1 172.16.42.0/23 172.31.255.0/24 10.0.0.0/12
asia-east2 172.16.0.0/23 172.31.255.0/24 10.0.0.0/12
asia-northeast1 172.16.2.0/23 172.31.254.0/24 10.0.0.0/12
asia-northeast2 172.16.32.0/23 172.31.239.0/24 10.0.0.0/12
asia-northeast3 172.16.30.0/23 172.31.240.0/24 10.0.0.0/12
asia-south1 172.16.4.0/23 172.31.253.0/24 10.0.0.0/12
asia-south2 172.16.50.0/23 172.31.230.0/24 10.0.0.0/12
asia-southeast1 172.16.40.0/23 172.31.235.0/24 10.0.0.0/12
asia-southeast2 172.16.44.0/23 172.31.233.0/24 10.0.0.0/12
australia-southeast1 172.16.6.0/23 172.31.252.0/24 10.0.0.0/12
australia-southeast2 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
europe-central2 172.16.36.0/23 172.31.237.0/24 10.0.0.0/12
europe-north1 172.16.48.0/23 172.31.231.0/24 10.0.0.0/12
europe-southwest1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
europe-west1 172.16.8.0/23 172.31.251.0/24 10.0.0.0/12
europe-west10 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west12 172.16.62.0/23 172.31.224.0/24 10.0.0.0/12
europe-west2 172.16.10.0/23 172.31.250.0/24 10.0.0.0/12
europe-west3 172.16.12.0/23 172.31.249.0/24 10.0.0.0/12
europe-west4 172.16.42.0/23 172.31.234.0/24 10.0.0.0/12
europe-west6 172.16.14.0/23 172.31.248.0/24 10.0.0.0/12
europe-west8 172.16.60.0/23 172.31.225.0/24 10.0.0.0/12
europe-west9 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
me-central1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
me-west1 172.16.54.0/23 172.31.228.0/24 10.0.0.0/12
northamerica-northeast1 172.16.16.0/23 172.31.247.0/24 10.0.0.0/12
northamerica-northeast2 172.16.46.0/23 172.31.232.0/24 10.0.0.0/12
southamerica-east1 172.16.18.0/23 172.31.246.0/24 10.0.0.0/12
southamerica-west1 172.16.58.0/23 172.31.226.0/24 10.0.0.0/12
us-central1 172.16.20.0/23 172.31.245.0/24 10.0.0.0/12
us-east1 172.16.22.0/23 172.31.244.0/24 10.0.0.0/12
us-east4 172.16.24.0/23 172.31.243.0/24 10.0.0.0/12
us-east5 172.16.52.0/23 172.31.229.0/24 10.0.0.0/12
us-south1 172.16.56.0/23 172.31.227.0/24 10.0.0.0/12
us-west1 172.16.38.0/23 172.31.236.0/24 10.0.0.0/12
us-west2 172.16.34.0/23 172.31.238.0/24 10.0.0.0/12
us-west3 172.16.26.0/23 172.31.242.0/24 10.0.0.0/12
us-west4 172.16.28.0/23 172.31.241.0/24 10.0.0.0/12

(선택사항) Google API 및 서비스에 대한 연결 구성

옵션으로 private.googleapis.com 도메인에 속하는 여러 IP 주소를 통해 모든 트래픽을 Google API 및 서비스로 라우팅할 수 있습니다. 이 구성에서 환경은 Google Cloud 내에서만 라우팅할 수 있는 IP 주소를 통해 Google API 및 서비스에 액세스합니다.

비공개 IP 환경에서도 VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어가 포함된 환경 안내를 대신 참조하세요.

Cloud Composer 환경에서는 다음 도메인을 사용합니다.

  • *.googleapis.com은 다른 Google 서비스에 액세스하는 데 사용됩니다.

  • *.pkg.dev는 환경을 만들거나 업데이트할 때와 같은 환경 이미지를 가져오는 데 사용됩니다.

  • *.gcr.io GKE는 Cloud Composer 버전에 관계없이 Container Registry 도메인에 대한 연결이 필요합니다.

private.googleapis.com 엔드포인트에 대한 연결을 구성합니다.

도메인 DNS 이름 CNAME 레코드 A 레코드
*.googleapis.com googleapis.com. DNS 이름: *.googleapis.com.
리소스 레코드 유형: CNAME
표준 이름: googleapis.com.
리소스 레코드 유형: A
IPv4 주소: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11
*.pkg.dev pkg.dev. DNS 이름: *.pkg.dev.
리소스 레코드 유형: CNAME
표준 이름: pkg.dev.
리소스 레코드 유형: A
IPv4 주소: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11
*.gcr.io gcr.io. DNS 이름: *.gcr.io.
리소스 레코드 유형: CNAME
표준 이름: gcr.io.
리소스 레코드 유형: A
IPv4 주소: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11

DNS 규칙을 만들려면 다음 안내를 따르세요.

  1. 새 DNS 영역을 만들고 이 영역의 DNS 이름으로 DNS 이름을 사용합니다.

    예: pkg.dev.

  2. CNAME 레코드에 대한 레코드 세트를 추가합니다.

    예:

    • DNS 이름: *.pkg.dev.
    • 리소스 레코드 유형: CNAME
    • 표준 이름: pkg.dev.
  3. A 레코드를 사용하여 레코드 세트를 추가합니다.

    예:

    • 리소스 레코드 유형: A
    • IPv4 주소: 199.36.153.8, 199.36.153.9, 199.36.153.10, 199.36.153.11

자세한 내용은 Google API 및 서비스 비공개 연결 설정을 참조하세요.

(선택사항) 방화벽 규칙 구성

프로젝트에 묵시적인 방화벽 규칙을 재정의하는 규칙이나 기본 네트워크에서 미리 채워진 규칙을 수정하는 규칙과 같이 기본이 아닌 방화벽 규칙이 있는 경우에만 이 단계를 수행하세요.

예를 들어 모든 이그레스 트래픽을 거부하는 방화벽 규칙이 있는 경우 Cloud Composer가 환경을 만들지 못할 수 있습니다. 문제를 방지하려면 목록에 이어지고 전역 deny 규칙보다 우선순위가 높은 선택적인 allow 규칙을 정의합니다.

환경의 트래픽을 허용하도록 VPC 네트워크를 구성합니다.

  • VPC 네트워크의 규칙을 확인, 추가, 업데이트하는 방법을 알아보려면 방화벽 규칙 사용을 참조하세요.
  • 연결 도구를 사용하여 IP 범위 간 연결을 검증합니다.
  • 네트워킹 태그를 사용하여 액세스를 추가로 제한할 수 있습니다. 환경을 만들 때 이러한 태그를 설정할 수 있습니다.
설명 방향 작업 소스 또는 대상 프로토콜 포트
DNS 이그레스 허용 모든 대상(0.0.0.0/0) 또는 DNS 서버 IP 주소 TCP, UDP 53
Google API 및 서비스 이그레스 허용 Google API 및 서비스에 대해 선택한 도메인의 IP 주소 범위 기본값을 사용하는 경우 기본 도메인의 IP 주소를 참조하세요. TCP 443
환경의 클러스터 노드 이그레스 허용 환경의 서브네트워크 기본 IP 주소 범위 TCP, UDP 모두
환경의 클러스터 포드 이그레스 허용 환경의 서브네트워크에 있는 포드의 보조 IP 주소 범위 TCP, UDP 모두
환경 클러스터 제어 영역 이그레스 허용 GKE 제어 영역 IP 범위 TCP, UDP 모두
웹 서버 이그레스 허용 웹 서버 네트워크 IP 범위 TCP 3306, 3307

IP 범위를 가져오려면 다음 안내를 따르세요.

  • 포드, 서비스, 제어 영역 주소 범위는 환경 클러스터의 클러스터 페이지에서 확인할 수 있습니다.

    1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

      환경으로 이동

    2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

    3. 환경 구성 탭으로 이동합니다.

    4. 클러스터 세부정보 보기 링크를 클릭합니다.

  • 환경 구성 탭에서 환경의 웹 서버 IP 범위를 볼 수 있습니다.

  • 환경 구성 탭에서 환경의 네트워크 ID를 볼 수 있습니다. 서브네트워크의 IP 범위를 가져오려면 VPC 네트워크 페이지로 이동하고 네트워크 이름을 클릭하여 세부정보를 확인합니다.

    VPC 네트워크로 이동

VPC 기반 클러스터 구성

Cloud Composer는 환경에서 VPC 기반 GKE 클러스터를 지원합니다.

환경을 만들비공개 IP를 사용 설정하지 않고 별칭 IP를 사용하는 VPC 기반을 사용 설정하고 IP 할당과 같은 네트워킹을 구성할 수 있습니다.

Airflow 태스크가 비공개 IP를 통해 연결 가능한 다른 VM과 통신하려면 VPC 기반 클러스터가 필요합니다. 따라서 비공개 IP 환경을 구성하려면 VPC 기반도 사용 설정해야 합니다.

프록시 서버 설정 구성

환경에서 HTTP_PROXYHTTPS_PROXY 환경 변수를 설정할 수 있습니다. 이러한 표준 Linux 변수는 지정된 프록시로 트래픽을 라우팅하기 위해 환경 클러스터의 컨테이너에서 실행되는 웹 클라이언트에 사용됩니다.

NO_PROXY 변수는 기본적으로 Google 도메인 목록으로 설정되므로 프록시에서 제외됩니다. .google.com,.googleapis.com,metadata.google.internal. 이 구성을 사용하면 Google 서비스 트래픽을 처리하도록 프록시가 구성되지 않은 경우 HTTP_PROXYHTTPS_PROXY 환경 변수가 설정된 환경을 만들 수 있습니다.