연습 - 다시 시작 동작 제어

완료됨

Azure Container Instances에서는 컨테이너를 쉽고 빠르게 배포할 수 있으므로 이미지 렌더링과 같은 일회성 작업을 실행하거나 애플리케이션을 빌드 및 테스트하는 데 적합합니다.

구성 가능한 다시 시작 정책을 사용하면 해당 프로세스가 완료될 때 컨테이너가 중지되도록 지정할 수 있습니다. 컨테이너 인스턴스는 초 단위로 비용이 청구되기 때문에 작업을 실행하는 컨테이너가 실행되는 동안 사용된 컴퓨팅 리소스에 대해서만 요금이 부과됩니다.

컨테이너 다시 시작 정책이란?

Azure Container Instances에는 세 가지 다시 시작 정책 옵션이 있습니다.

다시 시작 정책 설명
Always 컨테이너 그룹의 컨테이너가 항상 다시 시작됩니다. 이 정책은 웹 서버와 같은 장기 실행 작업에 적합합니다. 이 설정은 컨테이너를 만들 때 다시 시작 정책이 지정되지 않은 경우 적용되는 기본 설정입니다.
Never 컨테이너 그룹의 컨테이너가 절대로 다시 시작되지 않습니다. 컨테이너가 한 번만 실행됩니다.
OnFailure 컨테이너 그룹의 컨테이너가 컨테이너에서 실행된 프로세스가 실패할 때만(0이 아닌 종료 코드로 종료될 때) 다시 시작됩니다. 컨테이너가 한 번 이상 실행됩니다. 이 정책은 단기 작업을 실행하는 컨테이너에 적합합니다.

컨테이너 실행 완료

다시 시작 정책이 실제로 작동하는 모습을 보려면 azuredocs/aci-wordcount 컨테이너 이미지에서 컨테이너 인스턴스를 만들고 OnFailure 다시 시작 정책을 지정합니다. 이 컨테이너는 셰익스피어의 Hamlet 텍스트를 분석하고, 가장 많이 쓰이는 10개의 단어를 표준 출력에 쓰고 종료하는 Python 스크립트를 실행합니다.

  1. az container create 명령을 실행하여 컨테이너를 시작합니다.

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Azure Container Instances는 컨테이너를 시작한 다음, 프로세스(또는 이 경우 스크립트)가 종료될 때 컨테이너를 중지합니다. Azure Container Instances가 다시 시작 정책이 Never 또는 OnFailure인 컨테이너를 중지하면 컨테이너의 상태가 Terminated로 설정됩니다.

  2. az container show을(를) 실행해 컨테이너의 상태를 확인합니다.

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    Terminated 상태에 도달할 때까지 명령을 반복합니다.

  3. az container logs를 실행하여 컨테이너의 로그에서 출력을 검토합니다.

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    다음 출력이 표시됩니다.

    [('the', 990),
     ('and', 702),
     ('of', 628),
     ('to', 610),
     ('I', 544),
     ('you', 495),
     ('a', 453),
     ('my', 441),
     ('in', 399),
     ('HAMLET', 386)]