연습 - 데이터 볼륨 사용

완료됨

기본적으로 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 주소로 이동합니다. 다음 페이지를 가져옵니다.

    브라우저에서 실행되는 Azure Container Instances 파일 공유 데모의 스크린샷.

  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>
    

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