次の方法で共有


Azure Database for MySQL - フレキシブル サーバーの仮想ネットワーク統合を使用したプライベート ネットワーク アクセス

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

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

プライベート アクセス (仮想ネットワーク統合)

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

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

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

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

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

Note

Azure Database for MySQL フレキシブル サーバーをホストするサブネットに指定できる最小の CIDR 範囲は /29 で、8 つの IP アドレスを提供します。 ただし、ネットワークまたはサブネットの最初と最後のアドレスを個々のホストに割り当てることはできません。 Azure は、ホストに割り当てることができない 2 つの IP アドレスを含め、Azure ネットワークで内部使用するために 5 つの IP アドレスを予約します。 これにより、/29 CIDR 範囲に 3 つの使用可能な IP アドレスが残ります。 Azure Database for MySQL フレキシブル サーバーの場合、プライベート アクセスが有効になったときに、委任されたサブネットからノードごとに 1 つの IP アドレスを割り当てる必要があります。 HA 対応サーバーには 2 つの IP アドレスが必要であり、HA 以外のサーバーには 1 つの IP アドレスが必要です。 高可用性オプションは後で有効にできるため、Azure Database for MySQL フレキシブル サーバー インスタンスごとに少なくとも 2 つの IP アドレスを予約することをお勧めします。 Azure Database for MySQL フレキシブル サーバーは、Azure プライベート DNS ゾーンと統合されます。これにより、信頼性が高くセキュリティで保護された DNS サービスが提供され、仮想ネットワークでドメイン名を管理および解決するのに、カスタムの DNS ソリューションを追加する必要がなくなります。 プライベート DNS ゾーンは、仮想ネットワーク リンクを作成することで、1 つ以上の仮想ネットワークにリンクできます。

フレキシブル サーバー MySQL VNET のスクリーンショット。

上の図では、

  1. Azure Database for MySQL フレキシブル サーバー インスタンスは、委任されたサブネット (仮想ネットワーク VNet-1 の 10.0.1.0/24) に挿入されます。
  2. 同じ仮想ネットワーク内の異なるサブネットにデプロイされたアプリケーションは、Azure Database for MySQL フレキシブル サーバー インスタンスに直接アクセスできます。
  3. 異なる仮想ネットワーク VNet-2 にデプロイされたアプリケーションは、Azure Database for MySQL フレキシブル サーバー インスタンスに直接アクセスできません。 インスタンスにアクセスするには、プライベート DNS ゾーン仮想ネットワーク ピアリングを実行する必要があります。

仮想ネットワークの概念

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

  • 仮想ネットワーク -

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

    仮想ネットワークは、Azure Database for MySQL フレキシブル サーバー インスタンスと同じ Azure リージョンに存在する必要があります。

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

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

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

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

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

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

    Azure プライベート DNS ゾーン統合により、現在の仮想ネットワーク、またはリージョン内でピアリングされた仮想ネットワーク (プライベート DNS ゾーンがこれにリンクされている) 内でプライベート DNS を解決できます。

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

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

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

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

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

    重要

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

Azure portal または Azure CLI でプライベート アクセス (仮想ネットワーク統合) を使って Azure Database for MySQL フレキシブル サーバー インスタンスを作成する方法について説明します。

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

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

重要

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

プライベート DNS ゾーンと仮想ネットワーク ピアリング

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

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

Note

リンクできるのは、名前が mysql.database.azure.com で終わるプライベート DNS ゾーンのみです。

ExpressRoute または VPN を使ってオンプレミス サーバーから仮想ネットワーク内の Azure Database for MySQL フレキシブル サーバー インスタンスに接続する

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

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

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

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

Note

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

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

  • パブリック エンドポイント (またはパブリック IP または DNS) - 仮想ネットワークにデプロイされた Azure Database for MySQL フレキシブル サーバー インスタンスは、パブリック エンドポイントを持つことができません。
  • Azure Database for MySQL フレキシブル サーバー インスタンスを仮想ネットワークとサブネットにデプロイした後、それを別の仮想ネットワークまたはサブネットに移動することはできません。 仮想ネットワークを別のリソース グループまたはサブスクリプションに移動することはできません。
  • デプロイ後にプライベート DNS 統合構成を変更することはできません。
  • サブネットにリソースを配置した後、そのサブネットのサイズ (アドレス空間) を増やすことはできません。

Azure Database for MySQL フレキシブル サーバーは、プライベート アクセス (仮想ネットワーク統合) からパブリック アクセスに切り替えることができ、Private Link を使用するオプションがあります。 この機能により、サーバーは仮想ネットワーク統合から Private Link/パブリック インフラストラクチャにシームレスに切り替えることができます。サーバー名を変更したりデータを移行したりする必要がなく、お客様のプロセスが簡略化されます。

Note

切り替えが行われると、元に戻すことはできません。 切り替えには、非 HA サーバーの場合は約 5 - 10 分、HA 対応サーバーの場合は約 20 分のダウンタイムが発生します。

このプロセスはオフライン モードで実行され、次の 2 つの手順で構成されます。

  1. 仮想ネットワーク インフラストラクチャからサーバーをデタッチする。
  2. Private Link を確立するか、パブリック アクセスを有効にする。
  • プライベート アクセス ネットワークからパブリック アクセスまたは Private Link への切り替えに関するガイダンスについては、Azure portalを使用したプライベート アクセス (統合された仮想ネットワーク) からパブリック アクセスまたは Private Link への移行に関する記事を参照してください。 このリソースには、プロセスを容易にするための詳細な手順が用意されています。