AzureでウェアハウスごとのConsoleエンドポイントへのプライベート接続を設定する
このガイドでは、Azure Private Linkを使用して、パブリックインターネットを経由せずにAzure VNetからウェアハウスごとのConsoleエンドポイントにプライベートアクセスする方法について説明します。
接続モデルと要件の概要については、ウェアハウスごとのConsoleエンドポイントへのプライベート接続を参照してください。
要件
- Consoleホスト名と対応するAzureリージョン。
- ウェアハウスごとのConsoleツールを使用するユーザーがアクセスできるVNetとサブネット。
- Private Endpoint、ネットワークルール、Azure Private DNSレコードを作成する権限。
- クライアントとPrivate Endpoint間でTCPポート
443が許可されていること。
リージョン別Private Link Service
| Azureリージョン | Private Link ServiceのリソースID |
|---|---|
westus3 | /subscriptions/c24ebfdf-23c3-4c41-950e-d4d2169aa546/resourceGroups/cmp-westus3/providers/Microsoft.Network/privateLinkServices/pls-84g8h6sf |
centralindia | /subscriptions/c24ebfdf-23c3-4c41-950e-d4d2169aa546/resourceGroups/cmp-centralindia/providers/Microsoft.Network/privateLinkServices/pls-d0srx9cp |
手順1: Azure Private Endpointを作成する
- AzureポータルでPrivate endpointsを開き、Createを選択します。
- リソースグループを選択し、
velodb-studioなどの名前を入力します。 - Private Endpointのリージョンを選択します。
- Resourceタブで、リソースIDまたはAliasを使用してAzureリソースに接続するオプションを選択します。
- リージョンに対応するVeloDB Cloud Private Link ServiceのリソースIDを入力します。
- 手動接続をリクエストします。リクエストメッセージにVeloDB Cloud組織名と
VeloDB per-warehouse Console endpoint private accessを含めます。 - クライアントVNetとサブネットを選択します。
- エンドポイントを作成します。
Private Endpoint接続の状態がApprovedになるまで待ちます。Provisioning state: Succeededは、エンドポイントリソースが作成されたことだけを示します。
接続がPendingのままの場合は、次の情報をVeloDB Supportに送信します。
- VeloDB Cloud組織名
- Consoleホスト名
- Azure Subscription ID
- リージョン
- Private EndpointのリソースID
- Private Endpoint接続名
承認後、エンドポイントのネットワークインターフェースに割り当てられたプライベートIPアドレスを記録します。
手順2: プライベートDNSを設定する
-
Azure Private DNSゾーンを作成または選択します。
-
ゾーンをクライアントVNetにリンクします。
-
実用上最も限定的なゾーン名を使用します。例:
westus3.azure.velodb.cloud -
完全なConsoleホスト名の
Aレコードを作成します。 -
レコードにPrivate EndpointのプライベートIPアドレスを指定します。
Private DNSゾーンは、リンクされたVNet内でリージョンサフィックス全体に対して権威を持ちます。このガイドの設定では、そのサフィックスのホスト名に一致するプライベートレコードがない場合、パブリックゾーンにフォールバックしません。クライアントが解決する必要のあるリージョン内のすべてのウェアハウスごとのConsoleホスト名にAレコードを追加してください。追加しない場合、同じリージョン内の他のウェアハウスホスト名がNXDOMAINを返すことがあります。
クライアントが企業DNSまたはカスタムDNSを使用する場合は、Azure DNS Private ResolverまたはVNet内の別のDNSフォワーダーへの条件付きフォワーダーを設定します。
手順3: 接続を確認する
VNet内のクライアントから次のコマンドを実行します。
nslookup <warehouse-id>-studio.<region>.azure.velodb.cloud
ホスト名は、エンドポイントのネットワークインターフェースに割り当てられたプライベートIPに解決される必要があります。
TLSとHTTPルーティングを確認します。
curl -sS \
-o /dev/null \
-w 'remote_ip=%{remote_ip} http_code=%{http_code}\n' \
https://<warehouse-id>-studio.<region>.azure.velodb.cloud/webui_api/api/data/catalogs
リモートアドレスがプライベートであること、--insecureを使用せずにTLS検証が成功すること、サーバーがHTTPレスポンスを返すことを確認します。未認証のリクエストは401、403、またはリダイレクトを返すことがあります。
最後に、認証済みブラウザーからVeloDB Consoleでウェアハウスを開き、SQL Editorでクエリを実行するなど、対象機能を使用します。
オンプレミスネットワークから接続する
- ExpressRouteまたはVPN Gatewayを使用して、オンプレミスネットワークをVNetに接続します。
- ルートとネットワークルールでPrivate EndpointへのTCP
443アクセスを許可します。 - リージョン別VeloDB CloudゾーンをAzure DNS Private ResolverまたはVNet内のDNSフォワーダーに転送するように企業DNSを設定します。
トラブルシューティング
| 問題 | 確認事項 |
|---|---|
| Private Link Serviceが見つからない | 完全なリソースIDと対応するリージョンを確認します。 |
| 接続がPendingのまま | Private Endpoint接続の承認をVeloDB Supportに依頼します。 |
| Consoleホスト名がパブリックに解決される | Private DNSゾーンとVNetのリンク、レコード名、条件付き転送を確認します。 |
| 接続がタイムアウトする | 接続の承認、NSGルール、ルート、ファイアウォール、TCP 443アクセスを確認します。 |
| TLS検証に失敗する | Private EndpointのIPではなく、元のConsoleホスト名を使用します。 |