クイックスタート: Azure CLI を使用して Azure Spring Apps をプロビジョニングする

注意

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

この記事の適用対象:❌ Basic ✔️ Standard ✔️ Enterprise

このクイックスタートでは、Azure CLI を使用して Azure Spring Apps クラスターを既存の仮想ネットワークにデプロイする方法について説明します。

Azure Spring Apps では、コードを変更せずに、Spring アプリケーションを Azure に簡単にデプロイできます。 Spring アプリケーションのインフラストラクチャはこのサービスによって管理されるため、開発者はコードに専念できます。 Azure Spring Apps では、包括的な監視と診断、構成管理、サービス検出、CI/CD 統合、ブルー/グリーン デプロイなどを使用して、ライフサイクルを管理できます。

Enterprise デプロイ プランには、次の Tanzu コンポーネントが含まれます。

  • ビルド サービス
  • アプリケーション構成サービス
  • サービス レジストリ
  • Spring Cloud Gateway
  • API ポータル

前提条件

  • Azure サブスクリプション。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • Azure Spring Apps クラスター用の 2 つの専用サブネット (1 つはサービス ランタイム用、もう 1 つは Spring アプリケーション用)。 サブネットと仮想ネットワークの要件については、「仮想ネットワークに Azure Spring Apps をデプロイする」の「仮想ネットワークの要件」セクションを参照してください。
  • Azure Spring Apps の診断設定用の既存の Log Analytics ワークスペースと、ワークスペースベースの Application Insights リソース。 詳細については、「診断設定でログとメトリックを分析する」と「Azure Spring Apps での Application Insights Java In-Process Agent」を参照してください。
  • Azure Spring Apps クラスターに使用するために指定した 3 つの内部クラスレス ドメイン間ルーティング (CIDR) の範囲 (それぞれ少なくとも /16)。 これらの CIDR の範囲は直接ルーティング可能ではなく、Azure Spring Apps クラスターによって内部的にのみ使用されます。 内部 Spring アプリの CIDR の範囲に 169.254.0.0/16172.30.0.0/16172.31.0.0/16、または 192.0.2.0/24 をクラスターに使用することはできません。また、クラスター仮想ネットワークのアドレス範囲に含まれる IP 範囲も使用できません。
  • 仮想ネットワークに付与されたサービスのアクセス許可。 仮想ネットワーク上の専用かつ動的なサービス プリンシパルにさらに高度なデプロイやメンテナンスの権限を付与するには、Azure Spring Apps リソース プロバイダーに仮想ネットワークの所有者としてのアクセス許可が必要です。 手順と詳細については、「仮想ネットワークに Azure Spring Apps をデプロイする」の「仮想ネットワークにサービス アクセス許可を付与する」セクションを参照してください。
  • Azure Firewall またはネットワーク仮想アプライアンス (NVA) を使用している場合は、次の前提条件も満たす必要があります。
  • Azure CLI
  • ターゲット サブスクリプションで初めて Azure Spring Apps Enterprise プラン インスタンスをデプロイする場合は、「Azure Marketplace の Enterprise プラン」の「要件」セクションを参照してください。

Azure CLI デプロイ スクリプトを確認する

このクイックスタートで使用するデプロイ スクリプトは、「Azure Spring Apps の参照アーキテクチャ」のものです。

#!/bin/bash

echo "Enter Azure Subscription ID: "
read subscription
subscription=$subscription

echo "Enter Azure region for resource deployment: "
read region
location=$region

echo "Enter Azure Spring  Resource Group Name: "
read azurespringrg
azurespring_resource_group_name=$azurespringrg

echo "Enter Azure Spring VNet Resource Group Name: "
read azurespringvnetrg
azurespring_vnet_resource_group_name=$azurespringvnetrg

echo "Enter Azure Spring Spoke VNet : "
read azurespringappspokevnet
azurespringappspokevnet=$azurespringappspokevnet

echo "Enter Azure Spring App SubNet : "
read azurespringappsubnet
azurespring_app_subnet_name='/subscriptions/'$subscription'/resourcegroups/'$azurespring_vnet_resource_group_name'/providers/Microsoft.Network/virtualNetworks/'$azurespringappspokevnet'/subnets/'$azurespringappsubnet

echo "Enter Azure Spring Service SubNet : "
read azurespringservicesubnet
azurespring_service_subnet_name='/subscriptions/'$subscription'/resourcegroups/'$azurespring_vnet_resource_group_name'/providers/Microsoft.Network/virtualNetworks/'$azurespringappspokevnet'/subnets/'$azurespringservicesubnet

echo "Enter Azure Log Analytics Workspace Resource Group Name: "
read loganalyticsrg
loganalyticsrg=$loganalyticsrg

echo "Enter Log Analytics Workspace Resource ID: "
read workspace
workspaceID='/subscriptions/'$subscription'/resourcegroups/'$loganalyticsrg'/providers/microsoft.operationalinsights/workspaces/'$workspace

