클라이언트 연결 리디렉션하기

클라이언트 리디렉션을 사용하면 비즈니스 연속성 및 재해 복구를 위해, 또는 계정을 다른 리전이나 클라우드 플랫폼으로 마이그레이션할 때 클라이언트 연결을 다른 리전 의 Snowflake 계정으로 리디렉션할 수 있습니다.

이 항목의 내용:

클라이언트 리디렉션 소개

클라이언트 리디렉션은 Snowflake 연결 오브젝트를 통해 구현됩니다. 연결 오브젝트는 Snowflake에 연결하기 위해 Snowflake 클라이언트와 함께 사용하는 보안 연결 URL 을 저장합니다.

연결 URL의 호스트 이름은 일반적인 도메인 이름 외에도 조직 이름과 연결 오브젝트 이름으로 구성됩니다.

organization_name-connection_name.snowflakecomputing.com

이 호스트 이름은 연결할 계정을 지정하지 않습니다. 계정 관리자는 해당 계정에서 기본 연결 로 사용할 연결을 지정하여 사용할 계정을 결정합니다. 연결 URL을 사용하여 Snowflake에 연결할 때, 기본 연결을 포함한 계정에 연결하는 것입니다.

리전 또는 클라우드 플랫폼에서 중단이 발생하고 중단이 기본 연결이 있는 계정에 영향을 미치는 경우, 관리자는 다른 리전 또는 클라우드 플랫폼의 다른 계정에서 기본 연결로 사용하도록 연결을 승격할 수 있습니다.

이 중단을 통해 동일한 연결 URL을 계속 사용하여 Snowflake에 연결할 수 있습니다. Snowflake는 새로 승격된 연결이 있는 계정(중단의 영향을 받는 리전 또는 클라우드 플랫폼 외부의 계정)에 대한 연결 URL을 확인합니다.

참고

기본 및 보조 연결을 저장하는 Snowflake 계정은 다른 리전 에 호스팅해야 합니다.

클라이언트 리디렉션 흐름

  1. 클라이언트 연결을 위한 연결 URL을 만들려면 이 항목의 클라이언트 리디렉션 구성하기 에 있는 단계를 완료하십시오. 여기에는 기본 연결 및 연결된 보조 연결 만들기가 포함됩니다.

  2. 연결 URL을 사용하여 연결하도록 Snowflake 클라이언트를 업데이트합니다. 이 항목의 연결 URL 사용하기 에 지원되는 클라이언트 및 연결 세부 정보 목록이 있습니다.

  3. 기본 연결이 있는 리전에서 서비스가 중단되는 경우 이 항목의 클라이언트 연결 리디렉션하기 에 있는 단계를 완료해 보조 연결로 리디렉션하는 연결 URL을 업데이트하십시오.

  4. 중단 문제가 해결되면 클라이언트 연결 리디렉션하기 의 단계를 완료하여 클라이언트 연결을 원래 기본 연결로 다시 리디렉션합니다.

다음 다이어그램은 같은 조직에 있긴 하지만, 같거나 다른 클라우드 플랫폼에서 서로 다른 리전(Region ARegion B)에 있는 두 계정에 대한 클라이언트 리디렉션 흐름을 나타낸 것입니다.

기본 연결은 Region AAccount 1 에 있습니다. 연결 URL을 사용하는 Snowflake 클라이언트는 Account 1 에 연결합니다.

일반 클라이언트 연결

Region A 의 서비스 중단으로 인해 클라이언트 연결이 실패했습니다.

실패한 클라이언트 연결

Region B 에서 Account 2 의 연결은 기본 연결로 작동하도록 승격됩니다. 연결 URL을 사용하는 Snowflake 클라이언트는 이제 Account 2 에 연결합니다.

리디렉션된 클라이언트 연결

다음 SQL 문은 클라이언트 리디렉션 워크플로를 거칩니다. 이 항목의 이후 섹션에서 각 단계를 자세히 설명합니다.

일반 클라이언트 연결: 클라이언트 리디렉션 구성

원본 계정에서 기본 연결 만들기

새 기본 연결을 만들고 조직의 다른 계정에 대한 장애 조치를 활성화합니다. 장애 조치를 위해 활성화된 각 계정은 기본 연결이 있는 계정과는 다른 리전에 있어야 합니다.

장애 조치를 위해 활성화되는 각 계정에 대한 SHOW REPLICATION ACCOUNTS 의 출력에 있는 account_name 열에 유의하십시오.

원본 계정에서 다음 문을 실행합니다.

-- Create a new primary connection
CREATE CONNECTION myconnection;

