次の方法で共有


チュートリアル: プライベート エンドポイントを使用して、Data Factory マネージド VNET から SQL Managed Instance にアクセスする方法

重要

SQL Managed Instance では、プライベート エンドポイントのネイティブ サポートが提供されるようになりました。 このドキュメントのソリューションを実装する代わりに、「マネージド プライベート エンドポイント」で説明されているように、SQL Managed Instance リソースに対して直接 プライベート エンドポイント を作成することをお勧めします。

このチュートリアルでは、Azure portal を使用して Private Link サービスを設定し、プライベート エンドポイントを使用してマネージド VNET から SQL Managed Instance にアクセスする手順について説明します。

SQL MI のアクセス モデルを示すスクリーンショット。

注意

このソリューションを使用して Azure SQL Database Managed Instance に接続する場合、"リダイレクト" 接続ポリシーはサポートされません。"プロキシ" モードに切り替える必要があります。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • Virtual Network。 仮想ネットワークがない場合は、仮想ネットワークの作成に関する記事に従って作成します。
  • オンプレミス ネットワークへの仮想ネットワークExpressRouteVPN のいずれかを使用して、仮想ネットワークとオンプレミス ネットワークの間の接続を作成します。
  • マネージド VNET が有効なデータ ファクトリ。 データ ファクトリがない、またはマネージド VNET が有効でない場合は、データ ファクトリとマネージド VNET の作成に関する記事に従って作成します。

リソース用のサブネットの作成

ポータルを使用して、仮想ネットワークにサブネットを作成します。

Subnet 説明
be-subnet バックエンド サーバー用のサブネット
fe-subnet 標準の内部ロード バランサー用のサブネット
pls-subnet Private Link サービス用のサブネット

サブネットを示すスクリーンショット。

Standard Load Balancer の作成

ポータルを使用して Standard 内部ロード バランサーを作成します。

  1. ポータル上部の検索バーで、検索ペインの [サービス] セクションで [ロード バランサー] を検索して選択します。

  2. [負荷分散] サービス ページで、[作成] を選択して新しいロード バランサーを作成します。

  3. [ロード バランサーの作成] ページの [基本] タブで、次の詳細を入力または選択します。

    設定
    サブスクリプション サブスクリプションを選択します。
    Resource group リソース グループを選択します。
    名前 myLoadBalancer」と入力します。
    リージョン [米国東部] を選択します。
    SKU [Standard] を選択します。
    Type [内部] を選択します。
  4. ロード バランサーの作成 ページの[フロントエンド IP 設定] タブで、[フロントエンド IP 設定の追加] を選択し、[フロントエンド IP アドレス設定の追加] ペインで以下の内容を入力または選択します。

    設定
    フロントエンド IP 名 フロントエンド IP アドレスの名前を入力します。
    仮想ネットワーク 仮想ネットワークを選択します。
    Subnet 前の手順で作成した fe-subnet を選択します。
    IP アドレスの割り当て [動的] を選択します。
    可用性ゾーン [ゾーン冗長] を選択します。
  5. 残りの設定は既定値をそのまま使用し、 [確認と作成] を選択します。

  6. [確認および作成] タブで、 [作成] を選択します。

ロード バランサーのリソースを作成する

バックエンド プールの作成

バックエンド アドレス プールには、ロード バランサーに接続された仮想 NIC の IP アドレスが含まれています。

バックエンド アドレス プール myBackendPool を作成し、インターネット トラフィックを負荷分散するために仮想マシンを含めます。

  1. 左側のメニューで [すべてのサービス][すべてのリソース] の順に選択し、リソースの一覧で [myLoadBalancer] を選択します。
  2. [設定] で、 [バックエンド プール][追加] の順に選択します。
  3. [バックエンド プールの追加] ページ上で、バックエンド プールの名前として「myBackendPool」と入力し、 [追加] を選択します。

正常性プローブの作成

ロード バランサーは、正常性プローブを使用してアプリの状態を監視します。

正常性プローブは、正常性チェックへの応答に基づいて、ロード バランサーに含める VM を追加したり削除したりします。

