【Power BI】AzureのSQL ServerのVMとPower BI オンプレミスゲートウェイを接続する方法
EXCELで表やグラフを作成したものをPowerPointに切り貼りするのを
見直したいところからPower BIを使い始めて1ヵ月、オンプレミスゲートウェイに
接続してリモートのデータベースをはじめとする情報源にアクセスする試みに
試行錯誤があったので、忘備のために要約します。
アプリケーション開発業務に使用するノートPCにPower BIデスクトップを
インストールしたのちに、レポートを作成するためにAzureのVMにSQL Server 2016を
インストールしてデータベースにアクセスするための環境を構築することにした。
データベースの変更を反映するためには、以下の方法がある。
- Import;データベースのデータをPower BI Desktopのファイル(.pbix)に
取り込んでアクセスする
- Direct Query;リモートのデータベースに直接アクセスしてデータを照会する
Importをスケジュールに設定したり、Direct Queryを用いる場合には、オンプレミス
ゲートウェイが必要になる。Power BIのクラウドサービスのブラウザの画面にて
[ダウンロード]→[データゲートウェイ]の順に進むと、ローカルにインストーラーを
ダウンロードして実行する。インストールする場所は、停止の少ないほぼ常時に
稼働する環境で、オンプレミスのローカルであることが望ましい。ただ、それが
難しい場合は、開発環境のローカルでも支障はない。
次にPower BIのブラウザ画面にて[設定]→[ゲートウェイの管理]を選択
ゲートウェイクラスタ名は、インストールによって指定した名前が表示される。
その後データソースを追加する。Power BIのブラウザ画面の左上部に表示される。
接続を試行しているうちに重要と思われる点を以下に挙げる。
2.の問題は、オンプレの接続先にAzureのVMにSQL Serverをインストールした環境にしていることから、AzureのVMの設定によりFQDNを作成する手順を踏むことにある。 Azureポータルの画面左側にみえる[Virtual Machines]ブレードでVMを選択すると、概要にDNS名が表示される部分に相当する。設定していなければ、何も表示されない。メニューから「構成」を選択すると、DNS名ラベルが表示されるところに、名前を入力して保存するとFQDNを作成することができる。これによりFQDNは、<入力した名前>.<リージョン名>.cloudapp.azure.comになる。
さらに、Power BI オンプレミスゲートウェイとの疎通を確立するために、以下の公開情報を参考にしてVMのセキュリティグループの設定を変更する。
https://docs.microsoft.com/ja-jp/azure/analysis-services/analysis-services-gateway
ここまでの条件が整えば、ノートPCなどのクライアントからインターネット経由で
接続する条件にすると問題なくオンプレミスゲートウェイを経由してデータソースに
アクセスできる。
しかし、会社の社内ネットワークのプロキシの構成やポリシーなどの影響によっては
上と同じように接続を試行しても成功しないことがあり、構成を見直す必要がある。
PtoP(Point-to-Point)接続により仮想ネットワーク(VNet)をトンネリングして接続が
可能な環境を構成すると、VNetにVMとクライアントがひとつのプライベートネット
ワークに収容されることから、プライベートアドレスによる接続が可能になる。
すでに設定したAzure VMのFQDNは紐づいているIPアドレスがグローバルIPであり、
プライベートIPアドレスではないことから、上の状態で接続したクライアントから
FQDNによる名前解決を実現するには、DNSまたはhostsファイルにFQDN名と
プライベートIPを紐づける必要がある。検証の域を出なければ、ローカルPCのhosts
ファイルを変更して保存する方が効率が良いものと思われる(ほかのクライアント
PCから使用したり、PCの故障などにより置き換えになることまで考えると、
DNSに登録する仕方も有用である)。Power BIとAzure VMとの間はインターネットを
経由して接続することから、AzureのDNSによりグローバルIPに割り当てられた
FQDNを参照して名前解決に寄与している。