Snowflake 전송을 위한 비공개 연결 구성

이 가이드에서는 비공개 연결을 구성하여 Snowflake에서 BigQuery로 비공개 데이터 전송을 만드는 방법을 보여줍니다. 비공개 데이터 전송을 사용하면 비공개 네트워크 내에서 한 소스에서 다른 소스로 데이터를 전송할 수 있으며, 공개 인터넷을 통해 데이터를 전송할 때 보안 위험을 줄일 수 있습니다.

다음 섹션에서는 Snowflake 전송을 만들기 전에 비공개 연결을 구성하는 데 필요한 단계를 보여줍니다.

비공개 전송은 Amazon Web Services (AWS), Microsoft Azure, Google Cloud에서 호스팅되는 Snowflake 인스턴스에 대해 지원됩니다.

Snowflake 계정을 클라우드 제공업체에 연결하는 비공개 링크를 만듭니다. 자세한 내용은 다음 옵션 중 하나를 선택하세요.

AWS

Snowflake 계정을 AWS 계정에 연결하도록 AWS PrivateLink 구성 AWS 계정에 Snowflake 전송에 필요한 Amazon S3 스테이징 버킷이 포함되어 있어야 합니다.

Azure

Azure Private Link를 구성하여 Azure Virtual Network (VNet)를 Azure의 Snowflake VNet에 연결합니다. Azure 계정에 Snowflake 전송에 필요한 Blob 스테이징 버킷이 포함되어야 합니다.

Google Cloud

Private Service Connect를 구성하여 가상 프라이빗 클라우드 (VPC) 네트워크 서브넷을 Google Cloud에 호스팅된 Snowflake 계정에 연결합니다. Google Cloud Google Cloud 에는 Snowflake 전송에 필요한 Cloud Storage 스테이징 버킷이 있어야 합니다.

Cross-Cloud Interconnect 또는 HA VPN 설정

AWS 또는 Azure에서 Cross-Cloud Interconnect 또는 HA VPN을 설정합니다. 이 단계는Google Cloud에서 호스팅하는 Snowflake 계정에는 필요하지 않습니다.

AWS

고가용성 VPN을 사용하면 암호화된 VPN 터널을 통해 데이터를 전송할 수 있습니다. 비공개 Snowflake 전송에 HA VPN을 사용하려면 Google Cloud 와 AWS 간에 HA VPN 연결 만들기를 참고하세요.

Cross-Cloud Interconnect 연결은 클라우드 제공업체 간에 전용 비공개 링크를 만들며 지연 시간 요구사항이 낮은 대규모 데이터 전송에 적합합니다. 프라이빗 Snowflake 전송에 Cross-Cloud Interconnect를 사용하려면 AWS에 연결을 참고하세요.

Azure

고가용성 VPN을 사용하면 암호화된 VPN 터널을 통해 데이터를 전송할 수 있습니다. 비공개 Snowflake 전송에 HA VPN을 사용하려면 Google Cloud 와 Azure 간에 HA VPN 연결 만들기를 참고하세요.

Cross-Cloud Interconnect 연결은 클라우드 제공업체 간에 전용 비공개 링크를 만들며 지연 시간 요구사항이 낮은 대규모 데이터 전송에 적합합니다. 비공개 Snowflake 전송에 Cross-Cloud Interconnect를 사용하려면 Azure에 연결을 참고하세요.

프록시 VM 만들기

비공개 연결을 완료하려면 데이터가 공개 인터넷에 도달하지 않고 데이터 소스 간의 연결을 완료하는 프록시 VM이 필요합니다. 이 단계는 AWS, Azure 또는 Google Cloud에서 호스팅되는 Snowflake 인스턴스에 필요합니다.

Snowflake 비공개 전송을 위한 프록시 VM을 만들고 구성하려면 다음을 수행하세요.

  1. 소비자 VPC 네트워크 내에 하나 이상의 Compute Engine VM 인스턴스를 만듭니다.
  2. HAProxy 또는 Nginx와 같은 TCP 프록시 소프트웨어를 다운로드하고 다음을 구성합니다.
    1. 포트를 지정합니다. 예를 들면 443입니다.
    2. 모든 수신 TCP 트래픽을 Snowflake 인스턴스의 비공개 호스트 이름과 포트로 전달합니다.
  3. 소비자 VPC 네트워크에 구성된 DNS를 통해 Snowflake 비공개 호스트 이름을 확인하도록 VM을 구성합니다.
  4. 다음과 같이 내부 패스 스루 부하 분산기를 설정합니다.
    1. 프록시 VM을 관리형 인스턴스 그룹 (MIG)으로 그룹화
    2. VM 인스턴스 그룹 백엔드로 내부 패스 스루 네트워크 부하 분산기 설정

