아웃바운드 비공개 연결로 Apache Iceberg™ REST 카탈로그 통합 구성하기

이 항목에서는 오픈 소스 Apache Iceberg™ REST OpenAPI 사양<https://github.com/apache/iceberg/blob/main/open-api/rest-catalog-open-api.yaml>`_을 준수하는 원격 카탈로그에서 관리되는 :doc:/user-guide/tables-iceberg`에 :ref:`카탈로그 통합<label-tables_iceberg_catalog_integration_def>`을 구성하는 방법에 대해 설명합니다.

이 구성을 사용하면 카탈로그 통합으로 공용 인터넷 대신 비공개 IP 주소를 통해 원격 Iceberg REST 카탈로그에 연결할 수 있습니다.

다음 다이어그램은 Iceberg 테이블이 외부 Iceberg 카탈로그와의 카탈로그 통합을 사용하는 방법을 보여줍니다.

카탈로그 통합을 사용하는 Iceberg 테이블의 작동 방식

아웃바운드 비공개 연결 비용<label-private_connect_costs>`을 포함한 Snowflake의 아웃바운드 비공개 연결에 대한 일반 정보는 :doc:/user-guide/private-connectivity-outbound` 섹션을 참조하세요.

이 항목에서는 다음 카탈로그 유형에 대한 구성 단계를 다룹니다.

  • 일반 Iceberg REST 카탈로그

  • AWS Glue 데이터 카탈로그

  • Databricks Unity 카탈로그

참고

  • 비공개 연결은 AWS PrivateLink를 사용하는 AWS 및 Azure Private Link를 사용하는 Azure에서만 지원됩니다.

  • 비공개 연결은 동일한 클라우드 공급자 내에서만 사용할 수 있습니다. 카탈로그 및 Snowflake 배포는 동일한 클라우드 공급자에서 실행 중이어야 합니다.

  • 아웃바운드 비공개 연결을 사용하여 카탈로그 통합을 구성할 때는 카탈로그 제공 자격 증명이 지원되지 않습니다.

1단계: 카탈로그에 대한 비공개 연결 정보 수집

비공개 연결 정보를 수집하여 나중에 :ref:`Snowflake VPC 또는 VNet<label-tables_iceberg_configure_catalog_integration_rest_private_provision_endpoint>`에서 해당 비공개 연결 엔드포인트를 프로비저닝할 때 지정해야 합니다. 해당 비공개 연결 엔드포인트를 프로비저닝할 때 Snowflake 계정이 AWS에서 호스팅되는 경우 Snowflake에 AWS PrivateLink 엔드포인트를 생성하거나 Snowflake 계정이 Azure에서 호스팅되는 경우 Azure 비공개 엔드포인트를 생성합니다.

  • 카탈로그에 대한 비공개 연결 정보를 수집하려면 원격 REST Iceberg 카탈로그에 대한 설명서를 참조하세요.

    다음 예제는 AWS: ``com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef``의 AWS VPC 엔드포인트 서비스 ID입니다.

2단계: 비공개 연결 엔드포인트 프로비저닝

이 단계에서는 Snowflake VPC 또는 VNet에서 비공개 연결 엔드포인트를 프로비저닝하여 Snowflake가 비공개 연결을 사용하여 원격 Iceberg REST 카탈로그에 연결할 수 있도록 지원합니다.

  • 비공개 연결 엔드포인트를 프로비저닝하려면 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출합니다.

    이 시스템 함수에 대한 인자를 지정하는 방법에 대한 지침은 비공개 연결을 통해 연결할 원격 REST Iceberg 카탈로그에 대한 설명서를 참조하세요.

    다음 코드 블록은 AWS PrivateLink 엔드포인트를 프로비저닝하는 예제를 보여줍니다.

    SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
      'com.amazonaws.vpce.us-west-2.vpce-svc-0123456789abcdef',
      'my.catalog.com'
      );
    
    Copy

3단계: 엔드포인트 상태 확인하기

이 단계에서는 이전 단계에서 프로비저닝한 Snowflake VPC 또는 VNet에서 비공개 연결 엔드포인트의 엔드포인트 상태를 확인합니다.

  • 엔드포인트 상태를 확인하려면 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 시스템 함수를 호출합니다.

    SELECT SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO();
    
    Copy

    엔드포인트는 :code:`status`가 :code:`pending`에서 :code:`available`로 변경되면 사용할 수 있습니다.