-- View accounts in your organization that are enabled for replication
SHOW REPLICATION ACCOUNTS;

-- Configure failover accounts for the primary connection
ALTER CONNECTION myconnection
  ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;

-- View the details for the connection
SHOW CONNECTIONS;
Copy

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결이 활성화된 경우에는 연결 URL에 대한 DNS CNAME 레코드를 만들고 관리해야 합니다. 자세한 내용은 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 구성하기 섹션을 참조하십시오.

대상 계정에서 실행됨

기본 연결에 연결된 보조 연결을 만듭니다. 보조 연결의 이름은 기본 연결과 같은 이름이어야 합니다.

CREATE CONNECTION myconnection
  AS REPLICA OF myorg.myaccount1.myconnection;
Copy

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결이 활성화된 경우에는 연결 URL에 대한 DNS CNAME 레코드를 만들거나 업데이트해야 합니다. 자세한 내용은 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 수정하기 섹션을 참조하십시오.

원본 리전에서 중단 발생: 장애 조치

기본 연결이 있는 리전에서 중단이 발생하면 다른 리전에서 기본 연결의 역할을 하도록 보조 연결을 승격하십시오.

대상 계정에서 실행됨
ALTER CONNECTION myconnection PRIMARY;
Copy

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결이 활성화된 경우에는 연결 URL에 대한 DNS CNAME 레코드를 만들거나 업데이트해야 합니다. 자세한 내용은 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 수정하기 섹션을 참조하십시오.

중단이 해결됨: 장애 복구

중단이 해결되면 다시 기본 연결의 역할을 하도록 원래 기본 연결을 승격하십시오.

원본 계정에서 실행됨

기본 연결로 승격하려는 연결이 있는 계정에서 다음 명령을 실행합니다.

ALTER CONNECTION myconnection PRIMARY;
Copy

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결이 활성화된 경우에는 연결 URL에 대한 DNS CNAME 레코드를 만들거나 업데이트해야 합니다. 자세한 내용은 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 수정하기 섹션을 참조하십시오.

클라이언트 리디렉션 구성하기

이 섹션에서는 연결 그룹에서 기본 연결과 하나 이상의 보조 연결을 만드는 방법을 설명합니다.

전제 조건

계정에 대한 클라이언트 리디렉션 기능을 사용하려면 조직 관리자(ORGADMIN 역할을 가진 사용자)가 두 개 이상의 계정에 대해 복제를 활성화해야 합니다. 복제를 활성화하는 자세한 지침은 전제 조건: 조직의 계정에 대한 복제 활성화 섹션을 참조하십시오.

기본 연결 만들기

중요

Snowflake는 시스템에서 조직을 만들 때 고유하게 생성된 이름을 조직에 할당했습니다. 조직 이름은 연결 오브젝트에 정의되고 Snowflake 클라이언트가 계정에 액세스하려고 제출한 연결 URL의 일부입니다. 연결 오브젝트를 만들기 전에 Snowflake에서 조직 이름이 만족스러운지 확인하십시오. 시스템에서 조직 이름을 변경하려면 Snowflake 지원 에 문의하십시오.

Snowsight 또는 SQL 을 사용하여 원본 계정에 기본 연결을 만들 수 있습니다.

Snowsight를 사용하여 기본 연결과 보조 연결 만들기

Snowsight 를 사용하여 연결을 만들려면 다음 단계를 완료하십시오.

참고

  • ACCOUNTADMIN 역할을 가진 사용자만 Snowsight 를 사용하여 연결을 생성할 수 있습니다.

  • 대상 계정에 ACCOUNTADMIN 역할을 가진 사용자로 로그인한 상태여야 합니다. 그렇지 않은 경우 로그인하라는 메시지가 표시됩니다.

  1. Snowsight 에 로그인하고 Admin » Accounts 로 이동합니다.

  2. Client Redirect 를 선택합니다.

  3. + Connection 을 선택합니다.

  4. Target Account 를 선택합니다.

  5. Connection Name 상자에 다음 요구 사항을 충족하는 연결 이름을 입력합니다.

    • 알파벳 문자로 시작해야 하며 문자, 십진수(0~9), 밑줄(_)만 포함할 수 있습니다.

    • 조직의 연결 이름 및 계정 이름에서 고유해야 합니다.

  6. Create Connection 을 선택합니다.

SQL을 사용하여 기본 연결 만들기

참고

