Microsoft Azure の外部ボリュームへのプライベート接続

このトピックでは、 Microsoft Azure の外部ボリュームへのアウトバウンドプライベート接続を設定するための構成の詳細を説明します。アウトバウンドパブリック接続とアウトバウンドプライベート接続の主な違いは、外部ボリュームの USE_PRIVATELINK_ENDPOINT プロパティの設定方法です。

外部ボリュームがプライベート接続を使用するように構成されている場合、 Microsoft Azure クラウドストレージサービスへの接続は、 Microsoft Azure 内部ネットワークを経由します。アウトバウンドプライベート接続を使用するように外部ボリュームを構成することで、ストレージアカウントへのパブリックアクセスをブロックし、運用にさらなるセキュリティを追加できます。

外部ボリュームを使用してIcebergテーブル用の外部クラウドストレージに接続する方法については、 外部ボリュームの構成 をご参照ください。

アウトバウンド プライベート接続コスト

各プライベート・コネクティビティ・エンドポイントの料金は、処理されるデータ総量に応じて支払われます。これらのアイテムの価格については、 Snowflake Service Consumption Table をご参照ください。

ACCOUNT_USAGE および ORGANIZATION_USAGE スキーマで請求ビューをクエリする際、以下のサービスタイプでフィルターをかけることで、これらの項目のコストを調べることができます。

  • OUTBOUND_PRIVATELINK_ENDPOINT

  • OUTBOUND_PRIVATELINK_DATA_PROCESSED

例えば、 USAGE_IN_CURRENCY_DAILY 表示をクエリし、これらのサービスタイプでフィルターをかけることができます。

考慮事項と制約

  • プライベート接続を使用して、Snowflake管理Icebergテーブルや、オブジェクトストレージにカタログ統合を使用しているIcebergテーブルにアクセスすることはできますが、他のカタログ統合を使用しているIcebergテーブルにアクセスすることはできません。

  • 同じクラウドストレージサービスに対して、アウトバウンドパブリック接続とアウトバウンドプライベート接続を構成できます。この場合、アウトバウンドパブリック接続用に専用の外部ボリュームを作成し、 USE_PRIVATELINK_ENDPOINT = FALSE を指定します。

プライベート接続プロパティ

外部ボリュームの USE_PRIVATELINK_ENDPOINT プロパティは、プライベート接続でアクセスするか、パブリックネットワークを経由してアクセスするかを決定します。プライベート接続を使用するには、外部ボリュームの作成または変更時に USE_PRIVATELINK_ENDPOINT = TRUE を設定します。

プライベート接続を使用した外部ボリュームアクセスの構成

以下の手順を使用して、アウトバウンドプライベート接続を使い Microsoft Azure 上の外部ボリュームにデータをアンロードします。

  1. Snowflake は、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出して、Snowflake VNet にプライベート接続エンドポイントをプロビジョニングし、プライベート接続を使用して外部の Microsoft Azure クラウドストレージサービスに接続できるようにします。

    USE ROLE ACCOUNTADMIN;
    
    SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
      '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
      'mystorageaccount.blob.core.windows.net',
      'blob'
    );
    
    Copy

    この関数はプライベートエンドポイントをホスト名にバインドし、外部ボリュームがプライベートエンドポイントを使用してストレージの場所に接続できるようにします。

  2. Azure Portalで、 Microsoft Azure ストレージリソースの所有者として、プライベートエンドポイントを承認します。詳しくは、 承認プロセス をご覧ください。

  3. Snowflakeで、 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 関数を呼び出します。

    関数の出力に "status": "APPROVED が含まれる場合、Snowflakeからストレージアカウントへの接続でプライベート接続を使用できるようになります。

    "APPROVED" のステータスを待つ間、次のステップに進むことができます。

  4. 外部ボリュームを作成し、 USE_PRIVATELINK_ENDPOINT プロパティが TRUE に設定されていることを確認します。

    CREATE EXTERNAL VOLUME exvol
      STORAGE_LOCATIONS =
        (
          (
            NAME = 'my-azure-northeurope'
            STORAGE_PROVIDER = 'AZURE'
            STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
            AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
            USE_PRIVATELINK_ENDPOINT = TRUE
          )
        );
    
    Copy
  5. プライベートエンドポイントのステータスが "APPROVED" になったら、サポートされている操作で外部ボリュームへのアクセスをテストします。

エンドポイントのデプロビジョン

外部ボリュームのプライベート接続エンドポイントが不要になった場合は、外部ボリュームの USE_PRIVATELINK_ENDPOINT プロパティの設定を解除してから、 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出します。

次のトピック: