Azure Database for MySQL のプライベート ネットワーク アクセス - フレキシブル サーバー

適用対象: Azure Database for MySQL - フレキシブル サーバー

この記事では、Azure MySQL フレキシブル サーバーのプライベート接続オプションについて説明します。 Azure でサーバーを安全に作成するための、Azure Database for MySQL - フレキシブル サーバーの仮想ネットワークの概念について詳しく説明します。

プライベート アクセス (VNet 統合)

Azure Virtual Network (VNet) は、Azure 内のプライベート ネットワークの基本的な構成要素です。 Virtual Network (VNet) を Azure Database for MySQL - フレキシブル サーバーと統合すると、Azure のネットワーク セキュリティと分離の利点が得られます。

Azure Database for MySQL - フレキシブル サーバーの Virtual Network (VNet) 統合を使用すると、サービスへのアクセスを、仮想ネットワーク インフラストラクチャのみに制限できます。 Virtual Network (VNet) では、すべてのアプリケーションとデータベースのリソースを 1 つの仮想ネットワークに含めることができます。また、同じリージョン内の異なる VNet 間や異なるリージョンに拡張することもできます。 Microsoft の低待機時間、高帯域幅のプライベート バックボーン インフラストラクチャを使用するピアリングによって、さまざまな仮想ネットワーク間のシームレスな接続を確立できます。 仮想ネットワークは、接続において、見かけ上 1 つのネットワークとして機能します。

Azure Database for MySQL - フレキシブル サーバーは、次のクライアントからの接続に対応しています。

  • 同じ Azure リージョン内の仮想ネットワーク。 (ローカル ピアリング VNet)
  • 複数の Azure リージョン間の仮想ネットワーク。 (グローバル ピアリング VNet)

サブネットを使用すると、仮想ネットワークを 1 つ以上のサブネットワークにセグメント化して仮想ネットワークのアドレス空間の一部を割り当て、そこに Azure リソースをデプロイできます。 Azure Database for MySQL - フレキシブル サーバーには、委任されたサブネットが必要です。 委任されたサブネットは、サブネットでホストできるのは Azure Database for MySQL - フレキシブル サーバーのみであることを示す明示的な識別子です。 サブネットを委任することにより、サービスには、Azure Database for MySQL - フレキシブル サーバーをシームレスに管理するためのサービス固有リソースを作成する直接アクセス許可が与えられます。

注意

サブネットに指定できる最小範囲は /29 です。これにより、8 つの IP アドレス (そのうち 5 つは Azure によって内部で使用される) が提供されます。 一方、Azure Database for MySQL - フレキシブル サーバーでは、プライベート アクセスが有効になったときに、委任されたサブネットからノードごとに 1 つの IP アドレスが割り当てられる必要があります。 HA が有効になっているサーバーでは 2 つ、非 HA サーバーでは 1 つの IP アドレスが必要です。 高可用性オプションを後で有効にできることを念頭に置き、フレキシブル サーバーごとに少なくとも 2 つの IP アドレスを予約することをお勧めします。

Azure Database for MySQL - フレキシブル サーバーは、Azure プライベート DNS ゾーンと統合されます。これにより、信頼性が高く、セキュリティで保護された DNS サービスが提供され、仮想ネットワークでドメイン名を管理および解決するのに、カスタムの DNS ソリューションを追加する必要がなくなります。 プライベート DNS ゾーンは、仮想ネットワーク リンクを作成することで、1 つ以上の仮想ネットワークにリンクできます。

Flexible server MySQL VNET

上の図では、

  1. 委任されたサブネット、VNET VNet-1 の 10.0.1.0/24 にフレキシブル サーバーを導入しています。
  2. 同じ VNET 内の異なるサブネットにデプロイされたどのアプリケーションからでも、そのフレキシブル サーバーに直接アクセスできます。
  3. 別の VNET である VNet-2 にデプロイされたアプリケーションからは、フレキシブル サーバーに直接アクセスできません。 それらからフレキシブル サーバーにアクセスするためには、プライベート DNS ゾーン VNET ピアリングを実行する必要があります。

仮想ネットワークの概念

以下に、MySQL フレキシブル サーバーと共に仮想ネットワークを使用する際に知っておく必要があるいくつかの概念を示します。

  • 仮想ネットワーク -

    Azure Virtual Network (VNet) には、実際の使用のために構成されたプライベート IP アドレス空間が含まれます。 Azure の仮想ネットワークの詳細については、Azure Virtual Network の概要に関するページを参照してください。

    ご利用の仮想ネットワークは、フレキシブル サーバーと同じ Azure リージョンに存在する必要があります。

  • 委任されたサブネット -

    仮想ネットワークには、サブネット (サブネットワーク) が含まれます。 サブネットを使用すると、仮想ネットワークをより小さなアドレス空間に分割できます。 Azure リソースは、仮想ネットワーク内の特定のサブネットにデプロイされます。

    MySQL フレキシブル サーバーは、MySQL フレキシブル サーバーでの使用のためにのみ委任されたサブネット内に存在する必要があります。 この委任は、Azure Database for MySQL - フレキシブル サーバーのみがそのサブネットを使用できることを意味します。 委任されたサブネットに他の Azure リソースの種類を含めることはできません。 その委任プロパティを Microsoft.DBforMySQL/flexibleServers として割り当てて、サブネットを委任します。

  • ネットワーク セキュリティ グループ (NSG)

    ネットワーク セキュリティ グループのセキュリティ規則を使用して、仮想ネットワーク サブネットとネットワーク インターフェイスに出入りできるネットワーク トラフィックの種類をフィルター処理できます。 詳細については、ネットワーク セキュリティ グループの概要に関するページを参照してください。

  • プライベート DNS ゾーンの統合

    Azure プライベート DNS ゾーンの統合により、現在の VNET 内、またはそのプライベート DNS ゾーンがリンクされたリージョン内のピアリングされた VNET のプライベート DNS を解決できます。

  • 仮想ネットワーク ピアリング

    仮想ネットワーク ピアリングを使用すると、Azure 内の 2 つ以上の Virtual Network をシームレスに接続できます。 ピアリングされた仮想ネットワークは、接続において、見かけ上 1 つのネットワークとして機能します。 ピアリングされた仮想ネットワーク内の仮想マシン間のトラフィックには、Microsoft のバックボーンインフラストラクチャが使用されます。 ピアリングされた VNet 内のクライアント アプリケーションとフレキシブル サーバーの間のトラフィックは、Microsoft のプライベート ネットワーク経由でのみルーティングされ、そのネットワークに分離されます。

プライベート DNS ゾーンを使用する

  • Azure portal または Azure CLI を使用して VNET にフレキシブル サーバーを作成する場合は、指定されたサーバー名を使用して、mysql.database.azure.com で終わる新しいプライベート DNS ゾーンがサブスクリプション内でサーバーごとに自動プロビジョニングされます。 代わりに、フレキシブル サーバーで専用のプライベート DNS ゾーンを設定する必要がある場合は、プライベート DNS の概要に関するドキュメントを参照してください。

  • Azure API、Azure Resource Manager テンプレート (ARM テンプレート)、または Terraform を使用する場合は、mysql.database.azure.com で終わるプライベート DNS ゾーンを作成し、フレキシブル サーバーにプライベート アクセスを構成する間はそれらを使用してください。 詳細については、プライベート DNS ゾーンの概要に関するページを参照してください。

    重要

    プライベート DNS ゾーン名は、mysql.database.azure.com で終わる必要があります。 SSL を使用して Azure Database for MySQL フレキシブル サーバーに接続しており、証明書のサブジェクト名を使用して完全な検証 (sslmode=VERIFY_IDENTITY) を実行するオプションを使用している場合、接続文字列には <servername>.mysql.database.azure.com を使用します。

プライベート アクセス (VNet 統合) を使用するフレキシブル サーバーを Azure portal または Azure CLI で作成する方法を参照してください。

カスタム DNS サーバーとの統合

カスタム DNS サーバーを使用している場合は、DNS フォワーダーを使用して Azure Database for MySQL - フレキシブル サーバーの FQDN を解決する必要があります。 フォワーダーの IP アドレスは、168.63.129.16 である必要があります。 カスタム DNS サーバーは、VNet 内にあるか、VNET の DNS サーバー設定を使用して到達可能である必要があります。 「独自の DNS サーバーを使用する名前解決」をご覧ください。

重要

フレキシブル サーバーのプロビジョニングを成功させるには、カスタム DNS サーバーを使っている場合でも、NSG を使って AzurePlatformDNS への DNS トラフィックをブロックしないようにする必要があります

プライベート DNS ゾーンと VNET ピアリング

プライベート DNS ゾーンの設定と VNET ピアリングはそれぞれ独立しています。 プライベート DNS ゾーンの作成と使用の詳細については、「プライベート DNS ゾーンを使用する」を参照してください。

同じリージョンまたは異なるリージョンの別の VNET でプロビジョニングされたクライアントからフレキシブル サーバーに接続する必要がある場合は、プライベート DNS ゾーンをその VNET にリンクする必要があります。 仮想ネットワークのリンク方法のドキュメントをご覧ください。

Note

末尾が mysql.database.azure.com のプライベート DNS ゾーン名のみリンク可能です。

ExpressRoute または VPN を使用してオンプレミス サーバーから Virtual Network 内のフレキシブル サーバーに接続する

オンプレミス ネットワークから仮想ネットワーク内のフレキシブル サーバーにアクセスする必要があるワークロードの場合は、ExpressRoute または VPN と、オンプレミスに接続された仮想ネットワークが必要です。 このセットアップを使用すると、オンプレミスの仮想ネットワーク上で実行されているクライアント アプリケーション (MySQL Workbench など) から接続する場合は、フレキシブル サーバーの名前を解決するために DNS フォワーダーが必要になります。 この DNS フォワーダーには、サーバーレベル フォワーダー経由のすべての DNS クエリを、Azure 提供の DNS サービス 168.63.129.16 に解決する役割があります。

適切に構成するには、次のリソースが必要です。

  • オンプレミス ネットワーク
  • プライベート アクセスを使用してプロビジョニングされた MySQL フレキシブル サーバー (VNet 統合)
  • オンプレミスに接続された仮想ネットワーク
  • Azure にデプロイされた DNS フォワーダー 168.63.129.16 を使用する

その後、フレキシブル サーバーの名前 (FQDN) を使用して、ピアリングされた仮想ネットワークまたはオンプレミス ネットワークのクライアント アプリケーションから、フレキシブル サーバーに接続できます。

Note

フレキシブル サーバーに接続する場合は、接続文字列に完全修飾ドメイン名 (FQDN) <servername>.mysql.database.azure.com を使用することをお勧めします。 サーバーの IP アドレスが静的のままであることは保証されていません。 FQDN を使用すると、接続文字列を変更せずに済みます。

サポートされない仮想ネットワークのシナリオ

  • パブリック エンドポイント (またはパブリック IP あるいは DNS) - 仮想ネットワークにデプロイされたフレキシブル サーバーに、パブリック エンドポイントを設けることはできません
  • フレキシブル サーバーを仮想ネットワークおよびサブネットにデプロイした後、それを別の仮想ネットワークまたはサブネットに移動することはできません。 仮想ネットワークを別のリソース グループまたはサブスクリプションに移動することはできません。
  • サブネットにリソースを配置した後で、そのサブネットのサイズ (アドレス空間) を増やすことはできません。

次のステップ