ACCOUNTADMIN 역할을 가진 사용자만 이 섹션의 SQL 명령을 실행할 수 있습니다.

  1. CREATE CONNECTION 명령을 사용하여 새 기본 연결을 만듭니다. 각 기본 연결의 이름은 조직의 모든 연결 및 계정 이름에서 고유해야 합니다.

    연결 이름은 Snowflake 계정에 연결하는 데 사용되는 연결 URL의 일부로 포함됩니다.

    예를 들어, myconnection 으로 명명된 연결을 만드는 방법은 다음과 같습니다.

    CREATE CONNECTION myconnection;
    
    Copy
  2. ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS 문을 사용하여 이 기본 연결을 수정합니다. 이 연결(즉, 보조 연결)에 대한 장애 조치 옵션을 저장할 수 있는 조직의 계정이 나열된 쉼표로 구분된 목록을 제공합니다.

    보조 연결을 저장하는 모든 계정은 기본 연결을 저장하는 계정과 다른 리전에 호스팅해야 합니다. 클라이언트 리디렉션만 리전 전체에서 성공적으로 작동합니다. 예를 들어 같은 리전에서 account1 에서 account2 로 클라이언트 연결을 리디렉션하려고 하면 클라이언트 리디렉션이 작동하지 않습니다.

    복제를 위해 활성화된 조직의 전체 계정 목록을 보려면 SHOW REPLICATION ACCOUNTS 를 실행하십시오.

    예를 들어, myorg 조직의 myaccount2myaccount3 계정이 각각 myconnection 연결의 보조 연결을 저장하도록 허용하십시오.

    ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
    
    Copy
  3. 연결에 대한 세부 정보를 보려면 SHOW CONNECTIONS 명령을 실행하십시오.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

보조 연결 만들기

CREATE CONNECTION … AS REPLICA OF 를 사용하여 기본 연결에 연결된 하나 이상의 계정에서 보조 연결을 만듭니다. 기본 연결 만들기 의 ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS 문에 지정된 계정에서만 보조 연결을 만들 수 있습니다.

각 대상 계정에서 CREATE CONNECTION … AS REPLICA OF 문을 실행하여 지정된 기본 연결의 복제본을 생성합니다.

중요

각 보조 연결은 기본 연결과 이름이 같아야 합니다. 연결 이름은 연결 URL에 포함됩니다.

보조 연결을 만들려는 대상 계정에서 이 섹션의 SQL 문을 실행합니다.

참고

ACCOUNTADMIN 역할을 가진 사용자만 이 섹션의 SQL 명령을 실행할 수 있습니다.

  1. SHOW CONNECTIONS 명령을 실행하여 모든 연결을 확인합니다. 기본 연결에 대한 primary 열의 값을 복사합니다. 다음 단계에서 보조 연결을 만들 때 이 값을 사용할 것입니다.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy
  2. CREATE CONNECTION … AS REPLICA OF 명령을 실행하여 보조 연결을 만듭니다.

    예를 들어, myorg.myaccount1.myconnection 기본 연결에 연결된 myconnection 이라는 이름의 보조 연결을 만듭니다. AS REPLICA OF 뒤에 기본 연결의 정규화된 이름(이전 단계의 SHOW CONNECTIONS 출력에서 ​​복사한 이름)을 붙여넣습니다.

    CREATE CONNECTION myconnection
      AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
    
    Copy
  3. SHOW CONNECTIONS 명령을 실행하여 보조 연결이 생성되었는지 확인합니다.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 구성하기

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결이 활성화된 경우에는 네트워크 관리자가 연결 URL에 대한 DNS 레코드를 만들고 관리해야 합니다. 네트워크 관리자는 CNAME 레코드, 별칭 레코드 또는 네트워크 아키텍처 구성을 기반으로 한 별칭을 사용할 수 있습니다.

다른 모든 계정의 경우, Snowflake는 DNS 레코드를 만들고 관리합니다. 일관성을 위해, 다음 예에서는 CNAME 레코드를 사용합니다.

