연습 - 데이터 볼륨 사용

완료됨

기본적으로 Azure Container Instances는 비저장 상태입니다. 컨테이너의 작동이 중단되거나 중지되면 모든 상태가 손실됩니다. 컨테이너 수명이 지난 후에도 상태를 유지하려면 외부 저장소의 볼륨을 탑재해야 합니다.

Azure 컨테이너 인스턴스에 Azure 파일 공유를 탑재하여 데이터를 저장하고 나중에 액세스할 수 있습니다.

Azure 파일 공유 만들기

스토리지 계정 및 파일 공유를 만듭니다. 나중에 파일 공유가 Azure 컨테이너 인스턴스에 액세스 가능하도록 만들 수 있습니다.

  1. 스토리지 계정에 고유한 이름을 지정합니다. 학습 목적상 다음 명령을 실행하여 Bash 변수에 고유한 이름을 저장합니다.

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. 다음 az storage account create 명령을 실행하여 스토리지 계정을 만듭니다.

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. 다음 명령을 실행하여 스토리지 계정 연결 문자열을 AZURE_STORAGE_CONNECTION_STRING이라는 환경 변수에 배치합니다.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --output tsv)
    

    AZURE_STORAGE_CONNECTION_STRING은 Azure CLI이 인식할 수 있는 특별한 환경 변수입니다. export 부분은 나중에 실행하게 될 다른 CLI 명령에 이 변수가 액세스할 수 있게 해줍니다.

  4. 이 명령을 실행하여 스토리지 계정에 aci-share-demo라는 파일 공유를 만듭니다.

    az storage share create --name aci-share-demo
    

스토리지 자격 증명 가져오기

Azure 파일 공유를 Azure Container 인스턴스의 볼륨으로 탑재하려면 다음과 같은 세 가지 값이 필요합니다.

  • 스토리지 계정 이름
  • 공유 이름
  • 스토리지 계정 액세스 키

처음 두 값은 이미 있습니다. 스토리지 계정 이름은 STORAGE_ACCOUNT_NAME Bash 변수에 저장됩니다. 이전 단계에서 aci-share-demo를 공유 이름으로 지정했습니다. 여기에서는 나머지 값, 즉 스토리지 계정 액세스 키를 가져옵니다.

  1. 다음 명령을 실행하여 스토리지 계정 키를 가져옵니다.

    STORAGE_KEY=$(az storage account keys list \
      --resource-group learn-deploy-aci-rg \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    결과는 STORAGE_KEY라는 Bash 변수에 저장됩니다.

  2. 선택적 단계로, 스토리지 키를 콘솔에 출력합니다.

    echo $STORAGE_KEY
    

컨테이너 배포 및 파일 공유 탑재

Azure 파일 공유를 컨테이너의 볼륨으로 탑재하려면 컨테이너를 만들 때 공유 및 볼륨 탑재 지점을 지정합니다.

  1. az container create 명령을 실행하여 /aci/logs/를 파일 공유에 탑재하는 컨테이너를 만듭니다.

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --image mcr.microsoft.com/azuredocs/aci-hellofiles \
      --location eastus \
      --ports 80 \
      --ip-address Public \
      --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \
      --azure-file-volume-account-key $STORAGE_KEY \
      --azure-file-volume-share-name aci-share-demo \
      --azure-file-volume-mount-path /aci/logs/
    
  2. az container show를 실행하여 컨테이너의 공용 IP 주소를 가져옵니다.

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. 브라우저에서 컨테이너의 IP 주소로 이동합니다. 다음 페이지를 가져옵니다.

    Screenshot of the Azure Container Instances file share demo running in a browser.

  4. 양식에 텍스트를 입력하고 제출을 선택합니다. 이 작업은 사용자가 Azure 파일 공유에 입력한 텍스트가 포함된 파일을 만듭니다.

  5. az storage file list 명령을 실행하여 파일 공유에 포함된 파일을 표시합니다.

    az storage file list -s aci-share-demo -o table
    
  6. az storage file download를 실행하여 Cloud Shell 세션에 파일을 다운로드합니다. <filename>을 이전 단계에 표시된 파일 중 하나로 바꿉니다.

    az storage file download -s aci-share-demo -p <filename>
    
  7. cat 명령을 실행하여 파일의 내용을 출력합니다.

    cat <filename>
    

컨테이너가 종료되어도 데이터는 유지됩니다. 파일 공유를 다른 컨테이너 인스턴스에 탑재하여 해당 데이터를 제공할 수 있습니다.