同じ仮想ネットワーク内の複数の Azure Spring Apps サービス インスタンス内のアプリケーションに DNS 名をマップする
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise
この記事では、アプリケーションにドメイン ネーム システム (DNS) をマップして同じ仮想ネットワーク内の複数の Azure Spring Apps サービス インスタンスにアクセスする方法を説明します。
前提条件
- Azure サブスクリプション。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure CLI バージョン 2.45.0 以上。 次のコマンドを使用して、Azure Spring Apps 拡張機能をインストールします。
az extension add --name spring
- Azure Spring Apps のインスタンスにデプロイされた仮想ネットワーク。 詳細については、「Azure 仮想ネットワーク に Azure Spring Apps をデプロイする (VNet インジェクション)」を参照してください。
概要
この記事では、アプリケーションに DNS 名をマップするための次の 2 つのアプローチについて説明します。
Microsoft が提供する完全修飾ドメイン名 (FQDN) を使用する。
この方法は、カスタム ドメイン アプローチと比較して、DNS 名をマップするための比較的シンプルで軽量な方法です。 DNS ゾーンでワイルドカードアプローチを必要としない場合は、この方法をお勧めします。
この方法では、各アプリケーションに対して 1 つの DNS レコードが必要です。
カスタム ドメインを使用する。
既にカスタム ドメインがある場合、または複数インスタンスのシナリオでワイルドカードアプローチを使用する場合は、この方法を使用します。
この方法では、各 Azure Spring Apps サービス インスタンスに対して 1 つの DNS レコードが必要であり、各アプリケーションに対してカスタム ドメインを構成する必要があります。
例として、この記事では同じ仮想ネットワーク内の 2 つの Azure Spring Apps インスタンスの名前として azure-spring-apps-1
と azure-spring-apps-2
を使用します。
DNS マッピングの準備手順 セクションから始めて、好みの方法に進みます。
最後に、「プライベート アプリケーションのプライベート FQDN URL にアクセスする」セクションの説明に従って、マッピングをテストします。
DNS マッピングの準備手順
FQDN およびカスタム ドメイン アプローチの両方においてこのセクションに記載の手順を完了して、DNS 名をマップします。
アプリケーション IP アドレス を探す
どちらのアプローチでも、マッピングを行う Azure Spring Apps インスタンスの各アプリケーションの IP アドレスが必要です。 次の手順を使用して、IP アドレスを見つけます。
Azure Spring Apps インスタンス用に作成した仮想ネットワークに移動し、ナビゲーション ウィンドウで [接続されているデバイス] を選択します。
[接続されているデバイス] ページで、「kubernetes-internal」と検索します。
検索結果から、Azure Spring Apps サービス インスタンスのサービス ランタイムサブネットに接続されているデバイスを見つけ、その IP アドレスをコピーします。 次のスクリーンショットの例では、
azure-spring-apps-1
の IP アドレスは10.1.0.6
で、azure-spring-apps-2
の IP アドレスは10.1.2.6
です。
プライベート DNS ゾーンの作成
次の手順を使用して、プライベート ネットワークにアプリケーションのプライベート DNS ゾーンを作成します。
Note
21Vianet が運営する Microsoft Azure を使用している場合は、この記事の private.azuremicroservices.io
をprivate.microservices.azure.cn
で置き換えてください。 詳細については、「Azure でエンドポイントを確認する」を参照してください。
Azure のホーム ページで、プライベート DNS ゾーンを検索します。
[プライベート DNS ゾーン] ページで、[作成] を選択します。
[プライベート DNS ゾーンの作成] ページでフォームに入力します。 [名前] の [インスタンスの詳細] で、プライベート DNS ゾーンの名前に
private.azuremicroservices.io
を指定します。[確認と作成] を選択します。
[作成] を選択します
ゾーンの作成には数分かかることがあります。
仮想ネットワークのリンク
作成したプライベート DNS ゾーンを仮想ネットワークにリンクさせるには、仮想ネットワーク リンクを作成する必要があります。
次の手順を使用して、このリンクを作成します。
private.azuremicroservices.io
という名前で作成したプライベート DNS ゾーンに移動します。 その名前のプライベート DNS ゾーンがいくつか存在する可能性があるため、リソース グループとサブスクリプションで正しいものを判断します。ナビゲーション ウィンドウで、[仮想ネットワーク リンク] を選択し、[追加] を選択します。
[リンク名] として「azure-spring-apps-dns-link」と入力します。
[仮想ネットワーク] として、前提条件で作成した仮想ネットワークを選択します。
[OK] を選択します。
アプリケーションのプライベート FQDN を割り当てる
アプリケーションのプライベート FQDN を割り当てます。
割り当てられたエンドポイントでアプリを更新するには、次の手順に従います。
Microsoft が提供する FQDN を使用した DNS マッピング
この方法を使用する場合は、Microsoft が提供する完全修飾ドメイン名 (FQDN) を使用するときに、各アプリケーションの DNS レコードを要件として作成する必要があります。 このプロセスの基本的な解釈については、「プライベート ネットワークのアプリケーションにアクセスする」を参照してください。
エンドポイントが割り当てられた Azure Spring Apps サービス インスタンスのアプリケーションが仮想ネットワーク内にデプロイされている場合、そのエンドポイントはプライベート FQDN です。 既定では、完全修飾ドメイン名は、サービス インスタンス間のアプリごとに一意です。 FQDN の形式は <service-name>-<app-name>.private.azuremicroservices.io
です。
すべてのアプリケーションの DNS レコードを作成する
プライベート DNS ゾーンを使用して DNS 名を変換および解決するには、各アプリケーションに対してそのゾーンに種類 "A" のレコードを作成する必要があります。 この例では、アプリ名は hello-vnet
で、Azure Springs Apps サービス インスタンス名は azure-spring-apps-1
です。
各アプリケーションの IP アドレスが必要です。 「プライベート ネットワークでアプリケーションにアクセスする」の「アプリケーションの IP アドレスを検索する」セクションの説明に従ってコピーします。 この例では、IP アドレスは、10.1.0.6
です。
次の手順を使用して、DNS レコードを作成します。
必要に応じてこれらの手順を繰り返し、他のアプリケーションの DNS レコードを追加します。
カスタム ドメインを使用した DNS マッピング
この方法を使用すると、Azure Spring Apps インスタンスごとに DNS レコードを追加するだけで済む一方で、アプリケーションごとにカスタム ドメインを構成する必要があります。 このプロセスの基本的な解釈については、「既存のカスタム ドメインを Azure Spring Apps にマップする」を参照してください。
DNS レコードに関連するカスタム ドメインを追加するために、この例ではプライベート DNS ゾーン private.azuremicroservices.io
を再利用しています。 プライベート FQDN の形式は <app-name>.<service-name>.private.azuremicroservices.io
です。
技術的には、任意のプライベート完全修飾ドメイン名を使用できます。 その場合は、選択した完全修飾ドメイン名に対応する新しいプライベート DNS ゾーンを作成する必要があります。
Azure Spring Apps インスタンス内のカスタム ドメインのアプリへのマップ
カスタム ドメインを Azure Spring Apps インスタンス内の各アプリケーションにマップするには、次の手順に従います。
Azure Spring Apps インスタンスを開いて、ナビゲーション ウインドウの [アプリ] を選択します。
[アプリ] ページで、アプリケーションを選択します。
ナビゲーション ウインドウで [カスタム ドメイン] を選択します。
[カスタム ドメインの追加] を選択します。
[カスタム ドメインの追加] ウィンドウで、使用する FQDN を入力し、後で TLS/SSL バインドに使用する証明書に対応していることを確認します。 この例では、
hello-vnet.azure-spring-apps-1.private.azuremicroservices.io
を使用します。 CNAME 部分は無視してもかまいません。[検証] を選択します。
検証後に、[追加] を選択します。
カスタム ドメインがアプリに正常にマップされると、カスタム ドメイン テーブルにそのドメインが表示されます。
Note
カスタム ドメインの [セキュリティ保護なし] という TLS/SSL 状態の値は、 ラベルは、まだ TLS/SSL 証明書にバインドされていないことを意味します。 ブラウザーからカスタム ドメインへの HTTPS 要求を実行すると、エラーまたは警告が表示されます。
TLS/SSL バインドの追加
この手順を実行する前に、証明書を準備し、Azure Spring Apps にインポートしていることを確認してください。 詳細については、「既存のカスタム ドメインを Azure Spring Apps にマップする」を参照してください。
次の手順を使用して、証明書を使ってアプリのカスタム ドメインを更新します。
Azure Spring Apps インスタンスを開いて、ナビゲーション ウインドウの [アプリ] を選択します。
[アプリ] ページで、アプリケーションを選択します。
ナビゲーション ウインドウで [カスタム ドメイン] を選択します。
カスタム ドメインの省略記号 ([...]) ボタンを選択し、[TLS/SSL のバインド] を選択します。
TLS/SSL 証明書ウインドウで、[証明書]を選択し、証明書を選択またはインポートします。
[保存] を選択します。
TLS/SSL バインディングが正常に追加されると、ドメインの状態は安全になり、 [TLS/SSL 状態] の値は [正常] と表示されます。
すべてのアプリケーションのカスタム ドメインを構成する
プライベート DNS ゾーンを使用して DNS 名を変換および解決するには、各 Azure Spring Apps サービス インスタンスに対してそのゾーンに種類 "A" のレコードを作成する必要があります。 この例では、アプリ名は hello-vnet
で、Azure Springs Apps サービス インスタンス名は azure-spring-apps-1
です。
各アプリケーションの IP アドレスが必要です。 「プライベート ネットワークでアプリケーションにアクセスする」の「アプリケーションの IP アドレスを検索する」セクションの説明に従ってコピーします。 この例では、IP アドレスは、10.1.0.6
です。
次の手順を使用して、DNS ゾーンに "A" レコードを作成します。
他のアプリケーションのカスタム ドメインの構成に必要なだけ繰り返します。
アプリケーションのプライベート FQDN にアクセスする
どちらのアプローチでも、FQDN 割り当てと DNS マッピングを行った後は、プライベート ネットワークでアプリのプライベート FQDN にアクセスできます。 たとえば、同じ仮想ネットワークまたはピアリングされた仮想ネットワーク内にジャンプボックスまたは仮想マシンを作成し、アプリケーションのすべてのプライベート FQDN にアクセスできます。
次の例は FQDN アプローチを示しています。
https://hello-vnet.azure-spring-apps-1.private.azuremicroservices.io
https://hello-vnet.azure-spring-apps-2.private.azuremicroservices.io
次の例はカスタム ドメイン アプローチを示しています。
https://azure-spring-apps-1-hello-vnet.private.azuremicroservices.io
https://azure-spring-apps-2-hello-vnet.private.azuremicroservices.io
次のスクリーンショットは、FQDN を使用して Spring アプリケーションの URL を示しているスクリーンショットです。
次のスクリーンショットは、カスタム ドメインを使用して Spring アプリケーションの URL を示しているスクリーンショットです。
リソースをクリーンアップする
後続の記事を引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、リソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。 Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。
az group delete --name $RESOURCE_GROUP