次の方法で共有


クイック スタート: マイクロサービス アプリケーションを Azure Spring Apps にデプロイする

Note

BasicStandard、および 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 に移行する」を参照してください。

この記事では、既知のサンプル アプリ PetClinic を使用して、マイクロサービス アプリケーションを Azure Spring Apps にデプロイする方法について説明します。

この PetClinic サンプルは、マイクロサービス アーキテクチャ パターンを示しています。 次の図は、Azure Spring Apps Enterprise プラン上の PetClinic アプリケーションのアーキテクチャを示しています。

Azure Spring Apps Enterprise プラン上の PetClinic サンプルのアーキテクチャを示す図。

この図は、Pet Clinic サンプルの次のアーキテクチャ フローとリレーションシップを示しています。

  • Azure Spring Apps を使用して、フロントエンド アプリとバックエンド アプリを管理します。 バックエンド アプリは Spring Boot を使用して構築され、各アプリによって HSQLDB が永続的なストアとして使用されます。 改良されたフロントエンド アプリは、スタンドアロンのフロントエンド Web アプリケーションとして機能する Node.js を備えた Pet Clinic API Gateway アプリに基づいています。
  • Service Registry、Application Configuration Service、Spring Cloud Gateway、Application Live View など、Azure Spring Apps 上のマネージド コンポーネントを使用します。 Application Configuration Service は Git リポジトリの構成を読み取ります。
  • バックエンド サービス アプリに要求をルーティングするための Spring Cloud Gateway の URL を公開し、Application Live View の URL を公開してバックエンド アプリを監視します。
  • Log Analytics ワークスペースを使用してログを分析します。
  • Application Insights でパフォーマンスを監視します。

Note

この記事では、Azure Spring Apps に迅速にデプロイする準備ができていないメモリ内データベースを使用して、PetClinic の簡易バージョンを使用します。

Tanzu 開発者ツールにより、リスク ポイントである Application Live View のパブリック アクセスが公開されます。 運用環境では、アクセスをセキュリティで保護する必要があります。 詳細については、「Azure Spring Apps Enterprise プランで Tanzu Dev Tools を構成する」の「Dev Tools ポータルの構成」を参照してください。

この PetClinic サンプルは、マイクロサービス アーキテクチャ パターンを示しています。 次の図は、Azure Spring Apps Standard プラン上の PetClinic アプリケーションのアーキテクチャを示しています。

Azure Spring Apps Standard プラン上の PetClinic サンプルのアーキテクチャを示す図。

この図は、Pet Clinic サンプルの次のアーキテクチャ フローとリレーションシップを示しています。

  • Azure Spring Apps を使用して Spring Boot アプリを管理します。 各アプリでは、永続的なストアとして HSQLDB が使用されます。
  • Azure Spring Apps でマネージド コンポーネント Spring Cloud Config Server と Eureka Service Registry を使用します。 Config Server は Git リポジトリの構成を読み取ります。
  • API Gateway の URL を公開して要求をサービス アプリに負荷分散し、管理サーバーの URL を公開してアプリケーションを管理します。
  • Log Analytics ワークスペースを使用してログを分析します。
  • Application Insights でパフォーマンスを監視します。

Note

この記事では、Azure Spring Apps に迅速にデプロイする準備ができていないメモリ内データベースを使用して、PetClinic の簡易バージョンを使用します。

デプロイされたアプリ admin-server は、リスク ポイントであるパブリック アクセスを公開します。 運用環境では、Spring Boot 管理アプリケーションをセキュリティで保護する必要があります。

