同じ仮想ネットワーク内の複数の Azure Spring Apps サービス インスタンス内のアプリケーションに DNS 名をマップする

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この記事では、アプリケーションにドメイン ネーム システム (DNS) をマップして同じ仮想ネットワーク内の複数の Azure Spring Apps サービス インスタンスにアクセスする方法を説明します。

前提条件

概要

この記事では、アプリケーションに DNS 名をマップするための次の 2 つのアプローチについて説明します。

  • Microsoft が提供する完全修飾ドメイン名 (FQDN) を使用する。

    この方法は、カスタム ドメイン アプローチと比較して、DNS 名をマップするための比較的シンプルで軽量な方法です。 DNS ゾーンでワイルドカードアプローチを必要としない場合は、この方法をお勧めします。

    この方法では、各アプリケーションに対して 1 つの DNS レコードが必要です。

  • カスタム ドメインを使用する。

    既にカスタム ドメインがある場合、または複数インスタンスのシナリオでワイルドカードアプローチを使用する場合は、この方法を使用します。

    この方法では、各 Azure Spring Apps サービス インスタンスに対して 1 つの DNS レコードが必要であり、各アプリケーションに対してカスタム ドメインを構成する必要があります。

例として、この記事では同じ仮想ネットワーク内の 2 つの Azure Spring Apps インスタンスの名前として azure-spring-apps-1azure-spring-apps-2 を使用します。

DNS マッピングの準備手順 セクションから始めて、好みの方法に進みます。

最後に、「プライベート アプリケーションのプライベート FQDN URL にアクセスする」セクションの説明に従って、マッピングをテストします。

DNS マッピングの準備手順

FQDN およびカスタム ドメイン アプローチの両方においてこのセクションに記載の手順を完了して、DNS 名をマップします。

アプリケーション IP アドレス を探す

どちらのアプローチでも、マッピングを行う Azure Spring Apps インスタンスの各アプリケーションの IP アドレスが必要です。 次の手順を使用して、IP アドレスを見つけます。

  1. Azure Spring Apps インスタンス用に作成した仮想ネットワークに移動し、ナビゲーション ウィンドウで [接続されているデバイス] を選択します。

  2. [接続されているデバイス] ページで、「kubernetes-internal」と検索します。

  3. 検索結果から、Azure Spring Apps サービス インスタンスのサービス ランタイムサブネットに接続されているデバイスを見つけ、その IP アドレスをコピーします。 次のスクリーンショットの例では、azure-spring-apps-1 の IP アドレスは 10.1.0.6 で、azure-spring-apps-2 の IP アドレスは 10.1.2.6 です。

    サービス ランタイム サブネットをもつデバイスが強調表示された、仮想ネットワークの [接続デバイス] ページが表示されている Azure portal のスクリーンショット。

プライベート DNS ゾーンの作成

次の手順を使用して、プライベート ネットワークにアプリケーションのプライベート DNS ゾーンを作成します。

Note

21Vianet が運営する Microsoft Azure を使用している場合は、この記事の private.azuremicroservices.ioprivate.microservices.azure.cn で置き換えてください。 詳細については、「Azure でエンドポイントを確認する」を参照してください。

  1. Azure のホーム ページで、プライベート DNS ゾーンを検索します。

  2. [プライベート DNS ゾーン] ページで、[作成] を選択します。

  3. [プライベート DNS ゾーンの作成] ページでフォームに入力します。 [名前][インスタンスの詳細] で、プライベート DNS ゾーンの名前に private.azuremicroservices.io を指定します。

  4. [確認と作成] を選択します。

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

ゾーンの作成には数分かかることがあります。

作成したプライベート DNS ゾーンを仮想ネットワークにリンクさせるには、仮想ネットワーク リンクを作成する必要があります。

次の手順を使用して、このリンクを作成します。

  1. private.azuremicroservices.io という名前で作成したプライベート DNS ゾーンに移動します。 その名前のプライベート DNS ゾーンがいくつか存在する可能性があるため、リソース グループとサブスクリプションで正しいものを判断します。

  2. ナビゲーション ウィンドウで、[仮想ネットワーク リンク] を選択し、[追加] を選択します。

  3. [リンク名] として「azure-spring-apps-dns-link」と入力します。

  4. [仮想ネットワーク] として、前提条件で作成した仮想ネットワークを選択します。

    プライベート DNS ゾーンの [仮想ネットワーク リンクの追加] ページを示す Azure portal のスクリーンショット。

  5. [OK] を選択します。

アプリケーションのプライベート FQDN を割り当てる

アプリケーションのプライベート FQDN を割り当てます。

割り当てられたエンドポイントでアプリを更新するには、次の手順に従います。

  1. ご利用の仮想ネットワークにデプロイされている Azure Spring Apps インスタンスに移動し、ナビゲーション ウインドウで [アプリ] を選びます。

  2. アプリケーションを選択します。

  3. [エンドポイントの割り当て] を選択して、アプリにプライベート FQDN を割り当てます。 FQDN の割り当てには数分かかる場合があります。

    [エンドポイントの割り当て] が強調表示されているアプリの [概要] ページを示す Azure portal のスクリーンショット。

  4. マップするアプリケーションごとにこれらの手順を繰り返します。

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 レコードを作成します。

  1. 前の手順で private.azuremicroservices.io という名前で作成したプライベート DNS ゾーンに移動します。

  2. [レコード セット] を選択します。

  3. [レコード セットの追加] ウィンドウで、次のテーブルの値を入力します。

    設定
    名前 azure-spring-apps-1-hello-vnet
    Type A
    TTL 1
    TTL の単位 Hours
    IP アドレス (クリップボードから貼り付ける)
  4. [OK] を選択します。

    プライベート DNS ゾーンの [レコード セットの追加] ウインドウを示す Azure portal のスクリーンショット。

