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

클라이언트 리디렉션을 사용하면 비즈니스 연속성 및 재해 복구를 위해, 또는 계정을 다른 리전이나 클라우드 플랫폼으로 마이그레이션할 때 클라이언트 연결을 다른 리전 의 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 에 연결합니다.

Normal client connections

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

Failed client connections

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

Redirected client connections

다음 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;

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

대상 계정에서 실행됨

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

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

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

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

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

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

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

중단이 해결됨: 장애 복구

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

원본 계정에서 실행됨

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

ALTER CONNECTION myconnection PRIMARY;

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

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

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

전제 조건

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

참고

계정 관리자(ACCOUNTADMIN 역할 사용자)만 이 섹션의 SQL 명령을 실행할 수 있습니다.

기본 연결 만들기

조심

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

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

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

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

    CREATE CONNECTION myconnection;
    
  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;
    
  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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    

보조 연결 만들기

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

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

중요

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

보조 연결을 만들려는 대상 계정에서 이 섹션의 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
  2. CREATE CONNECTION … AS REPLICA OF 명령을 실행하여 보조 연결을 만듭니다.

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

    CREATE CONNECTION myconnection
      AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
    
  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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    

Snowflake 서비스에 대한 비공개 연결을 위한 DNS CNAME 레코드 구성하기

Snowflake 계정에 대해 Snowflake 서비스에 비공개 연결 이 활성화된 경우에는 네트워크 관리자가 연결 URL에 대한 DNS CNAME 레코드를 만들고 관리해야 합니다. 다른 모든 계정의 경우, Snowflake는 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
  2. CONNECTION_URL 열 값을 기록합니다. snowflakecomputing.com (이 예에서는 myorg-myconnection.privatelink.snowflakecomputing.com) 바로 앞에 있는 URL에 privatelink 세그먼트를 추가합니다.

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

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

    • 계정이 호스팅되는 리전 및 클라우드 플랫폼과 AWS PrivateLink를 위한 지원을 식별하는 추가 세그먼트를 포함하여, 기본 연결을 저장하는 계정의 전체 Snowflake 계정 URL로 대상 호스트 이름을 설정합니다. 이것은 연결 URL에 대한 클라이언트 연결이 리디렉션될 계정 이름입니다.

      예:

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

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

      예:

      myorg-myaccount1.privatelink.snowflakecomputing.com.
      

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

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

organization_name-connection_name.privatelink.snowflakecomputing.com

여기서:

organization_name

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

connection_name

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

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

연결 URL 사용하기

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

지원되는 Snowflake 클라이언트

클라이언트 리디렉션은 Snowsight: Snowflake 웹 인터페이스Snowflake 클래식 웹 인터페이스 에서 지원됩니다. 또한 다음 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: Snowflake 웹 인터페이스

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

<organization-name>-<connection-name>

예:

myorg-myconnection

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

Snowflake 클래식 웹 인터페이스

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

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

예:

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

SnowSQL

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

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

예:

accountname = myorg-myconnection
username = jsmith
password = mySecurePassword

Python용 Snowflake 커넥터

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

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

예:

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

JDBC 드라이버

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

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

예:

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

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

예:

[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver

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

Node.js 드라이버

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

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

var connection = snowflake.createConnection(configuration)

예:

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

var connection = snowflake.createConnection(configuration)

Go Snowflake 드라이버

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

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

dsn, err := DSN(cfg)

예:

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

dsn, err := DSN(cfg)

Snowpark

Snowpark Python

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

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

예:

connection_parameters = {
  "account": "myorg-myconnection",
  "user": "jsmith",
  "password": "mySecurePassword"
}
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

예:

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
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

예:

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

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

원본 계정과 각 대상 계정에서 사용자가 프로비저닝되어야 합니다.

페더레이션 인증 & SSO

각 대상 계정에서 페더레이션 인증을 별도로 구성합니다. 고급 SAML SSO기능 의 설정 옵션을 사용하여 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 오류가 발생하며 클라이언트의 연결이 끊깁니다. 연결을 다시 설정하려면 다시 인증하고 권한에 동의해야 합니다.

사용자가 사용한 연결 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 *
FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
ORDER BY EVENT_TIMESTAMP;

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

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

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

리디렉션을 시작하려면 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 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+

Snowflake 서비스에 대한 비공개 연결을 위한 DNS CNAME 레코드 수정하기

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

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

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

예:

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

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

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

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

select current_region();

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

  • AWS PrivateLink, Azure Private Link 또는 Google Cloud Private Service Connect URL을 통한 Snowsight 에 대한 비공개 연결은 현재 지원되지 않습니다.

  • 연결 URL과 OAuth 통합을 사용하는 클라이언트 연결은 연결 URL이 다른 계정을 가리키도록 업데이트될 때 재인증이 필요합니다. 자세한 내용은 이 항목의 OAuth 리디렉션 동작 섹션을 참조하십시오.

맨 위로 이동