SYSTEM$PROVISION_PRIVATELINK_ENDPOINT
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT
SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 함수는 Snowflake VPC 또는 VNet에 프라이빗 연결 엔드포인트를 프로비저닝해, 프라이빗 연결을 사용해 Snowflake가 외부 서비스에 연결할 수 있게 해요.
본문
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)