必要に応じてこれらの手順を繰り返し、他のアプリケーションの 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 インスタンス内の各アプリケーションにマップするには、次の手順に従います。

  1. Azure Spring Apps インスタンスを開いて、ナビゲーション ウインドウの [アプリ] を選択します。

  2. [アプリ] ページで、アプリケーションを選択します。

  3. ナビゲーション ウインドウで [カスタム ドメイン] を選択します。

  4. [カスタム ドメインの追加] を選択します。

  5. [カスタム ドメインの追加] ウィンドウで、使用する FQDN を入力し、後で TLS/SSL バインドに使用する証明書に対応していることを確認します。 この例では、hello-vnet.azure-spring-apps-1.private.azuremicroservices.io を使用します。 CNAME 部分は無視してもかまいません。

  6. [検証] を選択します。

  7. 検証後に、[追加] を選択します。

    Azure Spring Apps インスタンスのアプリの [カスタム ドメインの追加] ウインドウを示す Azure portal のスクリーンショット。

カスタム ドメインがアプリに正常にマップされると、カスタム ドメイン テーブルにそのドメインが表示されます。

アプリの [カスタム ドメイン] ページのカスタム ドメイン テーブルが表示されている Azure portal のスクリーンショット。

Note

カスタム ドメインの [セキュリティ保護なし] という TLS/SSL 状態の値は、 ラベルは、まだ TLS/SSL 証明書にバインドされていないことを意味します。 ブラウザーからカスタム ドメインへの HTTPS 要求を実行すると、エラーまたは警告が表示されます。

TLS/SSL バインドの追加

この手順を実行する前に、証明書を準備し、Azure Spring Apps にインポートしていることを確認してください。 詳細については、「既存のカスタム ドメインを Azure Spring Apps にマップする」を参照してください。

次の手順を使用して、証明書を使ってアプリのカスタム ドメインを更新します。

  1. Azure Spring Apps インスタンスを開いて、ナビゲーション ウインドウの [アプリ] を選択します。

  2. [アプリ] ページで、アプリケーションを選択します。

  3. ナビゲーション ウインドウで [カスタム ドメイン] を選択します。

  4. カスタム ドメインの省略記号 ([...]) ボタンを選択し、[TLS/SSL のバインド] を選択します。

  5. TLS/SSL 証明書ウインドウで、[証明書]を選択し、証明書を選択またはインポートします。

  6. [保存] を選択します。

    アプリの [カスタム ドメイン] ページの TLS/SSL バインディング ウインドウが表示されている Azure portal のスクリーンショット。

TLS/SSL バインディングが正常に追加されると、ドメインの状態は安全になり、 [TLS/SSL 状態] の値は [正常] と表示されます。

[カスタム ドメイン] ページに正常状態のカスタム ドメインが表示されている Azure portal のスクリーンショット。

すべてのアプリケーションのカスタム ドメインを構成する

プライベート DNS ゾーンを使用して DNS 名を変換および解決するには、各 Azure Spring Apps サービス インスタンスに対してそのゾーンに種類 "A" のレコードを作成する必要があります。 この例では、アプリ名は hello-vnet で、Azure Springs Apps サービス インスタンス名は azure-spring-apps-1 です。

各アプリケーションの IP アドレスが必要です。 「プライベート ネットワークでアプリケーションにアクセスする」の「アプリケーションの IP アドレスを検索する」セクションの説明に従ってコピーします。 この例では、IP アドレスは、10.1.0.6 です。

次の手順を使用して、DNS ゾーンに "A" レコードを作成します。

  1. 前の手順で private.azuremicroservices.io という名前で作成したプライベート DNS ゾーンに移動します。

  2. [レコード セット] を選択します。

  3. [レコード セットの追加] ウィンドウで、次のテーブルの値を入力します。

    設定
    名前 *.azure-spring-apps-1
    Type A
    TTL 1
    TTL の単位 Hours
    IP アドレス (クリップボードから貼り付ける)
  4. [OK] を選択します。

    [レコード セットの追加] ウインドウが開いた状態のプライベート DNS ゾーンの [概要] ページを示す Azure portal のスクリーンショット。

他のアプリケーションのカスタム ドメインの構成に必要なだけ繰り返します。

アプリケーションのプライベート 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 を示しているスクリーンショットです。

FQDN を使用して URL がアクセスする Spring アプリケーションのスクリーンショット。

次のスクリーンショットは、カスタム ドメインを使用して Spring アプリケーションの URL を示しているスクリーンショットです。

カスタム ドメインを使用して URL がアクセスする Spring アプリケーションのスクリーンショット。

リソースをクリーンアップする

後続の記事を引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、リソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。 Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。

az group delete --name $RESOURCE_GROUP

次のステップ