이러한 단계에서는 AWS PrivateLink를 예로 사용하며, Snowflake 계정이 Azure Private Link 또는 Google Cloud Private Service Connect를 사용하는 경우 그 단계는 동일합니다.

  1. 클라이언트 리디렉션이 활성화된 계정 중 하나에서 SHOW CONNECTIONS를 실행합니다. 예를 들어 myaccount1myaccount2 에 대해 AWS PrivateLink가 활성화되어 있다고 가정합니다.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    |--------------------|-------------------------------|---------------------|-------------------|-----------------|---------------|-------------------------------|-------------------------------------|-------------------------------------------|-------------------|-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

    CONNECTION_URL 열에서 이 명령의 출력은 myaccount1 또는 myaccount2 에서 SYSTEM$GET_PRIVATELINK_CONFIG 함수를 호출할 때 privatelink-connection-urls 목록과 일치해야 합니다. (다음 단계에 표시된 것처럼) 이 목록에는 privatelink 세그먼트로 형식이 지정된 연결 URL이 이미 있습니다. 선택적으로 이 단계에서 명령을 실행하거나 함수를 호출할 수 있습니다. 함수를 호출하는 경우 추가로 수정하지 않고 URL을 그대로 사용합니다.

  2. CONNECTION_URL 열 값을 기록하고 비공개 연결을 지원하는 두 개의 URL과 OCSP 를 만듭니다.

    1. snowflakecomputing.com (이 예에서는 myorg-myconnection.privatelink.snowflakecomputing.com) 바로 앞에 있는 URL에 privatelink 세그먼트를 추가합니다.

    2. URL(이 예에서는 ocsp.myorg-myconnection.privatelink.snowflakecomputing.com) 시작 부분에 ocsp 세그먼트를 추가합니다.

  3. DNS 공급자가 제공하는 도구를 사용하여 연결 URL과 OCSP URL의 CNAME 레코드를 만듭니다.

    • 수정된 CONNECTION_URL 열 값을 사용하여 도메인(또는 별칭)을 설정합니다.

    • 연결 URL이 기본 Snowflake 계정 URL로 확인되도록 레코드를 구성합니다. 선택한 URL 형식을 기반으로 클라우드 리전과 AWS PrivateLink에 대한 모든 URL 세그먼트를 포함해야 합니다. 이것은 기본 계정 URL이며 연결 URL에 대한 클라이언트 연결이 리디렉션할 위치입니다.

    • OCSP URL이 Azure 계정의 비공개 엔드포인트 IP 주소 또는 AWS 계정의 비공개 엔드포인트 ID 값으로 확인되도록 레코드를 구성합니다.

    • 장애 조치의 경우 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 수정하기 에 표시된 대로 연결 URL이 보조 계정 URL을 가리키도록 DNS 설정을 수동으로 업데이트해야 합니다. 마찬가지로, 비공개 엔드포인트 IP 주소 또는 비공개 엔드포인트 ID 값을 가리키도록 OCSP 설정을 업데이트해야 합니다.

      예:

      myaccount1.us-west-2.privatelink.snowflakecomputing.com.
      ocsp.myaccount1.us-west-2.privatelink.snowflakecomputing.com.
      
      Copy

      또는 조직 및 계정 이름 URL을 사용합니다.

      예:

      myorg-myaccount1.privatelink.snowflakecomputing.com.
      ocsp.myorg-myaccount1.privatelink.snowflakecomputing.com.
      
      Copy

      꼭 포함해야 하는 후행 마침표에 유의하십시오.

사용자는 다음 연결 URL 형식을 사용하여 Snowflake에 연결합니다.

organization_name-connection_name.privatelink.snowflakecomputing.com

여기서

organization_name

Snowflake 조직의 이름입니다. 사용자가 연결하는 Snowflake 계정은 이 조직에 포함됩니다.

connection_name

연결 오브젝트의 이름입니다.

자세한 내용은 다음을 참조하십시오.

연결 URL 사용하기

이 섹션에서는 다양한 Snowflake 클라이언트의 구성에서 연결 URL을 참조하기 위한 지침을 제공합니다.

지원되는 Snowflake 클라이언트

클라이언트 리디렉션은 SnowsightSnowflake Classic Console 에서 지원됩니다. 또한 다음 Snowflake 클라이언트 버전 이상의 버전에서는 클라이언트 리디렉션도 지원합니다.

Snowflake 클라이언트

최소 지원 버전

SnowSQL

1.1.82

Python용 Snowflake 커넥터

1.8.3

Node.js 드라이버

1.2.0

Go Snowflake 드라이버

1.2.0

.NET 드라이버

1.0.0

JDBC 드라이버

3.8.4

ODBC 드라이버

2.19.4

Snowpark

모든 버전

Snowflake 클라이언트 구성하기

Snowflake에 연결할 때 연결 URL에 다음 호스트 이름을 사용합니다.

호스트 이름: organization_name-connection_name.snowflakecomputing.com

여기서

organization_name

Snowflake 조직의 이름입니다. 사용자가 연결하는 Snowflake 계정은 이 조직에 포함됩니다.

connection_name

연결 오브젝트의 이름입니다.

중요

Snowflake 서비스에 비공개 연결

Snowflake 서비스에 비공개 연결을 사용하는 고객은 snowflakecomputing.com 바로 앞의 URL에 privatelink 세그먼트를 추가해야 합니다.