서비스 연결 만들기

Private Service Connect를 사용하여 네트워크 연결을 만들고 서비스를 게시합니다. 이 단계는 AWS, Azure 또는 Google Cloud에서 호스팅되는 Snowflake 인스턴스에 필요합니다.

서비스 연결은 BigQuery 데이터 세트와 동일한 리전에 있어야 합니다.

서비스에서 명시적 승인 (connection-preferenceACCEPT_MANUAL로 설정됨)을 사용하는 경우 Snowflake 비공개 데이터 전송에 사용되는 서비스 계정에 다음 IAM 권한이 있어야 합니다.

  • compute.serviceAttachments.get
  • compute.serviceAttachments.update
  • compute.regionOperations.get

서비스 연결을 만든 후 서비스 연결 URI를 기록해 둡니다. Snowflake 전송 구성을 만들 때 이 URI가 필요합니다.

엔드포인트 만들기

AWS 또는 Azure 계정에서 엔드포인트를 만듭니다. 이 단계는Google Cloud에서 호스팅하는 Snowflake 계정에는 필요하지 않습니다.

AWS

AWS에서 Amazon S3에 연결되는 VPC 엔드포인트를 만듭니다. 자세한 내용은 인터페이스 VPC 엔드포인트를 사용하여 AWS 서비스에 액세스를 참고하세요.

Azure

Azure의 스토리지 계정에서 비공개 엔드포인트를 구성합니다. 자세한 내용은 Azure Storage에 비공개 엔드포인트 사용을 참고하세요.

Storage Transfer Service에는 *.blob.core.microsoft.net 엔드포인트가 필요합니다. *.dfs.core.microsoft.net 엔드포인트는 지원되지 않습니다.

생성되면 엔드포인트의 IP 주소를 기록해 둡니다. 다음 섹션에서 부하 분산기를 만들 때 IP 주소를 지정해야 합니다.

네트워크 부하 분산기 만들기

하이브리드 연결로 리전 내부 프록시 네트워크 부하 분산기 (NLB)를 설정합니다. 이전 섹션에서 만든 Amazon S3 VPC 엔드포인트 또는 Azure Storage 비공개 엔드포인트로 트래픽을 라우팅하도록 부하 분산기를 만들 수 있습니다. 자세한 내용은 하이브리드 연결로 리전 내부 프록시 네트워크 부하 분산기 설정을 참고하세요.

NLB 등록

네트워크 NLB를 만든 후 Storage Transfer Service의 서비스 디렉터리에 등록합니다. 자세한 내용은 서비스 디렉터리에 NLB 등록을 참고하세요.

서비스 디렉터리 링크를 확인합니다. Snowflake 전송 구성을 만들 때 서비스의 자체 링크가 필요합니다.

비공개 Snowflake 전송 구성 만들기

Snowflake 전송 만들기 전송 구성을 설정할 때는 다음을 수행하세요.

콘솔

  • 비공개 네트워크 사용에서 True를 선택합니다.
  • PSC 서비스 연결에 서비스 연결 URI를 입력합니다. 서비스 연결 URI를 찾는 방법에 대한 자세한 내용은 게시된 서비스의 세부정보 보기를 참고하세요. 서비스 연결 URI는 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT 형식입니다.
  • 비공개 네트워크 서비스의 경우 NLB 서비스의 자체 링크를 입력합니다. projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME 형식을 사용합니다.

bq

  • use_private_network 매개변수를 TRUE로 설정합니다.
  • service_attachment 매개변수에는 서비스 연결 URI를 지정합니다. 서비스 연결 URI를 찾는 방법에 대한 자세한 내용은 게시된 서비스의 세부정보 보기를 참고하세요. 서비스 연결 URI는 projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT 형식입니다.
  • private_network_service 매개변수의 경우 NLB 서비스의 자체 링크를 제공합니다. projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME 형식을 사용합니다.