[AI] Azure MCP + GitHub Copilot으로 자연어 기반 Azure 리소스 관리·운영 자동화

2025. 11. 28. 16:40·AI
반응형

1. 문제 정의

대규모 Azure 환경에서는 다음과 같은 문제가 반복된다.

  • 리소스가 구독·리소스 그룹·지역에 분산되어 있어 전체 현황 파악이 어렵다.
  • Azure CLI, PowerShell, Portal, Bicep/Terraform 등 도구가 분절되어 있어 운영 자동화 흐름이 복잡하다.
  • 운영 담당자는 반복적인 조회·점검·스크립트 실행 작업에 많은 시간을 소모한다.

Azure MCP Server + GitHub Copilot for Azure 조합은 이러한 문제를 완화한다.

Model Context Protocol(MCP)를 통해 GitHub Copilot이 Azure 리소스에 직접 접근하고, 자연어 프롬프트만으로 조회·분석·자동화 작업을 수행할 수 있다. Microsoft Learn+2Microsoft Learn+2


2. 왜 Azure MCP + GitHub Copilot이 필요한가

2.1 기존 운영 방식의 한계

  • Portal에서 수동 클릭으로 리소스 상태를 확인
  • CLI/PowerShell에서 구문을 기억해야만 하는 스크립트 실행
  • Bicep/Terraform 템플릿을 직접 작성·수정해야 하는 IaC 워크플로

이 방식은 사람의 기억력과 문서 검색에 의존한다. 운영자가 바뀌거나 환경이 커질수록 오탈자·설정 누락·중복 구성이 발생하기 쉽다.

2.2 자연어 기반 운영의 장점

GitHub Copilot for Azure는 자연어로 “현재 구독의 App Service를 나열해 줘”, “이 리소스 그룹의 비용을 분석해 줘”와 같은 요청을 처리할 수 있다. Microsoft Learn+2비주얼 스튜디오 마켓플레이스+2

Azure MCP Server는 MCP를 통해 Copilot 에이전트가 Azure Resource Manager, Azure Monitor, Storage, Resource Health 등 40개 이상의 Azure 서비스에 접근할 수 있도록 표준화된 인터페이스를 제공한다. Skywork+3Microsoft Learn+3GitHub+3

결과적으로 다음과 같은 효과를 얻을 수 있다.

  • Azure 리소스 조회·분석·진단 작업의 자연어 자동화
  • 기존 Bicep/Terraform 템플릿과 연계한 배포 자동화 Microsoft Learn
  • 운영 스크립트 작성·리팩터링·설명 문서화의 자동화

3. 사전 준비사항

3.1 계정 및 구독

  • Azure 계정 및 Azure Subscription 접근 권한 Microsoft Learn+1
  • GitHub 계정 및 GitHub Copilot 구독(개인 또는 Enterprise) Microsoft Learn+1

3.2 개발 환경

  • Visual Studio Code(또는 VS Code Insiders) 설치 code.visualstudio.com
  • Node.js 20 이상(로컬 Azure MCP Server 실행에 필요) TECHCOMMUNITY.MICROSOFT.COM+1
  • Azure CLI 설치 및 az login 으로 로그인 상태 유지 (Device Code 또는 브라우저 로그인)

3.3 확장(Extension)

VS Code에서 다음 확장을 설치한다.

  1. GitHub Copilot
  2. GitHub Copilot Chat
  3. GitHub Copilot for Azure (ms-azuretools.vscode-azure-github-copilot) Microsoft Learn+2비주얼 스튜디오 마켓플레이스+2
  4. Azure MCP Server (ms-azuretools.vscode-azure-mcp-server) 비주얼 스튜디오 마켓플레이스+1
 

Azure MCP Server - Visual Studio Marketplace

Extension for Visual Studio Code - Provides Model Context Protocol (MCP) integration and tooling for Azure in Visual Studio Code.

marketplace.visualstudio.com


4. 기술 개념 설명

4.1 Model Context Protocol(MCP)

MCP는 AI 모델과 외부 도구·데이터 소스를 연결하는 개방형 표준 프로토콜이다. GitHub+2Anthropic+2

  • MCP Client: VS Code + GitHub Copilot과 같은 AI 어시스턴트
  • MCP Server: Azure MCP Server, Microsoft Learn MCP Server 등
  • MCP Tools: “리소스 그룹 나열”, “Log Analytics 쿼리 실행” 등 구체적인 기능 단위