echo "Enter Reserved CIDR Ranges for Azure Spring: "
read reservedcidrrange
reservedcidrrange=$reservedcidrrange

echo "Enter key=value pair used for tagging Azure Resources (space separated for multiple tags): "
read tag
tags=$tag

randomstring=$(LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | fold -w 13 | head -n 1)
azurespring_service='spring-'$randomstring #Name of unique Spring resource
azurespring_appinsights=$azurespring_service
azurespring_resourceid='/subscriptions/'$subscription'/resourceGroups/'$azurespring_resource_group_name'/providers/Microsoft.AppPlatform/Spring/'$azurespring_service

# Create Application Insights
az monitor app-insights component create \
    --app ${azurespring_service} \
    --location ${location} \
    --kind web \
    -g ${azurespringrg} \
    --application-type web \
    --workspace ${workspaceID}

az spring create \
    -n ${azurespring_service} \
    -g ${azurespringrg} \
    -l ${location} \
    --sku Enterprise \
    --build-pool-size S1 \
    --enable-application-configuration-service \
    --enable-service-registry \
    --enable-gateway \
    --enable-api-portal \
    --api-portal-instance-count 2 \
    --enable-java-agent true \
    --app-insights ${azurespring_service} \
    --app-subnet ${azurespring_app_subnet_name} \
    --service-runtime-subnet ${azurespring_service_subnet_name} \
    --reserved-cidr-range ${reservedcidrrange} \
    --tags ${tags}

# Update diagnostic setting for Azure Spring instance
az monitor diagnostic-settings create  \
   --name monitoring \
   --resource ${azurespring_resourceid} \
   --logs    '[{"category": "ApplicationConsole","enabled": true}]' \
   --workspace  ${workspaceID}

クラスターをデプロイする

Azure CLI スクリプトを使用して Azure Spring Apps クラスターをデプロイするには、これらの手順に従います。

  1. 次のコマンドを使用して Azure にサインインします。

    az login
    

    サインインすると、このコマンドにより、アクセスできるすべてのサブスクリプションに関する情報が出力されます。 使用するサブスクリプションの名前と ID をメモします。

  2. ターゲット サブスクリプションを設定します。

    az account set --subscription "<your subscription name>"
    
  3. Azure Spring Apps リソース プロバイダーを登録します。

    az provider register --namespace 'Microsoft.AppPlatform'
    
  4. 必要な拡張機能を Azure CLI に追加します。

    az extension add --name spring
    
  5. リージョン別の利用可能な製品」で示されている、Azure Spring Apps が利用可能なリージョンからデプロイの場所を選択します。

  6. 次のコマンドを使用して、Azure の場所の一覧を生成します。 前の手順で選択したリージョンの短い名前の値をメモします。

    az account list-locations --output table
    
  7. リソースのデプロイ先となるリソース グループを作成します。

    az group create --name <your-resource-group-name> --location <location-name>
    
  8. Azure Spring Apps Standard プランまたは Enterprise プランのスクリプトをローカルに保存し、Bash プロンプトから実行します。

    Standard プラン:

    ./azuredeploySpringStandard.sh
    

    Enterprise プラン:

    ./azuredeploySpringEnterprise.sh
    
  9. スクリプトから入力を求められたら、次の値を入力します。

    • 先ほど保存した Azure サブスクリプション ID。
    • 先ほど保存した Azure の場所の名前。
    • 先ほど作成したリソース グループの名前。
    • リソースのデプロイ先となる仮想ネットワーク リソース グループの名前。
    • スポーク仮想ネットワークの名前 (vnet-spoke など)。
    • Azure Spring Apps アプリケーション サービスで使用するサブネットの名前 (snet-app など)。
    • Azure Spring Apps ランタイム サービスで使用するサブネットの名前 (snet-runtime など)。
    • 診断ログの格納に使用する Azure Log Analytics ワークスペースのリソース グループの名前。
    • Azure Log Analytics ワークスペースの名前 (la-cb5sqq6574o2a など)。
    • Azure Spring Apps で使用する仮想ネットワークからの CIDR 範囲 (XX.X.X.X/16,XX.X.X.X/16,XX.X.X.X/16 など)。
    • タグをサポートするすべてのリソースにタグとして適用されるキーと値のペア。 詳細については、「タグを使用して Azure リソースと整理階層を整理する」を参照してください。 複数のタグを適用するには、スペース区切りのリストを使用します (environment=Dev BusinessUnit=finance など)。

この情報を指定すると、スクリプトによって Azure リソースが作成され、デプロイされます。

デプロイされているリソースを確認する

Azure portal を使用してデプロイされたリソースを確認するか、Azure CLI を使用してデプロイされたリソースを一覧表示することができます。

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

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

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

次のステップ

このクイックスタートでは、Azure CLI を使用して Azure Spring Apps インスタンスを既存の仮想ネットワークにデプロイし、デプロイを検証しました。 Azure Spring Apps の詳細については、以下のリソースに進んでください。