この記事では、Azure Spring Apps にデプロイするための次のオプションについて説明します。

  • Azure portal オプションは、1 回のクリックでリソースを作成してアプリケーションをデプロイできる最も簡単で最速の方法です。 このオプションは、Azure クラウド サービスにアプリケーションをj迅速にデプロイしたい Spring 開発者に適しています。
  • Azure portal と Maven プラグインのオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
  • Azure CLI のオプションは、強力なコマンド ライン ツールを使用して、Azure リソースを管理します。 このオプションは、Azure クラウド サービスに精通している Spring 開発者に適しています。
  • Azure portal と Maven プラグインのオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
  • Azure Developer CLI オプションは、単純なコマンドを使用して、自動的にリソースを作成し、アプリケーションをデプロイする、より効率的な方法です。 Azure Developer CLI では、テンプレートを使用して、必要な Azure リソースをプロビジョニングし、アプリケーション コードをデプロイします。 このオプションは、Azure クラウド サービスに精通している Spring 開発者に適しています。

1.前提条件

2. Spring プロジェクトを準備する

次の手順を使用して、サンプルをローカルに準備します。

  1. 次のコマンドを使用して、サンプル プロジェクトを複製します:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. プロジェクト ルート ディレクトリに移動し、次のコマンドを使用してローカルでサンプル プロジェクトを実行します。

    bash ./scripts/run_all_without_infra.sh
    
  3. スクリプトが正常に完了したら、ブラウザーで http://localhost:8080 に移動して PetClinic アプリケーションにアクセスします。

3. クラウド環境を準備する

このセクションでは、Azure Spring Apps サービス インスタンスを作成し、Azure クラウド環境を準備する方法について説明します。

3.1. Azure portal にサインインする

Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。

3.2. Azure Spring Apps インスタンスを作成する

