SYSTEM$PROVISION_PRIVATELINK_ENDPOINT

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 함수는 Snowflake VPC 또는 VNet에 프라이빗 연결 엔드포인트를 프로비저닝해, 프라이빗 연결을 사용해 Snowflake가 외부 서비스에 연결할 수 있게 해요.

출처: SYSTEM$PROVISION_PRIVATELINK_ENDPOINT

본문

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 함수는 Snowflake VPC 또는 VNet에 프라이빗 연결 엔드포인트를 프로비저닝해, 프라이빗 연결을 사용해 Snowflake가 외부 서비스에 연결할 수 있게 해요. 엔드포인트는 Snowflake 계정을 호스팅하는 클라우드 플랫폼에 따라 서비스 엔드포인트 또는 리소스 엔드포인트일 수 있어요.

참고: Snowflake 계정이 Azure 정부 지역(government region)에 있으면 공급자 리소스 ID는 정부 구독의 리소스 ID여야 해요. 정부 지역에 대한 자세한 내용은 U.S. SnowGov Regions를 참조해요.

Business Critical 기능: 이 기능에는 Business Critical(또는 그 이상)이 필요해요. 업그레이드 문의는 Snowflake 지원팀에 문의하세요.

구문 (Syntax)

AWS:

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '<provider_service_name>',
  '<host_name>'
)

Azure:

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '<provider_resource_id>',
  '<host_name>',
  [, '<subresource>' ]
)

Google Cloud:

SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '<target_service_id>',
  '<host_name>'
)

인자 (Arguments)

AWS:

  • 'provider_service_name' — 연결할 외부 서비스 또는 리소스를 지정해요. 예를 들어 Amazon API Gateway의 경우 com.amazonaws.us-west-2.execute-api, Amazon S3의 경우 com.amazonaws.us-west-2.s3. 참고: Snowflake 지역과 다른 지역의 VPC 엔드포인트 서비스에 연결할 때는 VPC 엔드포인트 서비스가 Snowflake 지역을 지원하는지 확인하세요. 이 값을 AWS에서 검색하는 방법에 대한 정보는 Provision private connectivity endpoints를 참조해요.
  • 'host_name' — VPC 또는 VNet의 리소스에 접근할 완전 정규화된 호스트 이름을 지정해요. 이 값은 포트 번호를 포함하지 않으며, 외부 서비스에 연결하도록 하는 Snowflake 객체에서 지정한 값과 일치해야 해요. 예로는 bedrock-runtime.us-west-2.amazonaws.com 및 *.s3.us-west-2.amazonaws.com가 있어요. 외부 스테이지와 외부 볼륨에 프라이빗 연결을 사용할 때 host_name은 특정 AWS S3 버킷을 지정하는 대신 와일드카드를 사용해야 해요.

Azure:

  • 'provider_resource_id' — VPC 또는 VNet의 리소스에 대한 완전 정규화된 식별자를 지정해요.
  • 'host_name' — VPC 또는 VNet의 리소스에 접근할 완전 정규화된 호스트 이름을 지정해요. 외부 함수의 아웃바운드 프라이빗 연결 호스트 이름 예는 Azure Portal, Azure ARM template 항목을 참조해요.
  • 'subresource' — Azure 리소스의 하위 리소스 이름을 지정해요. 이 인자는 Azure Private Link Service 및 Azure API Management Service에는 필요하지 않아요. 지원되는 모든 값은 Sub-resource 표를 참조해요.

Google Cloud:

  • 'target_service_id' — 연결할 서비스 첨부 ID(사용자 지정 서비스에) 또는 지역 Google API 엔드포인트를 지정해요.
  • 'host_name' — 리소스에 접근할 완전 정규화된 호스트 이름을 지정해요. 참고: 대상 서비스 ID가 지역 Google API 엔드포인트일 때 호스트 이름 값은 대상 서비스 ID 값과 일치해야 해요.

반환 (Returns)

엔드포인트가 성공적으로 프로비저닝되었음을 알리는 상태 메시지, 또는 엔드포인트가 성공적으로 프로비저닝되지 않은 이유에 대한 세부 사항 및 지침을 반환해요.

접근 제어 요구 사항 (Access control requirements)

계정 관리자(ACCOUNTADMIN 역할을 가진 사용자)만 이 함수를 호출할 수 있어요.

사용 메모 (Usage notes)

  • 기존 프라이빗 연결 엔드포인트의 호스트 이름만 수정할 수 있어요. 다른 속성을 수정하려면 엔드포인트를 프로비저닝 해제(deprovision)한 다음 새 엔드포인트를 프로비저닝해야 해요. 호스트 이름 변경에 대한 자세한 내용은 SYSTEM$SET_PRIVATELINK_ENDPOINT_HOSTNAME을 참조해요.
  • 이 함수는 클라우드 플랫폼(Snowflake 외부)에서 프라이빗 연결 엔드포인트를 프로비저닝하는 프로세스에 의존하므로 실행하는 데 약 5분이 걸릴 수 있어요.
  • 프라이빗 엔드포인트 한도에 대한 자세한 내용은 Scaling considerations를 참조해요.

예제 (Examples)

AWS:

외부 S3 서비스에 대한 아웃바운드 프라이빗 연결을 설정해요:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.us-west-2.s3', '*.s3.us-west-2.amazonaws.com' );

Microsoft Azure:

Snowflake on Microsoft Azure가 Microsoft Azure VNet의 Microsoft Azure API Management 서비스에 연결할 수 있도록 프라이빗 엔드포인트를 프로비저닝해요:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api',
  'aztest1-external-function-api.azure.net',
  'Gateway'
  );

외부 네트워크 접근을 사용해 Snowflake on Microsoft Azure가 외부 서비스에 연결할 수 있도록 프라이빗 엔드포인트를 프로비저닝해요:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  '/subscriptions/11111111-2222-3333-4444-5555555555/resourceGroups/leorg1/providers/Microsoft.Sql/servers/myserver',
  'testdb.database.windows.net',
  'sqlServer'
  );

Google Cloud:

게시된 서비스에 연결해요:

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
  'projects/my-project/regions/us-west2/serviceAttachments/my-http-server',
  'my-http-server.com'
);

더 알아보기 (Learn more)

  • SYSTEM$SET_PRIVATELINK_ENDPOINT_HOSTNAME
  • 시스템 함수 (System functions)
  • 시스템 제어 함수 (System Control)
  • 프라이빗 연결 엔드포인트 (Private connectivity endpoints)