MCP는 일종의 “AI용 USB-C 인터페이스”로, 클라이언트는 MCP 서버만 추가하면 새로운 도구를 학습 없이 사용할 수 있다.

4.2 Azure MCP Server

Azure MCP Server는 MCP 사양을 구현한 서버로, GitHub Copilot 에이전트가 Azure 리소스를 관리할 수 있도록 도구 세트를 제공한다. Microsoft Learn+4Microsoft Learn+4GitHub+4

주요 도구 예시는 다음과 같다.

  • Subscription: 구독 목록 조회 Microsoft Learn
  • Resource Group: 리소스 그룹 목록 조회, 특정 그룹 내 리소스 탐색 Microsoft Learn+2Microsoft Learn+2
  • Storage: Storage 계정·컨테이너·Blob 목록 조회 및 상세 정보 확인 Microsoft Learn+1
  • Monitor / Logs: Log Analytics 워크스페이스 목록, KQL 쿼리 실행 Microsoft Learn+1
  • Metrics / Resource Health: 리소스 상태 및 메트릭 조회 Microsoft Learn+1

Azure MCP Server는 현재 Public Preview이며, GA 이전에 구현과 도구 목록이 변경될 수 있다. GitHub+1

4.3 GitHub Copilot for Azure

GitHub Copilot for Azure는 Copilot에 Azure 전용 도구를 제공하는 확장이다. 자연어로 다음과 같은 작업을 수행할 수 있다. Microsoft Learn+2비주얼 스튜디오 마켓플레이스+2

  • Azure 서비스 이해: @azure 태그로 서비스 개념 질의
  • Azure 리소스 조회: 현재 구독의 Web App, Container Apps 등 나열
  • 배포 도우미: Bicep/Terraform 기반 리소스 배포 보조
  • 문제 진단: 리소스 상태, 로그, 구성 오류 설명

Copilot Chat의 Agent Mode에서 Azure MCP Server와 함께 사용할 때, Copilot은 Workspace 코드(Bicep/Terraform)와 실제 Azure 리소스를 동시에 인식하여 작업을 수행한다. Microsoft Learn+2Microsoft Learn+2


5. 실제 구성 방법 (CLI / Portal 포함)

5.1 VS Code에서 Azure MCP Server 설정

  1. VS Code에서 Extensions 탭을 열고 Azure MCP Server 검색 후 설치. 비주얼 스튜디오 마켓플레이스
  2. Command Palette(Ctrl+Shift+P) → MCP: Add Server 실행 또는 .vscode/mcp.json 파일 직접 생성. code.visualstudio.com+2GitHub Docs+2

.vscode/mcp.json 예시:

{
  "servers": {
    "azure-mcp-server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"]
    }
  }
}

TECHCOMMUNITY.MICROSOFT.COM+1

  1. VS Code 재시작 후, GitHub Copilot Chat에서 MCP 서버가 인식되는지 확인한다.

5.2 Azure 인증

Azure MCP Server는 Azure CLI 자격 증명 또는 인터랙티브 로그인을 사용해 Azure에 인증한다. Microsoft Learn+1

터미널에서 다음 명령을 실행한다.

az login
az account set --subscription "<구독 이름 또는 ID>"

5.3 GitHub Copilot for Azure 설정

  1. VS Code에서 GitHub Copilot for Azure 확장을 설치한다. 비주얼 스튜디오 마켓플레이스+1
  2. Copilot Chat 창을 열고, 모드를 Agent mode로 변경한다. Microsoft Learn+1
  3. 도구 목록에서 Azure MCP Server 및 Azure tools를 활성화한다. Microsoft Learn+2Microsoft Learn+2

5.4 Portal에서 결과 확인

예를 들어 Copilot이 생성한 리소스 그룹·Storage 계정·Log Analytics 워크스페이스는 Azure Portal의 다음 메뉴에서 확인할 수 있다.

  • Resource groups
  • Storage accounts
  • Log Analytics workspaces

이 과정을 통해 자연어로 수행한 작업이 실제 Azure 리소스에 반영되었는지 검증한다.


6. 단계별 튜토리얼

6.1 시나리오 개요

목표: 자연어로 다음 작업을 수행한다.

  1. 현재 구독의 리소스 그룹 목록 조회
  2. 신규 리소스 그룹 및 Storage 계정, 컨테이너 생성
  3. Log Analytics 워크스페이스 조회 및 KQL 쿼리 실행
  4. 특정 리소스 그룹의 리소스·상태 분석