次の手順を使用して、サービス インスタンスを作成します。

  1. Azure portal の隅にある [リソースの作成] を選択します。

  2. [Azure サービス] タブで、[コンピューティング]>[Azure Spring Apps] を選択します。

    [リソースの作成] ページが表示され、Azure Spring Apps が強調表示されている Azure portal のスクリーンショット。

  3. [Create Azure Spring Apps](Azure Spring Apps の作成) ページで、[Basics](基本) タブのフォームに入力します。

    [Azure Spring Apps の作成] ページが表示され、[基本] タブが選択されている Azure portal のスクリーンショット。

    次の表を参考にして、フォームに入力します。 推奨のプランStandard です。

    設定 提案された値 説明
    [サブスクリプション] 自分のサブスクリプション名。 サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象にするサブスクリプションを選択します。
    リソース グループ myresourcegroup 新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。
    名前 myasa Azure Spring Apps インスタンスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。
    プラン Standard 価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。
    リージョン ユーザーに最も近いリージョン。 ユーザーに最も近い場所。
    ゾーン冗長 未選択 Azure 可用性ゾーンに Azure Spring Apps サービスを作成します。 現在、一部のリージョンではサポートされていません。
  4. [Create Azure Spring Apps](Azure Spring Apps の作成) ページの [Diagnostic settings](診断設定) タブに移動し、[新規作成] を選択して新しい Log Analytics ワークスペース インスタンスを作成します。 [Log Analytics ワークスペースの新規作成] ページで、必要に応じて [Log Analytics ワークスペース] の名前を更新し、[OK] を選択して作成を確定します。

    [Azure Spring Apps の作成] ページが表示されている Azure portal のスクリーンショット。[診断] タブが選択され、[新規作成] ボタンが強調表示されています。

  5. [Create Azure Spring Apps](Azure Spring Apps の作成) ページの [Application Insights] タブに移動し、[新規作成] を選択して新しい Application Insights インスタンスを作成します。 [Application Insights リソースの新規作成] ページで、必要に応じて [Application Insights 名] を更新し、[リソース モード][ワークスペースベース] を選択して、[OK] を選択して作成を確定します。

    [Azure Spring Apps の作成] ページと [新しい Application Insights リソースの作成] ペインが表示されている Azure portal のスクリーンショット。

  6. Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択して、Azure Spring Apps インスタンスをプロビジョニングします。

  7. [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、サービスの [概要] ページへのショートカットが Azure portal ダッシュボードに作成されます。

    リソースのデプロイと [通知] ペインが表示されている Azure portal のスクリーンショット。[リソースに移動] ボタンと [ダッシュボードにピン留め] ボタンが表示されています。

  8. [リソースに移動] を選択して、[Azure Spring Apps Overview](Azure Spring Apps の概要) ページに移動します。

  9. ナビゲーション ウィンドウで [Config Server] を選択します。

  10. [Config Server] ページで、[URI] に「https://github.com/Azure-Samples/spring-petclinic-microservices-config.git」と入力し、[検証] を選択します。

    [Config Server] ページが表示されている Azure portal のスクリーンショット。既定の URI と [検証] ボタンが強調表示されいます。

  11. 検証後、[適用] を選択して Config Server の構成を完了します。

4. アプリを Azure Spring Apps にデプロイする

アプリを Azure Spring Apps にデプロイできるようになりました。

次の手順に従って、Azure Spring Apps 用の Maven プラグインを使用してマイクロサービス アプリケーションをデプロイします。

  1. サンプル プロジェクト ディレクトリに移動し、次のコマンドを使用して Azure Spring Apps 用のアプリを構成します。

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. 次の一覧に、コマンド対話を記載します。

    • Select child modules to configure(input numbers separated by comma, eg: [1-2,4,6], ENTER to select ALL) (構成する子モジュールを選択してください (入力番号はコンマで区切ります。例: [1-2,4,6]。すべて選択するには、ENTER キーを押します)): Enter キーを押してすべて選択します。
    • OAuth2 login (OAuth2 ログイン): OAuth2 プロトコルに基づいて Azure へのサインインを承認します。
    • Select subscription (サブスクリプションを選択してください): 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
    • Select Azure Spring Apps for deployment (デプロイ用の Azure Spring Apps を選択してください): 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
    • Select apps to expose public access:(input numbers separated by comma, eg: [1-2,4,6], ENTER to select NONE) (パブリック アクセスを公開するアプリを選択してください (入力番号はコンマで区切ります。例: [1-2,4,6]。何も選択しない場合は ENTER キーを押します)): admin-serverapi-gateway に「1,5」と入力します。
    • Confirm to save all the above configurations (Y/n) (上記のすべての構成の保存を確定してください (Y/n)): y を押します。 n を押した場合、構成は POM ファイルに保存されません。
  3. 次のコマンドを使用して、各アプリケーションをビルドしてデプロイします。

    ./mvnw azure-spring-apps:deploy
    
  4. [OAuth2 login](OAuth2 ログイン) プロンプトで、OAuth2 プロトコルに基づいて Azure へのログインを承認します。

    Note

    Azure Spring Apps へのデプロイには、最大 25 分かかる場合があります。

コマンドの実行後、ログに次の例のような出力が表示されます。これは、すべてのデプロイが成功したことを示します。

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. Spring プロジェクトを準備する

次のセクションの [Azure へのデプロイ] ボタンにより、Spring PetClinic リポジトリからソース コードをデプロイする Azure portal のエクスペリエンスが起動されます。 ローカル側での準備手順は必要ありません。

3. クラウド環境を準備する

このサンプルの実行に必要な主なリソースは、Azure Spring Apps インスタンスです。 このセクションでは、このリソースの作成方法について説明します。

このセクションでは、[Azure へのデプロイ] ボタンを使用して、Azure portal でデプロイ エクスペリエンスを起動します。 このエクスペリエンスでは、ARM テンプレートを使用して Azure リソースを作成します。

3.1. Azure portal にサインインする

Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。

3.2. Azure リソースを作成する

次の手順を使用して、アプリが依存するすべての Azure リソースを作成します。

  1. 次の [Azure へのデプロイ] ボタンを選択して、Azure portal でデプロイ エクスペリエンスを起動します。

    Resource Manager テンプレートを Azure にデプロイするボタン。

  2. [基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。

    設定 提案された値 説明
    [サブスクリプション] 自分のサブスクリプション名。 サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。
    リソース グループ myresourcegroup 新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。
    リージョン ユーザーに最も近いリージョン。 このリージョンは、リソース グループの作成に使用されます。

    [カスタム デプロイ] ページが表示されている Azure portal のスクリーンショット。

  3. Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択してアプリを Azure Spring Apps にデプロイします。

  4. ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。 [Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。

    [概要] ページが表示され [カスタム デプロイ通知] ペインが開かれている Azure portal のスクリーンショット。

4. アプリを Azure Spring Apps にデプロイする

前のセクションの [Azure へのデプロイ] ボタンにより、アプリケーションのデプロイを含む Azure portal エクスペリエンスが起動されるため、他に何も必要ありません。

5. アプリを検証する

次のセクションでは、デプロイを検証する方法について説明します。

5.1. アプリケーションにアクセスする

デプロイが完了すると、次のスクリーンショットで示すように、デプロイの出力から Spring Cloud ゲートウェイの URL を確認できます。

[デプロイ出力] ページが表示されている Azure portal のスクリーンショット。

ゲートウェイの URL を開きます。 アプリケーションは次のスクリーン ショットのようになります。

Azure Spring Apps Enterprise プラン上で実行されている PetClinic アプリケーションのスクリーンショット。

5.2. アプリケーション ログのクエリを実行する

PetClinic の各機能を閲覧すると、Log Analytics ワークスペースによって各アプリケーションのログが収集されます。 次のスクリーンショットに示すように、カスタム クエリを使用してログをチェックできます。

PetClinic アプリケーションでのクエリと Enterprise プランでの結果の [ログ] ページが表示されている Azure portal のスクリーンショット。

5.3. アプリケーションを監視する

Application Insights は、次のアプリケーション トレース マップに示すように、アプリケーションの依存関係を監視します。

Azure Spring Apps Enterprise プランの [アプリケーション マップ] ページが表示されている Azure portal のスクリーンショット。

デプロイの出力から Application Live View の URL を確認できます。 次のスクリーンショットで示すように、Application Live View の URL を開いて、アプリケーション ランタイムを監視します。

PetClinic アプリケーションの Application Live View のスクリーンショット。

5.1. アプリケーションにアクセスする

デプロイ ログ出力の URL 情報を使用して、api-gateway というアプリによって公開される URL (例: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io) を開きます。 アプリケーションは次のスクリーン ショットのようになります。

Azure Spring Apps 上で実行されている PetClinic アプリケーションのスクリーンショット。

5.2. アプリケーション ログのクエリを実行する

PetClinic の各機能を閲覧すると、Log Analytics ワークスペースによって各アプリケーションのログが収集されます。 次のスクリーンショットに示すように、カスタム クエリを使用してログをチェックできます。

PetClinic アプリケーションでのクエリとその結果の [ログ] ページが表示されている Azure portal のスクリーンショット。

5.3. アプリケーションを監視する

Application Insights は、次のアプリケーション トレース マップに示すように、アプリケーションの依存関係を監視します。

Application Insights インスタンスの [アプリケーション マップ] ページが表示されている Azure portal のスクリーンショット。

次のスクリーンショットに示すように、アプリ admin-server によって公開されている URL を開き、Spring Boot 管理サーバーを介してアプリケーションを管理します。

現在のアプリケーション インスタンスが一覧表示されている PetClinic アプリケーションの [Spring Boot 管理サーバー] ページのスクリーンショット。

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

後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 リソースが不要になったら、不要なリソースをクリーンアップすると、Azure の料金を抑えることができます。

次の手順に従って、新しく作成したサービス インスタンスを含むリソース グループ全体を削除します。

  1. Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。

  2. [リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。

この記事で作成したリソースは、不要になったら必ず削除してください。 Azure リソース グループを削除した場合、そのリソース グループに含まれたすべてのリソースが対象となります。

次の手順を使って、リソース グループ全体を削除します。

  1. Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。

  2. [リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。

7. 次のステップ

詳細については、次の記事を参照してください。