myHealthProbe という正常性プローブを作成し、VM の正常性を監視します。

  1. 左側のメニューで [すべてのサービス][すべてのリソース] の順に選択し、リソースの一覧で [myLoadBalancer] を選択します。

  2. [設定] で、 [正常性プローブ][追加] の順に選択します。

    設定
    名前 myHealthProbe」と入力します。
    Protocol [TCP] を選択します。
    Port 「22」を入力します。
    Interval プローブの試行の間隔を示す秒数として、「15」を入力します。
    異常のしきい値 異常しきい値またはプローブの連続する失敗の回数として [2] を選択します。この回数を超えると、VM は異常と見なされます。
  3. 残りは既定値のままにして、 [OK] を選択します。

ロード バランサー規則の作成

ロード バランサー規則の目的は、一連の VM に対するトラフィックの分散方法を定義することです。 着信トラフィック用のフロントエンド IP 構成と、トラフィックを受信するためのバックエンド IP プールを定義します。 送信元と送信先のポートは、この規則で定義します。

このセクションでは、ロード バランサー規則を作成します。

  1. 左側のメニューで [すべてのサービス][すべてのリソース] の順に選択し、リソースの一覧で [myLoadBalancer] を選択します。

  2. [設定] で、 [負荷分散規則][追加] の順に選択します。

  3. 負荷分散規則の構成には、以下の値を使用します。

    設定
    Name myRule」を入力します。
    IP バージョン [IPv4] を選択します。
    フロントエンド IP アドレス [LoadBalancerFrontEnd] を選択します。
    Protocol [TCP] を選択します。
    Port 1433」を入力します。
    バックエンド ポート 1433」を入力します。
    バックエンド プール [myBackendPool] を選択します。
    正常性プローブ [myHealthProbe] を選択します。
    アイドル タイムアウト (分) スライダーを 15 分に移動します。
    TCP リセット [無効] をクリックします。
  4. 残りの部分は既定値のままにし、次に [OK] を選択します。

このセクションでは、Standard ロード バランサーの背後に Private Link サービスを作成します。

  1. Azure portal のページ左上隅の領域にある [リソースの作成] を選択します。

  2. [Marketplace を検索] ボックスで「Private Link」を検索します。

  3. [作成] を選択します

  4. [Private Link センター][概要] で、青色の [Create private link service](Private Link サービスの作成) ボタンを選択します。

  5. [Create private link service](Private Link サービスの作成)[基本] タブで、次の情報を入力または選択します。

    設定
    プロジェクトの詳細
    サブスクリプション サブスクリプションを選択します。
    リソース グループ リソース グループを選択します。
    インスタンスの詳細
    名前 myPrivateLinkService」と入力します。
    リージョン [米国東部] を選択します。
  6. [送信設定] タブを選択するか、ページ下部の [Next: Outbound settings](次へ: 送信設定) を選択します。

  7. [送信設定] タブで、次の情報を入力または選択します。

    設定
    Load Balancer [myLoadBalancer] を選択します。
    ロード バランサーのフロントエンド IP アドレス [LoadBalancerFrontEnd] を選択します。
    ソース NAT サブネット pls-subnet を選択します。
    TCP プロキシ v2 を有効にする 既定値の [いいえ] のままにします。
    プライベート IP アドレスの設定
    既定の設定のままにします。
  8. [アクセス セキュリティ] タブを選択するか、ページ下部の [Next: Access security](次へ: アクセス セキュリティ) を選択します。

  9. [アクセス セキュリティ] タブは、既定値の [ロールベースのアクセス制御のみ] のままにします。

  10. タグ タブを選択するか、次へ: タグ がページの下部にあるので、これをクリックします。

  11. [確認と作成] タブを選択するか、ページの下部にある [次へ: 確認と作成] を選択します。

  12. [確認と作成] タブの [作成] を選択します。