아래 단계는 VS Code + GitHub Copilot Chat 기준이다.


6.2 Step 1 – 리소스 그룹 조회

Copilot Chat (Agent mode)에 다음과 같이 입력한다.

“Azure MCP Server를 사용해서 현재 구독의 모든 리소스 그룹을 나열해 줘.”

Azure MCP Server의 group 도구는 “List resource groups” 작업을 수행하며, 자연어 프롬프트로 이를 호출할 수 있다. Microsoft Learn+2Microsoft Learn+2

결과 예시(요약):

Resource groups in subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:
- rg-hub-network (korea central)
- rg-aks-prod (korea south)
- rg-log-monitor (korea central)
...


6.3 Step 2 – 신규 리소스 그룹 및 Storage 계정 생성

  1. 먼저 원하는 이름·지역·태그 정책을 Copilot에게 설명한다.

프롬프트 예시:

“korea central 지역에 rg-mcp-demo라는 리소스 그룹을 만들고, 환경 태그 env=dev 를 적용하는 Azure CLI 스크립트를 작성해 줘.”

Copilot이 제안하는 스크립트 예시:

az group create \\
  --name rg-mcp-demo \\
  --location koreacentral \\
  --tags env=dev

  1. Storage 계정 생성 스크립트 요청:

“같은 리소스 그룹에 stmcpmgmt Storage 계정을 생성하고, 기본 컨테이너 logs 를 만드는 CLI 명령을 작성해 줘.”

예시 스크립트:

az storage account create \\
  --name stmcpmgmt \\
  --resource-group rg-mcp-demo \\
  --location koreacentral \\
  --sku Standard_LRS \\
  --kind StorageV2

az storage container create \\
  --name logs \\
  --account-name stmcpmgmt

  1. 터미널에서 해당 스크립트를 실행한다.
  2. Azure Portal → Resource groups → rg-mcp-demo 에서 리소스 생성 여부를 확인한다.

6.4 Step 3 – 자연어로 Storage 리소스 탐색

이제 Copilot에게 다음을 요청한다.

“Azure MCP Server 도구를 사용해서 rg-mcp-demo 리소스 그룹 내의 Storage 계정과 컨테이너 목록을 보여 줘.”

Azure MCP Server의 Storage 관련 도구(storage-account-list, storage-blob-container-list)가 호출되어 결과를 반환한다. Microsoft Learn+2Docker Hub+2

Copilot은 응답과 함께 “필요 시 특정 계정/컨테이너에 대한 세부 정보를 확인하는 추가 프롬프트”도 제안할 수 있다.


6.5 Step 4 – Log Analytics 및 로그 분석 자동화

  1. Copilot에게 Log Analytics 워크스페이스 목록을 요청한다.

“Azure MCP Server로 현재 구독의 Log Analytics 워크스페이스를 나열해 줘.”

  1. 특정 워크스페이스에서 최근 1시간 동안 오류 로그를 조회하기 위한 KQL을 생성하도록 지시한다.

“koreacentral의 law-prod 워크스페이스에서 최근 1시간의 에러 로그를 요약하는 KQL 쿼리를 작성하고, Azure MCP Server를 통해 실행해 줘.”

Azure MCP Server의 monitor-workspace-list, monitor-log-query 도구가 사용되며, 결과는 Copilot Chat에 표나 요약 텍스트 형태로 표시된다. Microsoft Learn+2Docker Hub+2


6.6 Step 5 – 상태 점검 및 운영 리포트 생성

  1. 리소스 상태 점검:

“rg-aks-prod 리소스 그룹의 주요 리소스 상태(Availability, Metrics)를 요약해 줘.”

Azure Service Health 및 Metrics 도구를 사용해 가용성·지표 정보를 가져온다. GitHub+1

  1. Copilot에게 운영 리포트 초안 생성을 요청한다.

“앞에서 조회한 리소스 그룹·Storage·로그·상태 정보를 기반으로 오늘 날짜 기준 운영 점검 리포트를 Markdown 형식으로 정리해 줘.”

이렇게 하면 AI가 수집한 데이터를 바탕으로 운영 보고서 마크다운 초안을 자동으로 생성할 수 있다.


7. 구성 예시 / 샘플

7.1 MCP 서버 설정 파일 예시

{
  "servers": {
    "azure-mcp-server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"],
      "env": {
        "AZURE_SUBSCRIPTION_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }
    }
  }
}

TECHCOMMUNITY.MICROSOFT.COM+1

