연습 - Azure Container Instances 문제 해결
컨테이너 인스턴스 문제를 해결하는 기본적인 방법을 이해할 수 있도록 다음과 같은 기본적인 작업 몇 가지를 수행합니다.
- 컨테이너 로그 끌어오기
- 컨테이너 이벤트 보기
- 컨테이너 인스턴스에 연결
이전에 배포한 컨테이너 인스턴스에서 로그 가져오기
이전 연습에서 만든 고양이 및 강아지 투표 앱 컨테이너의 출력을 보려면 az container logs
명령을 실행합니다.
az container logs \
--resource-group learn-deploy-aci-rg \
--name aci-demo-files
다음과 유사한 결과를 얻게 됩니다.
Checking for script in /app/prestart.sh
Running script /app/prestart.sh
Running inside /app/prestart.sh, you could add migrations to this file, e.g.:
#! /usr/bin/env bash
# Let the DB start
sleep 10;
# Run migrations
alembic upgrade head
…
컨테이너 이벤트 가져오기
az container attach
명령은 컨테이너 시작 중에 진단 정보를 제공합니다. 컨테이너가 시작되면 표준 출력 및 표준 오류 스트림도 로컬 터미널에 씁니다.
az container attach
를 실행하여 컨테이너에 연결합니다.
az container attach \
--resource-group learn-deploy-aci-rg \
--name aci-demo-files
다음과 유사한 결과를 얻게 됩니다.
Container 'aci-demo-files' is in state 'Running'...
(count: 1) (last timestamp: 2021-09-21 23:48:14+00:00) pulling image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:09+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/azure-vote-front"
(count: 1) (last timestamp: 2021-09-21 23:49:12+00:00) Created container
(count: 1) (last timestamp: 2021-09-21 23:49:13+00:00) Started container
Start streaming logs:
Checking for script in /app/prestart.sh
Running script /app/prestart.sh
…
팁
연결된 컨테이너에서 연결을 끊으려면 Ctrl+C를 입력합니다.
컨테이너에서 명령 실행
문제를 진단하고 해결할 때는 실행 중인 컨테이너에서 직접 명령을 실행해야 합니다.
컨테이너에서 이 명령을 보려면 다음
az container exec
명령을 실행하여 컨테이너에 대한 대화형 세션을 시작합니다.az container exec \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --exec-command /bin/sh
이때 컨테이너 내부에서 효과적으로 작업할 수 있습니다.
ls
명령을 실행하여 작업 디렉터리의 내용을 표시합니다.# ls __pycache__ config_file.cfg main.py prestart.sh static templates uwsgi.ini
원한다면 시스템을 더 자세히 탐색할 수 있습니다. 완료되면
exit
명령을 실행하여 대화형 세션을 중지합니다.
컨테이너의 CPU 및 메모리 사용량 모니터링
컨테이너의 CPU 및 메모리 사용량을 모니터링하는 방법을 알아봅니다.
다음
az container show
명령을 실행하여 Azure 컨테이너 인스턴스의 ID를 가져와서 Bash 변수에 저장합니다.CONTAINER_ID=$(az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query id \ --output tsv)
az monitor metrics list
명령을 실행하여 CPU 사용량 정보를 검색합니다.az monitor metrics list \ --resource $CONTAINER_ID \ --metrics CPUUsage \ --output table
--metrics
인수를 참고합니다. 이때 CPUUsage는 CPU 사용량을 검색하도록 지정됩니다.다음 결과와 유사한 텍스트를 보게 됩니다.
Timestamp Name Average ------------------- ------------ ----------- 2021-09-21 23:39:00 CPU Usage 2021-09-21 23:40:00 CPU Usage 2021-09-21 23:41:00 CPU Usage 2021-09-21 23:42:00 CPU Usage 2021-09-21 23:43:00 CPU Usage 0.375 2021-09-21 23:44:00 CPU Usage 0.875 2021-09-21 23:45:00 CPU Usage 1 2021-09-21 23:46:00 CPU Usage 3.625 2021-09-21 23:47:00 CPU Usage 1.5 2021-09-21 23:48:00 CPU Usage 2.75 2021-09-21 23:49:00 CPU Usage 1.625 2021-09-21 23:50:00 CPU Usage 0.625 2021-09-21 23:51:00 CPU Usage 0.5 2021-09-21 23:52:00 CPU Usage 0.5 2021-09-21 23:53:00 CPU Usage 0.5
이
az monitor metrics list
명령을 실행하여 메모리 사용량 정보를 검색합니다.az monitor metrics list \ --resource $CONTAINER_ID \ --metrics MemoryUsage \ --output table
여기에서
--metrics
인수에 MemoryUsage를 지정하여 메모리 사용량 정보를 검색합니다.다음 결과와 유사한 텍스트를 보게 됩니다.
Timestamp Name Average ------------------- ------------ ----------- 2021-09-21 23:43:00 Memory Usage 2021-09-21 23:44:00 Memory Usage 0.0 2021-09-21 23:45:00 Memory Usage 15917056.0 2021-09-21 23:46:00 Memory Usage 16744448.0 2021-09-21 23:47:00 Memory Usage 16842752.0 2021-09-21 23:48:00 Memory Usage 17190912.0 2021-09-21 23:49:00 Memory Usage 17506304.0 2021-09-21 23:50:00 Memory Usage 17702912.0 2021-09-21 23:51:00 Memory Usage 17965056.0 2021-09-21 23:52:00 Memory Usage 18509824.0 2021-09-21 23:53:00 Memory Usage 18649088.0 2021-09-21 23:54:00 Memory Usage 18845696.0 2021-09-21 23:55:00 Memory Usage 19181568.0
Azure Portal의 Azure Container Instances CPU 및 메모리 사용량 정보는 다음과 같이 표시됩니다.
리소스 정리
이 모듈에서는 Azure 구독을 사용하여 리소스를 만들었습니다. 이러한 리소스에 대한 요금이 계속 청구되지 않도록 해당 리소스를 정리합니다.
Azure 홈페이지에서 모든 리소스를 선택합니다.
learn-deploy-aci-rg 리소스 그룹 또는 사용한 리소스 그룹 이름을 찾아 선택합니다.
리소스 그룹의 개요 탭에서 리소스 그룹 삭제를 선택합니다.
새 대화 상자가 열립니다. 리소스 그룹 이름을 다시 입력하고 삭제를 선택합니다. 이 모듈에서 만든 리소스가 모두 삭제됩니다.