organization_name-connection_name.privatelink.snowflakecomputing.com

Snowsight

app.snowflake.com 의 계정 이름 필드에 다음을 입력합니다.

<organization-name>-<connection-name>
Copy

예:

myorg-myconnection
Copy

organization-connection 을 사용하여 로그인할 때 Snowsight 는 현재 기본 연결의 특정 리전과 로케이터로 이동합니다. 중단 중에 연결이 리디렉션되면 사용자는 organization-connection 을 통해 다시 로그인하여 새 기본 연결에 연결해야 합니다.

Snowflake Classic Console

웹 브라우저에서 다음 URL을 입력합니다.

https://<organization_name>-<connection_name>.snowflakecomputing.com/
Copy

예:

https://myorg-myconnection.snowflakecomputing.com/
Copy

SnowSQL

SnowSQL config 파일의 accountname 연결 매개 변수에서 연결 URL의 호스트 이름을 지정합니다. config 파일에 대한 자세한 내용은 SnowSQL 구성하기 를 참조하십시오.

accountname = <organization_name>-<connection_name>
username = <username>
password = <password>
Copy

예:

accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
Copy

Python용 Snowflake 커넥터

connect 함수를 호출할 때 account 연결 매개 변수에서 연결 URL의 호스트 이름을 지정합니다. 자세한 내용은 Python 커넥터 APIPython Connector 사용하기 섹션을 참조하십시오.

con = snowflake.connector.connect (
      account = <organization_name>-<connection_name>
      user = <username>
      password = <password>
)
Copy

예:

con = snowflake.connector.connect (
      account = myorg-myconnection
      user = jsmith
      password = mySecurePassword
)
Copy

JDBC 드라이버

연결 문자열에서 연결 URL의 호스트 이름을 지정합니다. 자세한 내용은 JDBC 드라이버 구성하기 섹션을 참조하십시오.

jdbc:snowflake://<organization_name>-<connection_name>.snowflakecomputing.com/?user=<username>&password=<password>
Copy

예:

jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
Copy

ODBC 드라이버

Server 연결 매개 변수에서 연결 URL의 호스트 이름을 지정합니다. 연결 매개 변수에 대한 자세한 내용은 ODBC 구성 및 연결 매개 변수 를 참조하십시오.

[ODBC Data Sources]
<account_name> = SnowflakeDSIIDriver

[<dsn_name>]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = <organization_name>-<connection_name>.snowflakecomputing.com
Copy

예:

