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를 참조하세요.
Private Service Connect 및 VPC 피어링이 있는 환경
기본적으로 Cloud Composer 2는 Private Service Connect를 사용하므로, 환경을 만들 때 달리 지정하지 않는 한 VPC 피어링을 사용하지 않고도 비공개 IP 환경이 내부적으로 통신합니다.
VPC 피어링이 있는 환경을 사용해야 하는 특정 요구사항이 없는 경우 Private Service Connect가 있는 환경을 사용하는 것이 좋습니다.
시작하기 전에
- 환경을 만들 수 있는 적절한 사용자 및 서비스 계정 권한이 있는지 확인합니다.
- 프로젝트에 호환되지 않는 조직 정책이 정의되어 있지 않은지 확인합니다.
네트워크 요구사항 확인
프로젝트의 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 피어링 연결 수에 따라 달라집니다.
PSC가 있는 각 비공개 IP 환경은 환경당 하나의 VPC 피어링을 사용합니다. 이 VPC 피어링은 환경의 GKE 클러스터에서 생성되며 GKE 클러스터는 이 연결을 재사용할 수 있습니다. PSC가 있는 비공개 IP 환경의 경우 각 위치가 최대 75개의 비공개 클러스터를 지원할 수 있습니다.
VPC 피어링을 사용하는 각 비공개 IP 환경은 환경당 최대 2개의 VPC 피어링을 사용합니다. Cloud Composer는 테넌트 프로젝트 네트워크의 VPC 피어링을 하나 만듭니다. 두 번째 피어링은 환경의 GKE 클러스터에서 생성되며 GKE 클러스터는 이 연결을 재사용할 수 있습니다.
네트워크, 서브네트워크, 네트워크 범위 선택
비공개 IP 환경의 네트워크 범위를 선택하거나 기본 범위를 사용합니다. 나중에 비공개 IP 환경을 만들 때 이러한 네트워크 범위를 사용합니다.
비공개 IP 환경을 만들려면 다음 정보가 필요합니다.
- VPC 네트워크 ID
- VPC 서브네트워크 ID
- VPC 서브네트워크의 보조 IP 범위 2개:
- pod의 보조 IP 범위
- 서비스의 보조 IP 범위
환경 구성요소의 IP 범위:
환경에서 Private Service Connect를 사용하는 경우:
GKE 컨트롤 플레인 IP 범위. GKE 컨트롤 플레인의 IP 범위입니다.
환경에 GKE 플레인 IP 범위를 지정하면 GKE는 이 범위에 새 서브네트워크를 만들어 GKE 컨트롤 플레인과의 통신을 위한 IP 주소를 프로비저닝합니다. 그렇지 않으면 Cloud Composer 연결 서브네트워크 범위에 지정된 서브네트워크를 사용합니다.
Cloud Composer 연결 서브네트워크. Cloud Composer 연결 서브네트워크의 IP 범위입니다. IP 주소 범위는 두 개만 지정할 수 있습니다. 프로젝트의 여러 환경에서 이 범위를 사용할 수 있습니다. 기본적으로 이 범위는 환경의 서브네트워크 (VPC 서브네트워크 ID)입니다.
환경에서 VPC 피어링을 사용하는 경우:
- GKE 컨트롤 플레인 IP 범위. GKE 컨트롤 플레인의 IP 범위입니다.
- Cloud Composer 테넌트 네트워크의 IP 범위. Cloud Composer 테넌트 네트워크의 IP 범위입니다. 이 네트워크는 환경의 SQL 프록시 구성요소를 호스팅합니다.
Cloud SQL IP 범위. Cloud SQL 인스턴스의 IP 범위.
각 리전에서 사용되는 기본값은 기본 IP 범위 표를 참조하세요.
기본 IP 범위
Private Service Connect가 있는 환경
지역 | GKE 컨트롤 플레인 IP 범위 |
---|---|
africa-south1 | 172.16.64.0/23 |
asia-east1 | 172.16.42.0/23 |
asia-east2 | 172.16.0.0/23 |
asia-northeast1 | 172.16.2.0/23 |
asia-northeast2 | 172.16.32.0/23 |
asia-northeast3 | 172.16.30.0/23 |
asia-south1 | 172.16.4.0/23 |
asia-south2 | 172.16.50.0/23 |
asia-southeast1 | 172.16.40.0/23 |
asia-southeast2 | 172.16.44.0/23 |
australia-southeast1 | 172.16.6.0/23 |
australia-southeast2 | 172.16.56.0/23 |
europe-central2 | 172.16.36.0/23 |
europe-north1 | 172.16.48.0/23 |
europe-southwest1 | 172.16.58.0/23 |
europe-west1 | 172.16.8.0/23 |
europe-west10 | 172.16.62.0/23 |
europe-west12 | 172.16.62.0/23 |
europe-west2 | 172.16.10.0/23 |
europe-west3 | 172.16.12.0/23 |
europe-west4 | 172.16.42.0/23 |
europe-west6 | 172.16.14.0/23 |
europe-west8 | 172.16.60.0/23 |
europe-west9 | 172.16.46.0/23 |
me-central1 | 172.16.58.0/23 |
me-central2 | 172.16.64.0/23 |
me-west1 | 172.16.54.0/23 |
northamerica-northeast1 | 172.16.16.0/23 |
northamerica-northeast2 | 172.16.46.0/23 |
northamerica-south1 | 172.16.68.0/23 |
southamerica-east1 | 172.16.18.0/23 |
southamerica-west1 | 172.16.58.0/23 |
us-central1 | 172.16.20.0/23 |
us-east1 | 172.16.22.0/23 |
us-east4 | 172.16.24.0/23 |
us-east5 | 172.16.52.0/23 |
us-south1 | 172.16.56.0/23 |
us-west1 | 172.16.38.0/23 |
us-west2 | 172.16.34.0/23 |
us-west3 | 172.16.26.0/23 |
us-west4 | 172.16.28.0/23 |
VPC 피어링이 있는 환경
지역 | GKE 컨트롤 플레인 IP 범위 | Cloud Composer 테넌트 네트워크 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-central2 | 172.16.64.0/23 | 172.31.223.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 |
northamerica-south1 | 172.16.68.0/23 | 172.31.221.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 서비스에 액세스하는 데 사용됩니다.*.composer.cloud.google.com
은 환경의 Airflow 웹 서버에 액세스할 수 있도록 하는 데 사용됩니다. 이 규칙은 환경을 만들기 전에 적용되어야 합니다.- 대신 특정 리전에 대한 규칙을 만들 수 있습니다. 이렇게 하려면
REGION.composer.cloud.google.com
을 사용합니다.REGION
을 환경이 위치한 리전으로 바꿉니다(예:us-central1
).
- 대신 특정 리전에 대한 규칙을 만들 수 있습니다. 이렇게 하려면
(선택사항)
*.composer.googleusercontent.com
은 환경의 Airflow 웹 서버에 액세스할 때 사용됩니다. 이 규칙은 VPC 네트워크에서 실행되는 인스턴스에서 Airflow 웹 서버에 액세스하는 경우에만 필요하며 다른 경우에는 필요하지 않습니다. 이 규칙의 일반적인 시나리오는 VPC 네트워크 내에서 Airflow REST API를 호출하려는 경우입니다.- 대신 특정 환경에 대한 규칙을 만들 수 있습니다. 이렇게 하려면
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
을 사용합니다.ENVIRONMENT_WEB_SERVER_NAME
을 환경 Airflow UI URL의 고유한 부분으로 바꿉니다(예:bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
).
- 대신 특정 환경에 대한 규칙을 만들 수 있습니다. 이렇게 하려면
*.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
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
DNS 이름: *.composer.cloud.google.com. 리소스 레코드 유형: CNAME 표준 이름: composer.cloud.google.com. |
리소스 레코드 유형: A IPv4 주소: 199.36.153.8 , 199.36.153.9 , 199.36.153.10 , 199.36.153.11
|
*.composer.googleusercontent.com
(선택사항, 설명 참조) |
composer.googleusercontent.com. |
DNS 이름: *.composer.googleusercontent.com. 리소스 레코드 유형: CNAME 표준 이름: composer.googleusercontent.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 규칙을 만들려면 다음 안내를 따르세요.
새 DNS 영역을 만들고 이 영역의 DNS 이름으로 DNS 이름을 사용합니다.
예:
pkg.dev.
CNAME 레코드에 대한 레코드 세트를 추가합니다.
예:
- DNS 이름:
*.pkg.dev.
- 리소스 레코드 유형:
CNAME
- 표준 이름:
pkg.dev.
- DNS 이름:
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 | 모두 |
(환경에서 Private Service Connect를 사용하는 경우) 연결 서브네트워크 | 이그레스 | 허용 | Cloud Composer 연결 서브네트워크 범위 | TCP | 3306, 3307 |
(환경에서 VPC 피어링을 사용하는 경우) 테넌트 네트워크 | 이그레스 | 허용 | Cloud Composer 테넌트 네트워크 IP 범위 | TCP | 3306, 3307 |
IP 범위를 가져오려면 다음 안내를 따르세요.
포드, 서비스, 컨트롤 플레인 주소 범위는 환경 클러스터의 클러스터 페이지에서 확인할 수 있습니다.
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 구성 탭으로 이동합니다.
클러스터 세부정보 보기 링크를 클릭합니다.
환경 구성 탭에서 환경의 Cloud Composer 테넌트 네트워크 IP 범위를 볼 수 있습니다.
환경 구성 탭에서 환경의 서브네트워크 ID 및 Cloud Composer 연결 서브네트워크 ID를 확인할 수 있습니다. 서브네트워크의 IP 범위를 가져오려면 VPC 네트워크 페이지로 이동하고 네트워크 이름을 클릭하여 세부정보를 확인합니다.
프록시 서버 설정 구성
환경에서 HTTP_PROXY
및 HTTPS_PROXY
환경 변수를 설정할 수 있습니다. 이러한 표준 Linux 변수는 지정된 프록시로 트래픽을 라우팅하기 위해 환경 클러스터의 컨테이너에서 실행되는 웹 클라이언트에 사용됩니다.
NO_PROXY
변수는 기본적으로 Google 도메인 목록으로 설정되므로 프록시에서 제외됩니다.
.google.com,.googleapis.com,metadata.google.internal
. 이 구성을 사용하면 Google 서비스 트래픽을 처리하도록 프록시가 구성되지 않은 경우 HTTP_PROXY
및 HTTPS_PROXY
환경 변수가 설정된 환경을 만들 수 있습니다.