게이트웨이를 사용하여 수신 요청을 여러 엔드포인트 라우팅

단일 호스트 이름 뒤에 여러 서비스 엔드포인트를 노출하려는 경우 *게이트웨이*를 생성할 수 있습니다. 게이트웨이에는 공용 서비스 엔드포인트와 유사한 호스트 이름이 있습니다. 공용 엔드포인트에 대한 자세한 내용은 서비스 수신 구성 섹션을 참조하세요.

게이트웨이는 Snowflake 외부에서 들어오는 수신 요청 포함)을 하나 이상의 서비스 엔드포인트로 라우팅합니다. Gateway를 사용하면 다음을 수행할 수 있습니다.

  • 서비스 간 트래픽 분할: 여러 서비스가 동일한 호스트 이름을 공유하도록 허용할 수 있습니다. 라우팅은 각 서비스에 대해 지정된 백분율을 기준으로 수행됩니다. 이는 다음 시나리오에서 유용합니다.

    • A/B 테스트 시나리오: 원래 서비스를 계속 실행하면서 서비스를 업데이트하고 배포하도록 선택할 수 있습니다. 테스트를 위해 수신 요청의 일정 비율을 테스트를 위해 업데이트된 서비스로 라우팅하도록 선택할 수 있습니다.

    • 고가용성 시나리오: 각 컴퓨팅 풀이 다른 :ref:`배치 그룹 <label-SPCS_working_with_compute_pool_placement_group>`에서 생성되는 두 컴퓨팅 풀에 배포되는 고가용성 서비스가 있습니다. 게이트웨이를 사용하여 수신 요청을 분할하도록 선택할 수 있습니다.

  • 안정적인 URL : 각 게이트웨이에는 생성 시 할당된 호스트 이름이 있습니다. 호스트 이름은 게이트웨이 오브젝트의 수명 동안 변경되지 않습니다. 게이트웨이 오브젝트를 변경하여 다른 엔드포인트로 라우팅하거나 다른 비율로 구성할 수 있습니다. 변경 사항은 1분 이내에 적용됩니다.

다음 목록은 서비스 엔드포인트와 게이트웨이 간의 차이점을 보여줍니다.

  • 브라우저 보안: 서비스 엔드포인트는 외부 액세스 통합을 통한 브라우저 기반 액세스를 위해 CORS 구성(corsSettings) 및 클라우드 서비스 공급자(CSP) 헤더를 지원합니다. 게이트웨이는 현재 CORS 또는 CSP 헤더를 지원하지 않습니다.

  • 호출자 권한: 서비스 엔드포인트는 호출자 권한을 지원합니다. 게이트웨이는 현재 호출자 권한을 지원하지 않습니다.

  • 역할 기반 액세스 제어(RBAC ): 서비스 엔드포인트를 사용하는 경우 :ref:`서비스 역할 <label-spcs_manage_service_related_privileges_service_roles>`을 사용하여 액세스를 관리합니다. 게이트웨이를 사용하는 경우 게이트웨이 오브젝트에 대한 USAGE 권한을 부여하여 액세스를 관리합니다. 게이트웨이에 액세스하는 사용자에게는 기본 서비스 엔드포인트에 대한 서비스 역할이 필요하지 않습니다.

게이트웨이 라우팅은 지정된 정상 엔드포인트의 상대적 비율을 따릅니다. 게이트웨이의 장애 조치 동작에 대한 자세한 내용은 게이트웨이 장애 조치 동작 섹션을 참조하세요.

다음 섹션을 검토한 후 게이트웨이를 생성하고 변경할 수 있습니다. 게이트웨이 생성에 대한 자세한 내용은 CREATE GATEWAY 섹션을 참조하세요. 게이트웨이 변경에 대한 자세한 내용은 ALTER GATEWAY 섹션을 참조하세요.

액세스 제어 요구 사항

게이트웨이의 소유자 역할에는 다음 권한이 있어야 합니다.

권한

오브젝트

참고

CREATE GATEWAY

스키마

게이트웨이를 생성하는 데 필요합니다.

BIND SERVICE ENDPOINT

계정

서비스 엔드포인트를 게이트웨이에 바인딩하는 데 필요합니다.

USAGE

데이터베이스

게이트웨이가 포함된 데이터베이스에 액세스하는 데 필요합니다.

USAGE

스키마

게이트웨이가 포함된 스키마에 액세스하는 데 필요합니다.

USAGE

대상 엔드포인트

트래픽을 대상 엔드포인트로 라우팅하는 데 필요합니다.

MODIFY 또는 OWNERSHIP

게이트웨이

게이트웨이 구성을 변경하는 데 필요합니다.

USAGE, MODIFY 또는 OWNERSHIP

게이트웨이

게이트웨이 사양을 확인하는 데 필요합니다.

참고

게이트웨이를 나열할 때 Snowflake는 역할에 USAGE MODIFY 또는 OWNERSHIP 권한이 있는 게이트웨이만 표시합니다. 사용된 역할에는 게이트웨이를 포함하는 데이터베이스 및 스키마에 대한 USAGE 권한도 있어야 합니다.

게이트웨이 CREATE, ALTER, DROP 작업은 CREATE GATEWAY, ALTER GATEWAYDROP GATEWAY 섹션을 참조하세요.

구성

기본적으로 게이트웨이당 최대 5개의 엔드포인트를 얻을 수 있습니다. 엔드포인트를 추가하려면 지원팀에 문의하여 트래픽을 더 많은 엔드포인트로 분할하세요.

게이트웨이 장애 조치 동작

게이트웨이 장애 조치는 엔드포인트 A를 사용할 수 없거나 작동하지 않을 때 게이트웨이가 하나의 엔드포인트(엔드포인트 A)에서 다른 엔드포인트로 트래픽을 자동으로 리디렉션하는 프로세스입니다.

참고

Snowflake는 트래픽 분할이 0%인 엔드포인트로 장애 조치를 수행하지 않습니다. 엔드포인트에는 1% 이상의 트래픽 분할이 있어야 합니다.

사용 가능한 엔드포인트의 상대적 백분율이 적용됩니다.

하나의 엔드포인트(엔드포인트 A)에서 트래픽 분할이 1% 이상인 다른 엔드포인트로의 장애 조치는 다음 조건 중 하나라도 해당하는 경우에 발생합니다.

  • 엔드포인트 A의 서비스가 일시 중단되고 ``auto_resume``이 false로 설정됩니다.

  • 엔드포인트 A의 컴퓨팅 풀이 일시 중단되었습니다.

  • 엔드포인트 A의 서비스가 준비 상태 프로브에 실패합니다. 이는 최장 40초(캐시 새로 고침 빈도)마다 한 번씩 업데이트됩니다. 업데이트 시점에 트래픽이 증가 기간 없이 즉시 조정됩니다.

  • 엔드포인트 A의 서비스가 삭제됩니다.

  • 게이트웨이 소유자 역할이 엔드포인트 A에 대한 권한(USAGE 또는 OWNERSHIP)을 상실합니다.