次の方法で共有


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

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

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

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

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

Azure Database for MySQL Flexible Server では、以下からのクライアント接続がサポートされています。

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

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

Note

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

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

上の図では、

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

仮想ネットワークの概念

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

  • 仮想ネットワーク -

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

    仮想ネットワークは、Azure Database for MySQL Flexible Server インスタンスと同じ Azure リージョンに存在する必要があります。

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

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

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

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

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

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

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

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

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

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

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

  • Azure API、Azure Resource Manager テンプレート (ARM テンプレート)、または Terraform を使う場合は、末尾が mysql.database.azure.com のプライベート DNS ゾーンを作成し、Azure Database for MySQL Flexible Server インスタンスにプライベート アクセスを構成する際にそれらを使います。 詳細については、プライベート DNS ゾーンの概要に関するページを参照してください。

    重要

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

Azure portal または Azure CLI でプライベート アクセス (仮想ネットワーク統合) を使って Azure Database for MySQL Flexible Server インスタンスを作成する方法についてご確認ください。

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

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

重要

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

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

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

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

Note

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

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

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

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

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

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

Note

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

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

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

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

Note

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

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

  1. 仮想ネットワーク インフラストラクチャからサーバーをデタッチする。
  2. プライベート リンクを確立するか、パブリック アクセスを有効にする。