Anomaly Detector API에 대해 Docker 컨테이너 설치 및 실행
Important
2023년 9월 20일부터 새로운 Anomaly Detector 리소스를 만들 수 없습니다. Anomaly Detector 서비스는 2026년 10월 1일에 사용 중지됩니다.
참고 항목
컨테이너 이미지 위치가 최근에 변경되었습니다. 이 컨테이너의 업데이트된 위치를 확인하려면 이 문서를 참조하세요.
컨테이너를 사용하면 사용자 고유의 환경에서 Anomaly Detector API를 사용할 수 있습니다. 컨테이너는 특정 보안 및 데이터 거버넌스 요구 사항에 적합합니다. 이 문서에서는 Anomaly Detector 컨테이너를 다운로드, 설치, 실행하는 방법을 알아봅니다.
Anomaly Detector는 온-프레미스 환경에서 API를 사용하기 위한 단일 Docker 컨테이너를 제공합니다. 컨테이너를 사용하여 다음을 수행합니다.
- 데이터에 Anomaly Detector의 알고리즘을 사용합니다.
- 스트리밍 데이터를 모니터링하고 이상이 발생하면 실시간으로 검색합니다.
- 일괄 처리로 데이터 세트 전체의 변칙을 검색합니다.
- 일괄 처리로 데이터 세트에서 추세 변화 포인트를 검색합니다.
- 데이터에 더 적합하도록 변칙 검색 알고리즘의 민감도를 조정합니다.
API에 대한 자세한 정보는 다음을 참조하세요.
Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
사전 요구 사항
Anomaly Detector 컨테이너를 사용하기 전에 다음 사전 요구 사항을 충족해야 합니다.
Required | 목적 |
---|---|
Docker 엔진 | 호스트 컴퓨터에 설치된 Docker 엔진이 필요합니다. Docker는 macOS, Windows 및 Linux에서 Docker 환경을 구성하는 패키지를 제공합니다. Docker 및 컨테이너에 대한 기본 사항은 Docker 개요를 참조하세요. Docker는 컨테이너에서 Azure에 연결하여 청구 데이터를 보낼 수 있도록 구성해야 합니다. Windows에서 Docker는 Linux 컨테이너를 지원하도록 구성해야 합니다. |
Docker 사용 경험 | 기본 docker 명령에 대한 지식뿐만 아니라 레지스트리, 리포지토리, 컨테이너 및 컨테이너 이미지와 같은 Docker 개념에 대해 기본적으로 이해해야 합니다. |
Anomaly Detector 리소스 | 이러한 컨테이너를 사용하려면 다음이 있어야 합니다. 연결된 API 키 및 엔드포인트 URI를 가져오기 위한 Azure Anomaly Detector 리소스가 있어야 합니다. 두 값은 모두 Azure Portal의 Anomaly Detector 개요 및 키 페이지에서 사용할 수 있으며 컨테이너를 시작하는 데 필요합니다. {API_KEY}: 키 페이지에 제공된 두 개의 리소스 키 중 하나 {ENDPOINT_URI}: 개요 페이지에 제공된 엔드포인트 |
필수 매개 변수 수집
모든 Azure AI 컨테이너에는 세 가지 기본 매개 변수가 필요합니다. Microsoft Software 사용 조건에는 동의 값이 있어야 합니다. 엔드포인트 URI 및 API 키도 필요합니다.
엔드포인트 URI
{ENDPOINT_URI}
값은 해당 Azure AI 서비스 리소스의 Azure Portal 개요 페이지에서 확인할 수 있습니다. 개요 페이지로 이동하여 엔드포인트를 마우스로 가리키고 클립보드에 복사 아이콘이 나타납니다. 필요한 경우 엔드포인트를 복사하여 사용합니다.
구성
{API_KEY}
값은 컨테이너를 시작하는 데 사용되며 해당 Azure AI 서비스 리소스에 대한 Azure portal의 키 페이지에서 사용할 수 있습니다. 키 페이지로 이동하여 클립보드에 복사 아이콘을 선택합니다.
Important
이러한 구독 키는 Azure AI 서비스 API에 액세스하는 데 사용됩니다. 키를 공유하지 마세요. 안전하게 저장하세요. 예를 들어 Azure Key Vault를 사용합니다. 또한 이러한 키를 정기적으로 다시 생성하는 것이 좋습니다. API 호출을 수행하는 데는 키가 하나만 필요합니다. 첫 번째 키를 다시 생성하는 경우 두 번째 키를 사용하여 서비스에 계속 액세스할 수 있습니다.
호스트 컴퓨터
호스트는 Docker 컨테이너를 실행하는 x64 기반 컴퓨터입니다. 다음과 같이 Azure에서 컴퓨터 온-프레미스 또는 Docker 호스팅 서비스일 수 있습니다.
- Azure Kubernetes Service.
- Azure Container Instances.
- Kubernetes 클러스터는 Azure Stack에 배포됩니다. 자세한 내용은 Azure Stack에 Kubernetes 배포를 참조하세요.
컨테이너 요구 사항 및 추천
다음 표에서는 Anomaly Detector 컨테이너에 할당해야 하는 최소/권장 CPU 코어 수와 메모리에 대해 설명합니다.
QPS(초당 쿼리 수) | 최소 | 권장 |
---|---|---|
10 QPS | 4코어, 1GB 메모리 | 8코어, 2GB 메모리 |
20 QPS | 8코어, 2GB 메모리 | 16코어, 4GB 메모리 |
각 코어는 속도가 2.6GHz 이상이어야 합니다.
docker run
명령의 일부로 사용되는 --cpus
및 --memory
설정에 해당하는 코어 및 메모리.
docker pull
을 사용하여 컨테이너 이미지 가져오기
Anomaly Detector 컨테이너 이미지는 mcr.microsoft.com
컨테이너 레지스트리 신디케이트에서 찾을 수 있습니다. azure-cognitive-services/decision
리포지토리 내에 있으며 이름은 anomaly-detector
입니다. 정규화된 컨테이너 이미지 이름은 mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector
입니다.
최신 버전의 컨테이너를 사용하려면 latest
태그를 사용할 수 있습니다. MCR에서 이미지 태그의 전체 목록을 찾을 수도 있습니다.
docker pull
명령을 사용하여 컨테이너 이미지를 다운로드합니다.
컨테이너 | 리포지토리 |
---|---|
cognitive-services-anomaly-detector | mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest |
팁
docker pull
을 사용할 때 컨테이너 레지스트리, 리포지토리, 컨테이너 이미지 이름 및 해당 태그는 주의해야 합니다. 이때 대/소문자가 구분됩니다.
팁
docker images 명령을 사용하여 다운로드한 컨테이너 이미지를 나열할 수 있습니다. 예를 들어 다음 명령은 다운로드한 각 컨테이너 이미지의 ID, 리포지토리 및 태그를 테이블 형식으로 나열합니다.
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Anomaly Detector 컨테이너에 대한 Docker pull
docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest
컨테이너사용 방법
컨테이너가 호스트 컴퓨터에 있으면 다음 프로세스를 사용하여 컨테이너 작업을 수행합니다.
- 필수 청구 설정을 사용하여 컨테이너를 실행합니다.
docker run
명령의 자세한 예를 사용할 수 있습니다. - 컨테이너의 예측 엔드포인트를 쿼리합니다.
docker run
을 사용하여 컨테이너 실행
docker run 명령을 사용하여 컨테이너를 실행합니다. {ENDPOINT_URI}
및 {API_KEY}
값을 가져오는 방법에 대한 자세한 내용은 필수 매개 변수 수집을 참조하세요.
docker run
명령의 예를 사용할 수 있습니다.
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
이 명령은 다음을 수행합니다.
- 컨테이너 이미지에서 Anomaly Detector 컨테이너 실행
- 1개 CPU 코어 및 4GB 메모리 할당
- 5000 TCP 포트 표시 및 컨테이너에 의사-TTY 할당
- 종료 후 자동으로 컨테이너를 제거합니다. 컨테이너 이미지는 호스트 컴퓨터에서 계속 사용할 수 있습니다.
Important
컨테이너를 인스턴스화하려면 Eula
, Billing
및 ApiKey
옵션을 지정해야 합니다. 그렇지 않으면 컨테이너가 시작되지 않습니다. 자세한 내용은 Billing을 참조하세요.
동일한 호스트에서 여러 컨테이너 실행
노출된 포트로 여러 컨테이너를 실행하려는 경우, 각 컨테이너를 다른 포트로 실행해야 합니다. 예를 들어 첫 번째 컨테이너는 포트 5000에서 실행하고 두 번째 컨테이너는 포트 5001에서 실행합니다.
<container-registry>
와 <container-name>
을 사용하는 컨테이너의 값으로 대체합니다. 동일한 컨테이너일 필요는 없습니다. Anomaly Detector 컨테이너 및 LUIS 컨테이너를 HOST에서 함께 실행하거나 여러 Anomaly Detector 컨테이너를 실행할 수 있습니다.
호스트 포트 5000에서 첫 번째 컨테이너를 실행합니다.
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
호스트 포트 5001에서 두 번째 컨테이너를 실행합니다.
docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
이후의 각 컨테이너는 다른 포트에 있어야 합니다.
컨테이너의 예측 엔드포인트 쿼리
컨테이너는 REST 기반 쿼리 예측 엔드포인트 API를 제공합니다.
컨테이너 API에 대한 호스트 http://localhost:5000을 사용합니다.
컨테이너가 실행 중인지 확인
컨테이너가 실행되고 있는지 확인하는 방법은 여러 가지가 있습니다. 확인 대상인 컨테이너의 외부 IP 주소 및 노출된 포트를 찾고 즐겨 찾는 웹 브라우저를 엽니다. 아래의 다양한 요청 URL을 사용하여 컨테이너가 실행되는지 확인합니다. 여기에 나열된 예제 요청 URL은 http://localhost:5000
이지만, 특정 컨테이너는 다를 수 있습니다. 컨테이너의 외부 IP 주소 및 공개된 포트를 사용해야 합니다.
요청 URL | 용도 |
---|---|
http://localhost:5000/ |
컨테이너는 홈페이지를 제공합니다. |
http://localhost:5000/ready |
GET을 사용하여 요청된 이 URL에서 컨테이너가 모델에 대한 쿼리를 수락할 준비가 되었음을 확인합니다. 이 요청은 Kubernetes 활동성 및 준비 상태 프로브에 사용될 수 있습니다. |
http://localhost:5000/status |
또한 GET을 사용하여 요청된 이 URL은 컨테이너를 시작하는 데 사용된 API 키가 엔드포인트 쿼리를 수행하지 않고 유효한지 확인합니다. 이 요청은 Kubernetes 활동성 및 준비 상태 프로브에 사용될 수 있습니다. |
http://localhost:5000/swagger |
컨테이너는 엔드포인트에 대한 전체 설명서 세트와 사용해 보기 기능을 제공합니다. 이 기능을 사용하면 웹 기반 HTML 양식으로 설정을 입력할 수 있고 코드 작성 없이 쿼리를 만들 수 있습니다. 쿼리가 반환되면 필요한 HTTP 헤더 및 본문 형식을 보여주기 위해 예제 CURL 명령이 제공됩니다. |
컨테이너 중지
컨테이너를 종료하려면 컨테이너를 실행하는 명령줄 환경에서 Ctrl+C를 선택합니다.
문제 해결
출력 탑재 및 활성화된 로깅을 사용하여 컨테이너를 실행하는 경우 컨테이너는 컨테이너를 시작 또는 실행하는 동안 발생하는 문제를 해결하는 데 도움이 되는 로그 파일을 생성합니다.
팁
자세한 문제 해결 정보 및 지침은 Azure AI 컨테이너 FAQ(자주 묻는 질문)를 참조하세요.
Azure AI 서비스 컨테이너를 실행하는 데 문제가 있는 경우 Microsoft 진단 컨테이너를 사용해 볼 수 있습니다. 이 컨테이너를 사용하여 Azure AI 컨테이너가 예상대로 작동하지 못하게 할 수 있는 배포 환경의 일반적인 오류를 진단합니다.
컨테이너를 가져오려면 다음 docker pull
명령을 사용합니다.
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
그런 다음, 컨테이너를 실행합니다. {ENDPOINT_URI}
를 엔드포인트로 바꾸고, {API_KEY}
를 리소스에 대한 키로 바꿉니다.
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
컨테이너는 청구 엔드포인트에 대한 네트워크 연결을 테스트 합니다.
결제
Anomaly Detector 컨테이너는 Azure 계정의 Anomaly Detector 리소스를 사용하여 청구 정보를 Azure로 보냅니다.
컨테이너에 대한 쿼리는 ApiKey
매개 변수에 사용되는 Azure 리소스의 가격 책정 계층으로 청구됩니다.
Azure AI 서비스 컨테이너는 측정 또는 청구 엔드포인트에 연결하지 않고 실행할 수 있는 라이선스가 부여되지 않습니다. 사용자는 컨테이너가 항상 청구 엔드포인트와 청구 정보를 통신할 수 있도록 설정해야 합니다. Azure AI 서비스 컨테이너는 분석 중인 이미지나 텍스트와 같은 고객 데이터를 Microsoft에 보내지 않습니다.
Azure에 연결
컨테이너에는 실행할 청구 인수 값이 필요합니다. 이러한 값을 통해 컨테이너는 청구 엔드포인트에 연결할 수 있습니다. 컨테이너는 약 10 ~ 15분마다 사용량을 보고합니다. 컨테이너가 허용되는 시간 내에서 Azure에 연결되지 않으면 컨테이너는 계속 실행되지만 청구 엔드포인트가 복원될 때까지 쿼리를 처리하지 않습니다. 10 ~ 15분 간격으로 동시에 10회 동안 연결이 시도됩니다. 10회 시도 안에 청구 엔드포인트에 연결할 수 없는 경우 컨테이너는 요청 처리를 중지합니다. 청구를 위해 Microsoft로 전송되는 정보의 예는 Azure AI 서비스 컨테이너 FAQ를 참조하세요.
청구 인수
다음 세 가지 옵션 모두에 유효한 값이 제공되면 컨테이너를 시작합니다. docker run
명령이 컨테이너를 시작합니다.
옵션 | 설명 |
---|---|
ApiKey |
청구 정보를 추적하는 데 사용되는 Azure AI 서비스 리소스의 API 키입니다. 이 옵션의 값은 Billing 에 지정된 프로비전된 리소스의 API 키로 설정해야 합니다. |
Billing |
청구 정보를 추적하는 데 사용되는 Azure AI 서비스 리소스의 엔드포인트입니다. 이 옵션의 값은 프로비저닝된 Azure 리소스의 엔드포인트 URI로 설정해야 합니다. |
Eula |
컨테이너에 대한 라이선스에 동의했음을 나타냅니다. 이 옵션의 값은 동의로 설정해야 합니다. |
이러한 옵션에 대한 자세한 내용은 컨테이너 구성을 참조하세요.
요약
이 문서에서는 Anomaly Detector 컨테이너를 다운로드하고, 설치하고, 실행하는 개념 및 워크플로에 대해 알아보았습니다. 요약:
- Anomaly Detector는 Docker용 Linux 컨테이너 한 개를 제공하여 일괄 대 스트리밍, 예상 범위 유추, 민감도 튜닝으로 변칙 검색을 캡슐화합니다.
- 컨테이너 이미지는 컨테이너 전용 프라이빗 Azure Container Registry에서 다운로드됩니다.
- 컨테이너 이미지는 Docker에서 실행됩니다.
- REST API 또는 SDK를 사용하여 컨테이너의 호스트 URI를 지정함으로써 Anomaly Detector 컨테이너에서 작업을 호출할 수 있습니다.
- 컨테이너를 인스턴스화할 때 청구 정보를 지정해야 합니다.
Important
Azure AI 컨테이너는 측정을 위해 Azure에 연결하지 않고 실행할 수 있는 라이선스가 부여되지 않습니다. 고객은 컨테이너에서 항상 계량 서비스와 청구 정보를 통신할 수 있도록 설정해야 합니다. Azure AI 컨테이너는 고객 데이터(예: 분석 중인 시계열 데이터)를 Microsoft로 보내지 않습니다.