연습 - 데이터 볼륨 사용
기본적으로 Azure Container Instances는 비저장 상태입니다. 컨테이너의 작동이 중단되거나 중지되면 모든 상태가 손실됩니다. 컨테이너 수명이 지난 후에도 상태를 유지하려면 외부 저장소의 볼륨을 탑재해야 합니다.
이 연습에서는 Azure 컨테이너 인스턴스에 Azure 파일 공유를 탑재하여 데이터를 저장하고 나중에 액세스할 수 있습니다.
Azure 파일 공유 만들기
먼저, 스토리지 계정 및 파일 공유를 만듭니다. 나중에 파일 공유가 Azure 컨테이너 인스턴스에 액세스 가능하도록 만들 수 있습니다.
스토리지 계정에 고유한 이름을 지정합니다. 학습 목적상 다음 명령을 실행하여 Bash 변수에 고유한 이름을 저장합니다.
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
다음
az storage account create
명령을 실행하여 스토리지 계정을 만듭니다.az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
다음 명령을 실행하여 스토리지 계정 연결 문자열을
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 명령에 이 변수가 액세스할 수 있게 해줍니다.이 명령을 실행하여 스토리지 계정에 aci-share-demo라는 파일 공유를 만듭니다.
az storage share create --name aci-share-demo
스토리지 자격 증명 가져오기
Azure 파일 공유를 Azure Container 인스턴스의 볼륨으로 탑재하려면 다음과 같은 세 가지 값이 필요합니다.
- 스토리지 계정 이름
- 공유 이름
- 스토리지 계정 액세스 키
처음 두 값은 이미 있습니다. 스토리지 계정 이름은 STORAGE_ACCOUNT_NAME
Bash 변수에 저장됩니다. 이전 단계에서 aci-share-demo를 공유 이름으로 지정했습니다. 여기에서는 나머지 값, 즉 스토리지 계정 액세스 키를 가져옵니다.
다음 명령을 실행하여 스토리지 계정 키를 가져옵니다.
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 변수에 저장됩니다.선택적 단계로, 스토리지 키를 콘솔에 출력합니다.
echo $STORAGE_KEY
컨테이너 배포 및 파일 공유 탑재
Azure 파일 공유를 컨테이너의 볼륨으로 탑재하려면 컨테이너를 만들 때 공유 및 볼륨 탑재 지점을 지정합니다.
이
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/
az container show
를 실행하여 컨테이너의 공용 IP 주소를 가져옵니다.az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
브라우저에서 컨테이너의 IP 주소로 이동합니다. 다음 페이지를 가져옵니다.
양식에 텍스트를 입력하고 제출을 선택합니다. 이 작업은 사용자가 Azure 파일 공유에 입력한 텍스트가 포함된 파일을 만듭니다.
이
az storage file list
명령을 실행하여 파일 공유에 포함된 파일을 표시합니다.az storage file list -s aci-share-demo -o table
az storage file download
를 실행하여 Cloud Shell 세션에 파일을 다운로드합니다. <filename>을 이전 단계에 표시된 파일 중 하나로 바꿉니다.az storage file download -s aci-share-demo -p <filename>
cat
명령을 실행하여 파일의 내용을 출력합니다.cat <filename>
컨테이너가 종료되어도 데이터는 유지됩니다. 파일 공유를 다른 컨테이너 인스턴스에 탑재하여 해당 데이터를 제공할 수 있습니다.