표준 사용량 및 전용 플랜을 사용하여 Azure Spring Apps에서 자체 영구 스토리지를 사용하도록 설정하는 방법

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서의 적용 대상: ✔️ 표준 사용량 및 전용(미리 보기) ❌기본/표준 ❌ 엔터프라이즈

이 문서에서는 Azure Spring Apps에서 사용자 고유의 영구 스토리지를 사용하도록 설정하는 방법을 설명합니다.

자체 스토리지와 Azure Spring Apps의 기본 제공 영구 스토리지는 다음과 같은 점에서 다릅니다.

  • 기본 제공 스토리지에서는 애플리케이션에서 생성된 아티팩트가 Azure Storage 계정에 업로드됩니다. 자체 스토리지에서는 애플리케이션에서 생성된 아티팩트는 사용자가 제어하는 스토리지 계정에 업로드됩니다.

  • 기본 제공 스토리지에서 Microsoft Azure는 이러한 아티팩트에 대한 미사용 데이터 암호화 및 수명 관리 정책을 제어합니다. 자체 스토리지에서 미사용 데이터 암호화 정책, 수명 관리 정책 및 네트워크 액세스를 제어합니다.

Azure Spring Apps뿐만 아니라 Azure Container Apps와 같은 환경의 다른 서비스 인스턴스에도 사용자 고유의 영구 스토리지를 탑재할 수 있습니다. 이 기능은 Azure Spring Apps 인스턴스가 Azure Container Apps 환경에 배포되기 때문에 가능합니다.

필수 구성 요소

환경 설정

다음 명령을 사용하여 다음 변수를 리소스 이름 및 현재 지역 설정으로 설정합니다.

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 앱에 탑재할 파일 공유를 설정합니다.

  1. 다음 명령을 사용하여 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
    

    이 명령은 성공적으로 완료되면 성공 메시지를 반환합니다.

  2. 다음 명령을 사용하여 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
    
  3. 다음 명령을 사용하여 스토리지 계정 키를 가져옵니다.

    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 환경에서 스토리지 링크를 만듭니다. 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 ..."

다음 단계