Standard 従量課金および専用プランの Azure Spring Apps で独自の永続ストレージを有効にする方法
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 に移行する」を参照してください。
この記事の適用対象:✅ Standard 従量課金および専用 (プレビュー) ❎ Basic/Standard ❎ Enterprise
この記事では、Azure Spring Apps で独自の永続ストレージを有効にする方法について説明します。
Azure Spring Apps の独自のストレージと組み込みの永続ストレージは、次の点で異なります。
組み込みのストレージでは、アプリケーションによって生成された成果物が Azure Storage アカウントにアップロードされます。 独自のストレージでは、アプリケーションによって生成された成果物が、ユーザーが制御するストレージ アカウントにアップロードされます。
組み込みストレージでは、Microsoft Azure がこれらの成果物の保存時の暗号化ポリシーと有効期間の管理ポリシーを制御します。 独自のストレージでは、保存時の暗号化ポリシー、有効期間の管理ポリシー、ネットワーク アクセスをユーザーが制御します。
独自の永続ストレージを Azure Spring Apps だけでなく、Azure Container Apps などの環境内の他のサービス インスタンスにマウントすることもできます。 この機能は、Azure Spring Apps インスタンスが Azure Container Apps 環境にデプロイされているために可能です。
前提条件
- Azure サブスクリプション。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure CLI バージョン 2.45.0 以上。
- Azure Spring Apps Standard 従量課金および専用プラン サービス インスタンス。 詳細については、クイック スタート: Azure Spring Apps Standard 従量課金および専用プラン サービス インスタンスをプロビジョニングするに関する記事を参照してください。
- Azure Spring Apps にデプロイされた Spring アプリ。
環境をセットアップする
次のコマンドを使用して、リソースの名前と現在のリージョン設定に次の変数を設定します。
export RESOURCE_GROUP="<resource-group-name>"
export LOCATION="eastus"
export AZURE_CONTAINER_APPS_ENVIRONMENT="<Azure-Container-Apps-environment-name>"
export AZURE_SPRING_APPS_INSTANCE="<Azure-Spring-Apps-instance-name>"
export APP_NAME="<Spring-app-name>"
ストレージ アカウントを設定する
次のステップを使用して、ストレージ アカウントを作成し、Spring アプリにマウントするファイル共有を確立します。
次のコマンドを使用して、 Azure Storage アカウントを作成します。
STORAGE_ACCOUNT_NAME
変数には、一意性を確保するためにランダムに生成されたサフィックスが含まれています。export STORAGE_ACCOUNT_NAME="myasastorageaccount$RANDOM" az storage account create \ --resource-group $RESOURCE_GROUP \ --name $STORAGE_ACCOUNT_NAME \ --location "$LOCATION" \ --kind StorageV2 \ --sku Standard_LRS \ --query provisioningState \ --enable-large-file-share
このコマンドは、正常に完了すると成功メッセージを返します。
次のコマンドを使用して、Azure Storage ファイル共有を作成します:
export FILE_SHARE_NAME="<file-share-name>" az storage share-rm create \ --resource-group $RESOURCE_GROUP \ --storage-account $STORAGE_ACCOUNT_NAME \ --name $FILE_SHARE_NAME \ --quota 1024 \ --enabled-protocols SMB \ --output table
次のコマンドを使用して、ストレージ アカウント キーを取得します:
export STORAGE_ACCOUNT_KEY=$(az storage account keys list \ --account-name $STORAGE_ACCOUNT_NAME \ --query "[0].value" \ --output tsv)
ストレージ アカウント キーは、Azure Container Apps 環境でストレージ リンクを作成するために必要です。
Azure Container Apps 環境にストレージをリンクする
次のコマンドを使用して、Azure Container Apps 環境にストレージ リンクを作成します。 az containerapp env storage set
コマンドは、環境と az storage share-rm
コマンドで作成したファイル共有の間にリンクを作成します。
export STORAGE_MOUNT_NAME="<storage-account-name>"
az containerapp env storage set \
--resource-group $RESOURCE_GROUP \
--name $AZURE_CONTAINER_APPS_ENVIRONMENT \
--storage-name $STORAGE_MOUNT_NAME \
--azure-file-account-name $STORAGE_ACCOUNT_NAME \
--azure-file-account-key $STORAGE_ACCOUNT_KEY \
--azure-file-share-name $FILE_SHARE_NAME \
--access-mode ReadWrite \
--output table
これでストレージアカウントと環境がリンクされたので、Azure Spring Apps インスタンスでストレージ マウントを使用できます。
アプリにストレージを追加する
次のコマンドを使用して、既存のアプリに永続ストレージを追加します。
az spring app append-persistent-storage \
--resource-group $RESOURCE_GROUP \
--service $AZURE_SPRING_APPS_INSTANCE \
--name $APP_NAME \
--persistent-storage-type AzureFileVolume \
--mount-path /var/log/nginx \
--storage-name $STORAGE_MOUNT_NAME
リソースをクリーンアップする
この記事で作成したリソースは、不要になったら必ず削除してください。 リソースを削除するには、それらのリソースを含むリソース グループを削除するだけです。 リソース グループは、Azure portal を使用して削除できます。 または、Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."