7.2 Bicep 템플릿 + Copilot 연계 예시

main.bicep:

param location string = 'koreacentral'
param env string = 'dev'

resource rg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
  name: 'rg-mcp-bicep-demo'
  location: location
  tags: {
    env: env
  }
}

resource sa 'Microsoft.Storage/storageAccounts@2023-01-01' = {
  name: 'stmcpbicep${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

이 템플릿을 포함한 리포지토리를 GitHub에 두고, Copilot에게 다음과 같이 지시한다.

“이 Bicep 템플릿의 파라미터를 설명하고, env=prod 로 배포하는 az deployment sub create 명령을 생성해 줘.”

GitHub Copilot for Azure는 템플릿 구조를 이해하고 적절한 배포 명령을 제안할 수 있다. Microsoft Learn+1


8. 발생 가능한 오류 및 해결 방법

8.1 인증 오류 (Unauthorized / 401 / 403)

증상

  • Copilot 응답에 “권한이 부족하다” 또는 “인증에 실패했다”는 메시지
  • Azure MCP Server 로그에 토큰 관련 오류 표시

원인 및 대응

  1. az login 상태 확인, 필요한 경우 다시 로그인
  2. 사용 중인 계정에 해당 Subscription·리소스 그룹에 대한 최소 Reader 또는 Contributor 권한이 있는지 확인
  3. GitHub Copilot for Azure에서 사용 중인 계정과 Azure 계정이 올바르게 연결되었는지 확인 Microsoft Learn+2Microsoft Learn+2

8.2 MCP 서버 인식 실패

증상

  • Copilot Chat에서 Azure MCP Server 도구가 표시되지 않음
  • MCP 관련 로그에 “server not found” 메시지

확인 사항

  1. .vscode/mcp.json 파일의 JSON 문법 오류 여부 검증
  2. command / args 경로가 올바른지, npx 실행 가능한지 확인 code.visualstudio.com+2TECHCOMMUNITY.MICROSOFT.COM+2
  3. VS Code Command Palette에서 MCP: List Servers 또는 유사 명령으로 등록 여부 확인

8.3 자연어 프롬프트는 정상인데, 리소스가 조회되지 않는 경우

가능한 원인

  • 잘못된 Subscription이 기본 값으로 선택되어 있음
  • 리소스가 다른 Tenant/Subscription에 존재
  • 해당 리소스 타입에 대한 MCP 도구가 아직 제공되지 않음(Preview 제한) Microsoft Learn+2Skywork+2

해결 방법

  1. az account show 로 현재 활성 구독 확인, 필요 시 az account set 으로 변경
  2. Copilot 프롬프트에 “subscription xxx를 대상으로”와 같이 명시적 구독 정보를 포함
  3. 도구 목록 문서를 참고해 지원되는 리소스인지 확인 후, 미지원인 경우에는 기존 CLI/Portal과 조합해 사용 Microsoft Learn+2Microsoft Learn+2

8.4 과도한 작업 요청으로 인한 시간 초과

Copilot Agent mode에서 “모든 구독의 모든 리소스를 분석해 줘”와 같은 광범위한 요청을 하면, MCP 도구 호출이 다수 발생해 시간 초과가 발생할 수 있다.

대응 전략

  • 리소스 범위를 “특정 구독·리소스 그룹·서비스 유형” 수준으로 축소
  • “먼저 목록만 보여 달라 → 그 후 특정 리소스 그룹에 대해 상세 분석하라”와 같이 단계를 나누어 프롬프트 설계

9. 정리 및 Best Practice

9.1 핵심 요약

  • Azure MCP Server는 MCP를 통해 GitHub Copilot과 Azure 리소스를 연결하여, 자연어로 구독·리소스 그룹·Storage·모니터링·리소스 상태를 조회·분석하는 기능을 제공한다. Microsoft Learn+3Microsoft Learn+3GitHub+3
  • GitHub Copilot for Azure는 Ask/Agent 모드를 통해 Bicep/Terraform 템플릿, Azure 리소스, 공식 문서를 동시에 활용하는 운영 자동화 환경을 제공한다. Microsoft Learn+3Microsoft Learn+3비주얼 스튜디오 마켓플레이스+3
  • 두 기술을 결합하면, 기존의 수동 Portal/CLI 작업을 자연어 기반의 “에이전트형 운영 워크플로”로 전환할 수 있다.

9.2 도입 시 Best Practice

  1. 권한 최소화 원칙 적용
    • Azure MCP Server가 사용하는 서비스 프린시펄 또는 로그인 계정에는 필요한 최소 역할만 부여한다.
    • 운영·배포·진단 용도별로 계정을 분리하면 권한 관리가 용이하다.
  2. Workspace 단위 표준화
    • 각 Repository에 .vscode/mcp.json과 공통 settings.json 패턴을 두어 MCP 서버 설정을 표준화한다. code.visualstudio.com+1
  3. 프롬프트 가이드라인 정립
    • 팀 내에서 “리소스 조회 → 영향 범위 요약 → 변경 제안 → 변경 명령 검토 → 수동 실행” 순서의 프롬프트 템플릿을 정의하면 오남용을 줄일 수 있다.
    • 운영 변경(삭제·스케일 변경 등)은 Copilot이 제안하는 명령을 사람이 검토 후 실행하는 하이브리드 방식을 유지한다.
  4. 감사·로깅 체계 연계
    • Azure Activity Log, Log Analytics, SIEM(Sentinel 등)을 통해 MCP 기반 작업도 모두 감사 가능하도록 구성한다.
    • Copilot이 실행한 CLI/ARM 호출도 결국 Azure 제어 평면 로그에 남으므로, 기존 운영 프로세스와 동일한 모니터링 정책을 적용한다.
  5. Preview 상태 고려
    • Azure MCP Server는 Public Preview이므로, 프로덕션 필수 업무에서는 “보조 도구”로 시작해, 안정성이 검증된 도메인부터 확장하는 접근이 적절하다. GitHub+1

9.3 실무 적용 아이디어

  • 매일 아침 Copilot Agent 모드에서 “오늘 기준 리소스 상태·에러 로그·비용 추이를 요약해 달라”고 요청하여 자동 운영 리포트를 생성
  • Bicep/Terraform 템플릿 저장소와 연계해, 자연어로 변경 의도를 설명하면 Copilot이 템플릿 수정·검토·배포 명령까지 제안하도록 구성
  • 특정 리소스 그룹에 대해 “가용성·모니터링 지표·알림 규칙·백업 상태”를 한 번에 점검하는 운영 점검 프롬프트 세트를 정형화하여 팀 공용으로 사용

이 글이 Azure MCP와 GitHub Copilot을 활용한 자연어 기반 Azure 운영 체계를 설계하는 데 도움이 되었다면, 추후 다시 참고할 수 있도록 북마크하거나 팀원과 공유하는 것을 권장한다.

반응형

'AI' 카테고리의 다른 글

[AI] Genspark AI 소개  (0) 2026.02.20
[AI] Claude Code 확장 구조 이해하기  (0) 2026.02.19
[DevOps/AI] Claude Code와 Skill을 활용해 ‘엔지니어링 팀’ 수준의 AI 에이전트 만들기  (0) 2026.02.19
[MCP] Model Context Protocol 이해하기  (0) 2025.12.01
[Azure] Agent CLI for AKS와 AKS MCP 서버 연동으로 AI 기반 Kubernetes 관리 자동화  (0) 2025.11.28
'AI' 카테고리의 다른 글
  • [AI] Claude Code 확장 구조 이해하기
  • [DevOps/AI] Claude Code와 Skill을 활용해 ‘엔지니어링 팀’ 수준의 AI 에이전트 만들기
  • [MCP] Model Context Protocol 이해하기
  • [Azure] Agent CLI for AKS와 AKS MCP 서버 연동으로 AI 기반 Kubernetes 관리 자동화
Cloud & DevOps Engineering
Cloud & DevOps Engineering
Azure, AWS, NCP 기반의 멀티클라우드 환경에서 DevOps, Kubernetes, 자동화, 운영 노하우와 실전 아키텍처를 공유합니다.
  • Cloud & DevOps Engineering
    CMP Blog
    Cloud & DevOps Engineering
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • IT 꿀팁 (4)
      • DevOps (12)
        • Cloud (6)
        • Kubernetes (6)
      • AI (6)
      • 핑거푸드 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Terrform
    AIEngineering
    github
    aks
    copilot
    Azure
    AFID
    자격증
    kubernetes
    AI
    KeyVault
    cka
    devops
    GatewayAPI
    AGIC
    nks
    MCP
    ncp
    claudecode
    AGfC
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.5
Cloud & DevOps Engineering
[AI] Azure MCP + GitHub Copilot으로 자연어 기반 Azure 리소스 관리·운영 자동화
상단으로

티스토리툴바