[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver

[client_redirect]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = myorg-myconnection.snowflakecomputing.com
Copy

Node.js 드라이버

account 연결 옵션에서 연결 URL의 호스트 이름을 지정합니다. 연결 매개 변수에 대한 자세한 내용은 Node.js 옵션 참조 를 참조하십시오.

var configuration = {
  username: '<username>',
  password: '<password>',
  account: <organization_name>-<connection_name>.
}

var connection = snowflake.createConnection(configuration)
Copy

예:

var configuration = {
  username: 'jsmith',
  password: 'mySecurePassword',
  account: myorg-myconnection.
}

var connection = snowflake.createConnection(configuration)
Copy

Go Snowflake 드라이버

Account 매개 변수에서 연결 URL의 호스트 이름을 지정합니다. 자세한 내용은 Go Snowflake 드라이버 섹션을 참조하십시오.

cfg := &Config{
  Account: "<organization_name>-<connection_name>",
  User: "<username>",
  Password: "<password>"
}

dsn, err := DSN(cfg)
Copy

예:

cfg := &Config{
  Account: "myorg-myconnection",
  User: "jsmith",
  Password: "mySecurePassword"
}

dsn, err := DSN(cfg)
Copy

Snowpark

Snowpark Python

세션을 설정하는 데 사용되는 Python 사전(dict)의 account 연결 매개 변수에서 연결 URL의 호스트 이름을 지정합니다. 세션 생성에 대한 자세한 내용은 Snowpark Python 세션 만들기 섹션을 참조하십시오.

connection_parameters = {
  "account": "<organization_name>-<connection_name>",
  "user": "<snowflake_user>",
  "password": "<snowflake_password>"
}
Copy

예:

connection_parameters = {
  "account": "myorg-myconnection",
  "user": "jsmith",
  "password": "mySecurePassword"
}
Copy
Snowpark Java

속성 파일의 URL 속성에 연결 URL을 지정하거나 세션 설정에 사용하는 Map 을 지정합니다. 세션 생성에 대한 자세한 내용은 Snowpark Java용 세션 만들기 섹션을 참조하십시오.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Copy

예:

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy
Snowpark Scala

속성 파일의 URL 속성에 연결 URL을 지정하거나 세션 설정에 사용하는 Map 을 지정합니다. 세션 생성에 대한 자세한 내용은 Snowpark Scala용 세션 만들기 섹션을 참조하십시오.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Copy

예:

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy

인증 및 클라이언트 리디렉션

보안 통합이 복제 되지 않은 경우 원본 계정과 각 대상 계정에서 사용자를 프로비저닝해야 합니다.

페더레이션 인증 & SSO

각 대상 계정에서 페더레이션 인증을 별도로 구성합니다. 페더레이션 인증을 사용하도록 Snowflake 구성하기 의 설정 옵션을 사용하여 IdP(ID 공급자) 세부 정보를 제공합니다.

참고

Snowflake에서는 장애 조치 시에 사용자가 올바른 계정으로 리디렉션되도록 계정 URL이 아닌 연결 URL을 사용하여 SAML 2.0 호환 IdP(ID 공급자)를 구성할 것을 권장합니다.

OAuth

각 대상 계정에서 OAuth의 보안 통합 오브젝트를 구성합니다. 보안 통합 오브젝트는 원본 계정의 동일한 오브젝트와 같아야 합니다. 지침은 다음과 같이 알맞은 항목을 참조하십시오.

보안 통합 속성을 검색하려면 원본 계정의 각 보안 통합에 대한 DESCRIBE INTEGRATION 명령을 쿼리하십시오. 그런 다음, CREATE INTEGRATION 명령을 실행하여 대상 계정에서 각 보안 통합을 다시 만듭니다.

OAuth 리디렉션 동작

클라이언트 연결 인증을 위해 Snowflake OAuth를 사용하고 연결 URL을 사용하여 Snowflake에 연결하려는 경우, 연결 URL이 다른 계정으로 리디렉션되면(예: 장애 조치의 경우) 다시 인증하라는 메시지가 표시됩니다. Snowflake OAuth 토큰은 특정 계정에서 유효하게 사용할 수 있습니다. 다른 리전의 계정을 가리키도록 연결 URL이 업데이트되면 기존 OAuth 토큰이 유효하지 않게 됩니다.

장애 조치의 경우, 연결 URL이 새 계정으로 업데이트되면 invalid OAuth access token 오류가 발생하며 클라이언트의 연결이 끊깁니다. 연결을 다시 설정하려면 다시 인증하고 권한에 동의해야 합니다.

참고

해당 계정에 OAuth 보안 통합이 복제되는 경우 연결 URL이 새 계정으로 업데이트될 때 다시 인증하라는 메시지가 표시되지 않습니다. 자세한 내용은 OAuth 보안 통합 복제하기 섹션을 참조하십시오.

클라이언트 연결 리디렉션하기

기본 연결이 있는 리전에서 서비스 중단이 발생한 경우, 클라이언트 연결을 보조 연결을 저장하는 계정으로 리디렉션합니다.

기본 연결로 사용할 보조 연결 승격하기

리디렉션을 시작하려면 ALTER CONNECTION 을 사용해 사용 가능한 리전에서 보조 연결이 기본 연결의 역할을 하도록 승격해야 합니다. 동시에, 이전의 기본 연결은 보조 연결이 됩니다.

승격할 현재 보조 연결을 포함한 대상 계정에서 이 섹션의 SQL 문을 실행합니다.

예:

-- view all connections
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+

-- promote the secondary connection to serve as the primary connection
ALTER CONNECTION myconnection PRIMARY;

-- verify that the former secondary connection was promoted successfully
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Copy

Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 수정하기

클라이언트 연결을 보조 계정으로 리디렉션하려면 네트워크 관리자가 Snowflake 서비스에 대한 비공개 연결을 위한 DNS 설정 구성하기 에서 만든 DNS 설정을 수정해야 합니다.

DNS 공급자가 제공하는 도구를 사용하여 연결 URL의 DNS 설정을 수정합니다.

계정이 호스팅되는 리전 및 클라우드 플랫폼과 AWS PrivateLink, Azure Private Link 또는 Google Cloud Private Service Connect를 위한 지원을 식별하는 추가 세그먼트를 포함하여, 새 기본 연결을 저장하는 계정의 전체 Snowflake 계정 URL로 대상 호스트 이름을 설정합니다. 이것은 연결 URL에 대한 클라이언트 연결이 지금 리디렉션될 계정 이름입니다. DNS 설정을 업데이트할 때 비공개 연결 OCSP URL을 포함해야 합니다.

예:

myaccount1.us-east-1.privatelink.snowflakecomputing.com.
ocsp.myaccount1.us-east-1.privatelink.snowflakecomputing.com.
Copy

(꼭 포함해야 하는 후행 마침표에 유의하십시오.)

참고

비공개 연결과 클라이언트 리디렉션이 Snowsight에서 작동하도록 구성할 수 있습니다. DNS 업데이트에 SYSTEM$GET_PRIVATELINK_CONFIG 함수 출력의 Snowsight 값이 포함되어 있어야 합니다. 자세한 내용은 비공개 연결 및 Snowsight 를 참조하십시오.

연결 URL이 업데이트되었는지 확인하기

연결 URL이 업데이트되었는지 확인하려면 현재 연결의 리전을 확인할 수 있습니다. 연결 URL을 사용하여 Snowflake에 연결하고 CURRENT_REGION 함수를 실행합니다.

SELECT CURRENT_REGION();
Copy

연결 수정하기

Snowsight 또는 SQL을 사용하여 연결을 만든 후 연결의 대상 계정을 편집할 수 있습니다.

Snowsight를 사용하여 연결의 대상 계정 수정하기

연결을 생성한 후 연결의 대상 계정을 수정할 수 있지만, 연결 이름은 변경할 수 없습니다.

참고

  • 연결을 편집하려면 다음 계정에 대해 ACCOUNTADMIN 역할을 가진 사용자로 로그인해야 합니다.

    • 기본 연결이 있는 원본 계정.

    • 보조 연결이 있는 현재 대상 계정.

    • 기본 연결에 추가하려는 새 대상 계정.

  • Snowsight 를 사용하여 기본 연결에 대해 대상 계정을 하나만 추가할 수 있습니다. 대상 계정을 더 추가하려면 ALTER CONNECTION 명령을 사용하십시오.

  1. Snowsight 에 로그인하고 Admin » Accounts 로 이동합니다.

  2. Client Redirect 를 선택합니다.

  3. 편집하려는 연결을 찾습니다. 행의 마지막 열에서 More 메뉴()를 선택합니다.

SQL을 사용하여 연결의 대상 계정 수정하기

ALTER CONNECTION 명령을 사용하여 기본 연결의 대상 계정을 2개 이상 추가할 수 있습니다. 예를 보려면 를 참조하십시오.

연결 삭제하기

Snowsight 또는 SQL을 사용하여 연결을 삭제할 수 있습니다.

Snowsight를 사용하여 연결 삭제하기

연결을 삭제하려면 기본 연결이 있는 원본 계정에 대해 ACCOUNTADMIN 역할을 가진 사용자로 로그인해야 합니다.

  1. Snowsight 에 로그인하고 Admin » Accounts 로 이동합니다.

  2. Client Redirect 를 선택합니다.

  3. 삭제하려는 연결을 찾습니다. 행의 마지막 열에서 More 메뉴()를 선택합니다.

  4. Drop 을 선택한 다음 Drop Connection 을 선택합니다.

SQL을 사용하여 연결 삭제하기

DROP CONNECTION 명령을 사용하여 연결을 삭제할 수 있습니다.

  1. 대상 계정의 모든 보조 연결을 삭제합니다.

  2. 원본 계정의 기본 연결을 삭제합니다.

예를 보려면 를 참조하십시오.

클라이언트 리디렉션 모니터링하기

Snowsight 또는 SQL을 사용하여 조직 내 계정의 클라이언트 리디렉션 연결 및 사용량을 모니터링할 수 있습니다.

Snowsight 를 사용하여 클라이언트 리디렉션 모니터링하기

참고

  • ACCOUNTADMIN 역할을 가진 사용자만 Snowsight 를 사용하여 연결 세부 정보를 확인할 수 있습니다.

  • 대상 계정에 ACCOUNTADMIN 역할을 가진 사용자로 로그인한 상태여야 합니다. 그렇지 않으면 로그인하라는 메시지가 표시됩니다.

클라이언트 리디렉션 연결 세부 정보를 보려면 다음 단계를 완료하십시오.

  1. Snowsight 에 로그인하고 Admin » Accounts 로 이동합니다.

  2. Replication 을 선택한 다음 Client Redirect 를 선택합니다.

  3. 해당 세션에 활성 웨어하우스가 없으면 웨어하우스를 선택하라는 메시지가 표시됩니다.

검색 및 필터를 사용하여 특정 연결을 모니터링합니다.

  • 연결 이름으로 검색할 수 있습니다. 검색 아이콘 (검색) 상자에 연결 이름을 입력하여 결과를 필터링합니다.

  • 기본(To) 또는 보조(From) 연결을 기준으로 결과를 필터링하려면 Redirecting 을 선택하십시오.

  • 계정 이름을 기준으로 결과를 필터링하려면 계정 아이콘 (계정) 메뉴를 선택하십시오.

각 연결에 대한 다음 정보를 검토할 수 있습니다.

설명

Name

연결 이름입니다.

Redirecting

연결이 To 대상 계정인지 From 원본 계정인지 여부와 계정 이름을 나타냅니다.

이 열에 사용 가능한 대상 이 포함된 경우에는 보조 연결이 없습니다. 사용 가능한 대상 수는 기본 연결을 복제할 수 있는 대상 계정 수를 나타냅니다.

보조 연결이 2개 이상 있는 경우 각 연결은 별도의 행에 자세히 설명됩니다.

Usage

지난 7일 동안 연결이 사용된 횟수를 표시합니다. 해당 계정의 사용량 데이터를 보려면 대상 계정에 로그인해야 합니다.

Connection URL

Snowflake 클라이언트에 사용할 연결 URL입니다. 열에서 연결 URL을 선택하여 URL을 복사합니다.

SQL을 사용하여 클라이언트 리디렉션 모니터링하기

SHOW CONNECTIONS 명령과 LOGIN_HISTORY 함수를 사용하여 연결 세부 정보를 확인하고 사용량을 모니터링할 수 있습니다.

연결 세부 정보 보기

SHOW CONNECTIONS 명령을 사용하여 연결 이름과 세부 정보를 검색할 수 있습니다.

SHOW CONNECTIONS;
Copy

반환 결과:

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2023-07-05 08:57:11.143 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2023-07-08 09:15:11.143 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|

사용자가 사용한 연결 URL 확인하기

테이블 함수의 LOGIN_HISTORY , LOGIN_HISTORY_BY_USER 패밀리를 쿼리하여 지난 7일 이내에 사용자의 로그인 활동을 확인합니다. 출력은 어떤 사용자와 Snowflake 클라이언트가 연결 URL을 사용하고 있는지 나타냅니다. REPORTED_CLIENT_TYPE 및 REPORTED_CLIENT_VERSION 열에는 Snowflake에 대한 각 연결에 사용되는 클라이언트와 버전이 표시되고, CONNECTION 열에는 사용되는 연결 URL이 표시됩니다(있는 경우).

참고

클라이언트가 연결 URL이 아닌 계정 URL로 구성된 ID 공급자(IdP)를 통해 인증하는 경우, IdP는 인증이 완료된 후 클라이언트를 계정 URL로 연결합니다. 이 로그인 이벤트의 CONNECTION 열은 NULL입니다. 이 항목의 인증 및 클라이언트 리디렉션 섹션을 참조하십시오.

예를 들어, 지난 72시간 동안 현재 역할이 모니터링하도록 허용된 모든 사용자의 로그인 이벤트를 100개까지 검색합니다.

SELECT event_timestamp, user_name, client_ip, reported_client_type, is_success, connection
  FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(
    DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),
    CURRENT_TIMESTAMP()))
  ORDER BY EVENT_TIMESTAMP;