バックエンド サーバーの作成

  1. ポータルの左上で、[リソースの作成] > [Compute] > [仮想マシン] の順に選択します。

  2. [仮想マシンの作成][Basic] タブに、値を入力するか選択します。

    設定
    プロジェクトの詳細
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ リソース グループを選択します。
    インスタンスの詳細
    仮想マシン名 myVM1」と入力します。
    リージョン [米国東部] を選択します。
    可用性オプション [可用性ゾーン] を選択します。
    可用性ゾーン [1] を選択します。
    Image [Ubuntu Server 18.04LTS – Gen1] を選択します。
    Azure Spot インスタンス このため、 [いいえ] を選択します。
    サイズ VM サイズを選択するか、既定の設定を使用します。
    管理者アカウント
    ユーザー名 ユーザー名を入力します。
    SSH 公開キーのソース 新しいキーの組を生成します。
    キーの組名 mySSHKey。
    受信ポートの規則
    パブリック受信ポート [なし] :
  3. [ネットワーク] タブまたは [次へ: ディスク] を選択してから [次へ: ネットワーク] を選択します。

  4. [ネットワーク] タブで、次を選択または入力します。

    設定
    ネットワーク インターフェイス
    仮想ネットワーク 仮想ネットワークを選択します。
    Subnet be-subnet
    パブリック IP [なし] を選択します。
    NIC ネットワーク セキュリティ グループ [なし] を選択します。
    負荷分散
    この仮想マシンを既存の負荷分散ソリューションの後ろに配置しますか? [はい] を選択します。
    ロード バランサーの設定
    負荷分散のオプション [Azure load balancing](Azure 負荷分散) を選択します。
    ロード バランサーを選択する [myLoadBalancer] を選択します。
    バックエンド プールを選択する [myBackendPool] を選択します。
  5. [Review + create](レビュー + 作成) を選択します。

  6. 設定を確認し、 [作成] を選択します。

  7. 手順 1 から 6 を繰り返して 2 つ以上のバックエンド サーバー VM を用意し、HA を実現できます。

エンドポイントへの転送ルールの作成

  1. ログインしてスクリプト ip_fwd.sh をバックエンド サーバー VM にコピーします。

    Note

    このスクリプトでは、一時的に IP 転送のみが設定されます。 この設定を永続的にするには、ファイル /etc/sysctl.conf に "net.ipv4.ip_forward=1" 行がコメント解除されていることを確認してください

  2. 次のオプションを使用してスクリプトを実行します。
    sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    <FQDN/IP> は、自分の SQL マネージド インスタンスのホストです。

  3. 以下のコマンドを実行し、バックエンド サーバー VM の iptables をチェックします。 自分のターゲット IP と一緒に iptables のレコードを 1 つ確認できます。
    sudo iptables -t nat -v -L PREROUTING -n --line-number

    コマンドのレコードを示すスクリーンショット。

    注意

    注: 2 つ以上の SQL MI またはその他のデータ ソースがある場合は、複数のロード バランサー規則と IP テーブル レコードを異なるポートで定義する必要があります。 そうしないと、なんらかの競合が発生します。 たとえば、次のように入力します。

    ロード バランサー規則のポート ロード バランサー規則のバックエンド ポート バックエンド サーバー VM で実行されるコマンド
    SQL MI 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
    SQL MI 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433

    注意

    ロード バランサーの背後にある VM を再起動するごとに、スクリプトを再度実行します。

  1. 左側のメニューで [すべてのサービス] を選択し、[すべてのリソース] を選択してから、リソースの一覧で自分のデータ ファクトリを選択します。

  2. [Author & Monitor]\(作成と監視\) を選択して、別のタブで Data Factory (UI) を起動します。

  3. [管理] タブに移動してから、 [Managed private endpoints](マネージド プライベート エンドポイント) セクションに移動します。

  4. [Managed private endpoints](マネージド プライベート エンドポイント) で、 [+ 新規] を選択します。

  5. 一覧から [Private Link サービス] タイルを選択し、 [続行] を選択します。

  6. プライベート エンドポイントの名前を入力して、Private Link サービスの一覧で myPrivateLinkService を選択します。

  7. 実際のターゲット SQL Managed Instance の FQDN を追加します。

    プライベート エンドポイントの設定を示すスクリーンショット。

  8. プライベート エンドポイントを作成します。

リンク サービスの作成と接続のテスト

  1. [管理] タブに移動してから、 [Managed private endpoints](マネージド プライベート エンドポイント) セクションに移動します。

  2. [リンクされたサービス][新規] を選択します。

  3. 一覧から [Azure SQL Database Managed Instance] タイルを選択し、 [続行] を選択します。

    リンク サービスの作成ページを示すスクリーンショット。

  4. インタラクティブな編集を有効にします。

    インタラクティブな編集を有効にする方法を示すスクリーンショット。

  5. SQL マネージド インスタンスのホストユーザー名パスワードを入力します。

    注意

    SQL Managed Instance ホストは手動で入力してください。 そうしないと、選択一覧に完全修飾ドメイン名が表示されません。

  6. 次に、 [テスト接続] をクリックします。

    SQL MI リンク サービスの作成ページを示すスクリーンショット。

次のチュートリアルに進み、プライベート エンドポイントを使用して Data Factory マネージド VNET からオンプレミスの SQL Server にアクセスする方法について確認します。