이 페이지에서는 내부 IP 주소로 Cloud Data Fusion 인스턴스를 만드는 방법을 보여줍니다. VPC 네트워크 또는 공유 VPC 네트워크에 인스턴스를 만듭니다.
비공개 Cloud Data Fusion 인스턴스는 다음과 같은 이점이 있습니다.
인스턴스에 대한 연결은 Google Cloud 프로젝트의 비공개 VPC 네트워크를 통해 설정됩니다. 네트워크 트래픽은 공개 인터넷을 통해 전달되지 않습니다.
온프레미스 네트워크가 Cloud VPN 또는 Cloud Interconnect를 통해 Google Cloud 비공개 VPC 네트워크에 연결되기 때문에 인스턴스가 관계형 데이터베이스와 같은 온프레미스 리소스에 연결할 수 있습니다. Google Cloud에 대한 액세스를 설정하지 않고 비공개 네트워크를 통해 데이터베이스와 같은 온프레미스 리소스에 안전하게 액세스할 수 있습니다.
목표
- VPC 네트워크 또는 공유 VPC 네트워크를 설정합니다.
- 테넌트 프로젝트에 Cloud Data Fusion 인스턴스를 배포하는 데 사용되는 IP 범위를 할당합니다.
- Cloud Data Fusion 비공개 인스턴스를 만듭니다.
- Cloud Data Fusion 인스턴스가 포함된 VPC와 연결된 테넌트 프로젝트가 포함된 VPC 사이에 VPC 네트워크 피어링을 설정합니다.
- 공유 VPC 네트워크의 경우 Identity and Access Management(IAM) 권한을 설정합니다.
- 비공개 인스턴스에 Cloud Data Fusion 버전 6.2.0 이하가 사용되는 경우 방화벽 규칙을 만듭니다.
- Dataproc 서브넷에서 비공개 Google 액세스를 사용 설정하여 다른 Google Cloud 서비스가 서로 내부적으로 통신할 수 있게 합니다.
시작하기 전에
- Cloud Data Fusion의 배포 아키텍처에 대한 자세한 내용은 네트워킹을 참조하세요.
VPC 네트워크 설정
아직 만들지 않았으면 VPC 네트워크 또는 공유 VPC 네트워크를 만듭니다.
VPC 네트워크를 설정하려면 IP 주소 범위를 할당해야 합니다.
IP 범위 할당
VPC 네트워크
공유 VPC 네트워크를 사용하지 않는 경우 Cloud Data Fusion는 사용자가 인스턴스를 만들 때 기본적으로 IP 범위를 할당합니다.
공유 VPC 네트워크
공유 VPC를 사용하려면 Cloud Data Fusion 인스턴스에 대해 IP 범위를 할당해야 합니다.
Cloud Data Fusion 인스턴스의 IP 범위를 할당하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
이름 열에서 비공개 Cloud Data Fusion 인스턴스를 만들려는 VPC 네트워크를 클릭합니다.
VPC 네트워크 세부정보 페이지가 열립니다.
비공개 서비스 연결을 클릭합니다. 메시지가 표시되면 API 사용 설정을 클릭하여 Service Networking API를 사용 설정합니다.
IP 범위 할당을 클릭합니다.
IP 범위에 이름을 지정합니다.
IP 범위에 대해 자동을 클릭합니다.
프리픽스 크기를
22
로 지정합니다.할당을 클릭합니다.
비공개 인스턴스 만들기
VPC 네트워크 또는 공유 VPC 네트워크에 비공개 Cloud Data Fusion 인스턴스를 만듭니다.
VPC 네트워크
VPC 네트워크에서 인스턴스를 만들려면 Google Cloud 콘솔이나 cURL을 사용합니다.
Google Cloud 콘솔을 사용하여 비공개 인스턴스를 만들면 Cloud Data Fusion에서 기본적으로 /22
IP 주소 범위를 할당합니다. 다른 IP 범위를 선택하려면 cURL 명령어를 사용해야 합니다.
콘솔
Data Fusion 인스턴스 만들기 페이지로 이동합니다.
인스턴스의 이름과 설명을 입력합니다.
인스턴스를 만들 리전을 선택합니다.
Cloud Data Fusion 버전과 버전을 선택합니다.
Dataproc에서 Cloud Data Fusion 파이프라인을 실행하는 데 사용할 Dataproc 서비스 계정을 지정합니다. 기본값인 Compute Engine 계정이 미리 선택되어 있습니다.
고급 옵션 메뉴를 확장하고 비공개 IP 사용 설정을 클릭합니다.
네트워크 필드에서 인스턴스를 만들려는 네트워크를 선택합니다.
만들기를 클릭합니다. 인스턴스 생성 프로세스가 완료되는 데 최대 30분이 걸립니다.
cURL
편의를 위해 다음 변수를 내보내거나 다음 명령어에 이러한 값을 직접 대체할 수 있습니다.
export PROJECT=PROJECT_ID
export LOCATION=REGION
export DATA_FUSION_API_NAME=datafusion.googleapis.com
인스턴스를 만들려면 해당 create()
메서드를 호출합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'
다음을 바꿉니다.
INSTANCE_ID
: 새 인스턴스가 가져와야 하는 ID 문자열입니다.NETWORK_NAME
: 비공개 인스턴스를 만들려는 VPC 네트워크의 이름입니다.IP_RANGE
: 할당한 IP 범위입니다. Google Cloud 콘솔에서 IP 범위를 찾으려면 VPC 네트워크 세부정보 > 비공개 서비스 연결 > 내부 IP 범위로 이동합니다.
공유 VPC 네트워크
공유 VPC 네트워크에서 인스턴스를 만들려면 Google Cloud 콘솔이 아닌 cURL을 사용합니다.
cURL
편의를 위해 다음 변수를 내보낼 수 있습니다. 또는 다음 명령어에서 이러한 값을 직접 대체할 수 있습니다.
export PROJECT=PROJECT_ID export LOCATION=REGION export DATA_FUSION_API_NAME=datafusion.googleapis.com
인스턴스를 만들려면 해당 create()
메서드를 호출합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "projects/SHARED_VPC_HOST_PROJECT_ID/global/networks/NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'
다음을 바꿉니다.
INSTANCE_ID
: 새 인스턴스가 가져와야 하는 ID 문자열입니다.SHARED_VPC_HOST_PROJECT_ID
: 공유 VPC 네트워크를 호스팅하는 프로젝트의 ID입니다.NETWORK_NAME
: 비공개 인스턴스를 만들려는 VPC 네트워크의 이름입니다.IP_RANGE
: 할당한 IP 범위입니다. Google Cloud 콘솔에서 IP 범위를 찾으려면 VPC 네트워크 세부정보 페이지 > 비공개 서비스 연결 > 내부 IP 범위로 이동합니다.
VPC 네트워크 피어링 설정
설계 환경에서 사용하는 Cloud Data Fusion 서비스(예: Wrangler, Connection Manager, Schema Validation)는 테넌트 프로젝트 VPC에서 소스 시스템으로의 네트워크 연결을 시작합니다. Cloud Data Fusion은 VPC 네트워크 피어링을 사용해서 인스턴스가 포함된 VPC 또는 공유 VPC에 대해 네트워크 연결을 설정합니다. VPC 네트워크 피어링을 사용하면 Cloud Data Fusion이 사용자의 자체 VPC 및 해당 콘텐츠를 사용해서 내부 IP 주소를 통해 네트워크의 리소스에 액세스할 수 있습니다. 다른 네트워크의 리소스에 연결하려면 연결 사용 사례 단계를 참조하세요.
다음 섹션에서는 개발자 네트워크와 Cloud Data Fusion 테넌트 프로젝트 네트워크 사이에 피어링 구성을 만드는 방법을 설명합니다.
테넌트 프로젝트 ID 가져오기
피어링 구성을 만들려면 테넌트 프로젝트 ID가 필요합니다.
Cloud Data Fusion 인스턴스 페이지로 이동합니다.
인스턴스 이름 열에서 인스턴스를 선택합니다.
인스턴스 세부정보 페이지에서 다음 단계에서 피어링 연결을 만들 때 필요한 테넌트 프로젝트 ID를 복사합니다.
피어링 연결 만들기
VPC 네트워크 피어링 페이지로 이동합니다.
연결 만들기 > 계속을 클릭합니다.
피어링 연결 만들기 페이지가 열리면 다음을 수행합니다.
- 내 피어링 연결의 이름을 입력합니다.
- VPC 네트워크에서 Cloud Data Fusion 인스턴스가 포함된 네트워크를 선택합니다.
- 피어링된 VPC 네트워크에 대해 다른 프로젝트 내를 선택합니다.
- 프로젝트 ID에 이 튜토리얼의 앞부분에서 확인한 테넌트 프로젝트 ID를 입력합니다.
VPC 네트워크 이름에서 네트워크를 선택하거나 INSTANCE_REGION-INSTANCE_ID를 입력합니다.
다음을 바꿉니다.
- INSTANCE_REGION: Cloud Data Fusion 인스턴스를 만든 리전입니다.
- INSTANCE_ID: Cloud Data Fusion 인스턴스의 ID입니다.
VPC 네트워크와 피어링된 VPC 네트워크 사이에 IPv4 및 IPv6 경로를 교환하려면 피어링 연결에 대해 인터넷 프로토콜 버전을 선택합니다. 자세한 내용은 VPC 네트워크 피어링을 참조하세요.
VPC 네트워크에서 테넌트 VPC 네트워크로 커스텀 경로를 내보낼 수 있도록 커스텀 경로 내보내기를 선택합니다.
공개 IPv4를 사용한 서브넷 경로를 VPC 네트워크로 가져오거나 내보내도록 허용할지 여부를 선택합니다.
만들기를 클릭합니다.
VPC 네트워크 피어링은 생성 직후 활성화됩니다.
IAM 권한 설정
VPC 네트워크
이 단계를 건너뛰고 방화벽 규칙 만들기로 이동합니다.
공유 VPC 네트워크
공유 VPC 네트워크에서 Cloud Data Fusion 인스턴스를 만들 경우 Compute 네트워크 사용자 역할을 다음 서비스 계정에 부여해야 합니다. 모든 서브넷에 대한 권한을 부여하려면 공유 VPC 호스트 프로젝트에 역할을 부여합니다.
액세스 권한을 더 세부적으로 제어하려면 호스트 프로젝트의 네트워크 뷰어 역할과 함께 특정 서브넷에 역할을 부여합니다.
- Cloud Data Fusion 서비스 계정:
service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
- Dataproc 서비스 계정:
service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com
PROJECT_NUMBER
는 Cloud Data Fusion 인스턴스가 포함된 Google Cloud 프로젝트의 번호입니다.
자세한 내용은 필요한 서비스 계정에 대한 액세스 부여를 참조하세요.
방화벽 규칙 만들기
VPC 네트워크에서 비공개 Cloud Data Fusion 인스턴스를 만들 때 지정한 IP 범위에서 들어오는 SSH 연결을 허용하는 방화벽 규칙을 만듭니다.
이 단계는 Cloud Data Fusion 6.2.0 이전 버전에서 필요합니다. 이를 통해 Cloud Data Fusion과 파이프라인을 실행하는 Dataproc 클러스터 간의 통신을 허용합니다.
Google Cloud 콘솔을 사용하거나 gcloud CLI를 사용하영 방화벽 규칙을 만들 수 있습니다.
콘솔
방화벽 규칙 만들기를 참조하세요.
gcloud
다음 명령어를 실행합니다.
gcloud compute firewall-rules create FIREWALL_NAME-allow-ssh --allow=tcp:22 --source-ranges=IP_RANGE --network=NETWORK_NAME --project=PROJECT_ID
다음을 바꿉니다.
FIREWALL_NAME
: 만들려는 방화벽 규칙의 이름입니다.IP_RANGE
: 할당한 IP 범위입니다.NETWORK_NAME
: 방화벽 규칙이 연결된 네트워크의 이름입니다. 비공개 인스턴스를 만든 VPC 네트워크의 이름입니다.PROJECT_ID
: VPC 네트워크를 호스팅하는 프로젝트의 ID입니다.
연결 사용 사례 단계
다음 섹션에서는 비공개 인스턴스에 대한 연결 관련 사용 사례를 설명합니다.
비공개 Google 액세스 사용 설정
내부 IP 주소를 통해 리소스에 액세스하려면 Cloud Data Fusion이 Dataproc 클러스터를 만들고 비공개 Google 액세스가 있는 서브넷에서 데이터 파이프라인을 실행해야 합니다. Dataproc 클러스터를 포함하는 서브넷에 대해 비공개 Google 액세스를 사용 설정해야 합니다.
- Dataproc 클러스터가 시작된 리전에 서브넷이 하나만 있으면 해당 서브넷에서 클러스터가 시작됩니다.
리전에 서브넷이 여러 개 있으면 Dataproc 클러스터를 시작하기 위해 비공개 Google 액세스가 있는 서브넷을 선택하도록 Cloud Data Fusion을 구성해야 합니다.
서브넷에 대해 비공개 Google 액세스를 사용 설정하려면 비공개 Google 액세스 구성을 참조하세요.
선택사항: 다른 소스에 연결
Cloud Data Fusion에서 비공개 인스턴스를 만든 후 다음 사용 사례와 같이 다른 소스에 연결할 수 있습니다.
- 다른 VPC 네트워크에서 실행되는 온프레미스 데이터베이스 및 시스템
- 자체 네트워크에서 비공개 모드로 실행되는 다른 Google Cloud 서비스(예: Cloud SQL)
- 공개 인터넷의 소스
선택사항: DNS 피어링 사용 설정
다음 경우에 DNS 피어링을 사용 설정합니다.
- Cloud Data Fusion이 IP 주소가 아닌 호스트 이름을 통해 시스템에 연결하는 경우
- 일부 SAP 배포와 같이 대상 시스템이 부하 분산기를 사용해서 배포된 경우
다음 단계
- Cloud Data Fusion의 보안 개념 알아보기
- 외부 네트워크의 리소스에 연결 알아보기
- 다른 주요 Cloud Data Fusion 개념 및 기능 알아보기
- Cloud Data Fusion 가격 책정 참조