Copy

클라이언트 리디렉션의 현재 제한 사항

  • 연결 URL과 OAuth 통합을 사용하는 클라이언트 연결은 OAuth 보안 통합이 해당 계정에 복제되지 않을 경우 연결 URL이 다른 계정을 가리키도록 업데이트될 때 재인증이 필요합니다. 자세한 내용은 OAuth 리디렉션 동작 섹션을 참조하십시오.

  • 웹 브라우저는 브라우저 캐시로 인해 리디렉션하는 데 몇 분 정도 걸릴 수 있습니다.

    리디렉션이 작동하는지 확인해야 하는 경우 다른 클라이언트 로 Snowflake에 연결할 수 있습니다.

    또는 브라우저 캐싱 문제를 방지하기 위해 새 비공개 브라우저 윈도우(예: Google Chrome의 시크릿 모드)를 엽니다. 비공개 또는 시크릿 모드에서 일부 웹 브라우저는 여전히 데이터를 캐시할 수 있습니다. 브라우저 캐시 사용을 방지하려면 열려 있는 모든 개인 브라우저 윈도우와 탭을 닫은 후에 새 개인 브라우저 윈도우를 여십시오.

  • Snowsight 를 사용하여 대상 계정을 하나만 추가할 수 있습니다. 허용된 장애 조치 계정 목록에 대상 계정을 2개 이상 추가하려면 ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS 명령을 사용하십시오.