4단계: 추가 카탈로그별 추가

카탈로그 유형에 대한 추가 구성 단계를 완료합니다.

참고

일부 카탈로그 또는 일부 유형의 비공개 연결 엔드포인트의 경우 연결을 승인하거나 카탈로그 서버 측에서 비공개 연결 엔드포인트를 허용 목록에 추가해야 합니다.

  • 추가 구성 단계를 완료하려면 원격 REST Iceberg 카탈로그에 대한 설명서를 참조한 후 :ref:`다음 단계<label-iceberg_rest_private_step3>`로 진행합니다.

5단계: 카탈로그 통합 만들기

이 단계에서는 비공개 연결을 활성화하기 위해 카탈로그 REST 엔드포인트에 대한 카탈로그 통합을 구성합니다.

  • 이 카탈로그 통합을 구성하려면 CREATECATALOGINTEGRATION 명령을 실행합니다.

    예:

    CREATE OR REPLACE CATALOG INTEGRATION iceberg_rest_catalog_cat_int_private
      CATALOG_SOURCE = ICEBERG_REST
      TABLE_FORMAT = ICEBERG
      REST_CONFIG = (
        CATALOG_URI = '<rest_api_endpoint_url>'
        CATALOG_API_TYPE = PRIVATE
        CATALOG_NAME = '<catalog_name>'
      )
      REST_AUTHENTICATION = (
        TYPE = OAUTH
        OAUTH_TOKEN_URI = '<token_server_uri>'
        OAUTH_CLIENT_ID = '<oauth_client_id>'
        OAUTH_CLIENT_SECRET = '<oauth_client_secret>'
        OAUTH_ALLOWED_SCOPES = ('all-apis', 'sql')
    )
    ENABLED = true;
    
    Copy

    중요

    아웃바운드 비공개 연결을 사용하려면 통합을 생성할 때 ``CATALOG_API_TYPE=PRIVATE``을 지정해야 합니다.

    지원되는 인증 방법을 포함한 자세한 내용은 CREATE CATALOG INTEGRATION(Apache Iceberg™ REST) 섹션을 참조하세요.

6단계: 카탈로그 통합 확인하기

(선택 사항) 7단계: 카탈로그 구성 업데이트하기

비공개 연결을 통해서만 액세스할 수 있도록 원격 카탈로그의 구성을 업데이트하는 것이 좋습니다.

  • 카탈로그에 대한 공개 액세스를 비활성화하려면 비공개 연결을 통해 연결하려는 원격 카탈로그에 대한 설명서를 참조하세요.

다음 단계

이 섹션에는 카탈로그 통합을 구성한 후 수행할 수 있는 몇 가지 작업이 포함되어 있습니다.

비공개 연결 엔드포인트 모니터링하기

아웃바운드 비공개 연결로 외부 볼륨 구성하기

  • Snowflake 및 저장소 버킷 간의 비공개 연결을 활성화하려면 아웃바운드 비공개 연결로 :ref:`외부 볼륨<label-tables_iceberg_external_volume_def>`을 구성합니다.

    외부 볼륨에 대한 자세한 내용은 외부 볼륨 구성 섹션을 참조하세요.

    참고

    아웃바운드 비공개 연결을 사용하여 카탈로그 통합을 구성할 때는 카탈로그 제공 자격 증명이 지원되지 않습니다.

카탈로그 연결 데이터베이스 만들기

  • 외부 Iceberg REST 카탈로그에 연결된 Snowflake 데이터베이스를 생성하려면 카탈로그 연결 데이터베이스를 생성합니다.

    자세한 내용은 카탈로그 연결 데이터베이스 만들기 섹션을 참조하십시오.

    참고

    카탈로그 연결 데이터베이스를 생성할 때 아웃바운드 비공개 연결로 구성된 카탈로그 통합을 지정합니다.

원격 카탈로그에 작성

Apache Iceberg™ REST에 대한 카탈로그 통합을 구성하고 카탈로그 연결 데이터베이스를 생성한 후에는 원격 카탈로그에 작성할 수 있습니다.