편집

다음을 통해 공유


하이브리드 가용성 및 성능 모니터링

Azure Event Hubs
Azure Log Analytics
Azure Monitor
Azure Storage
Azure Virtual Machines

이 참조 아키텍처는 Azure Monitor를 사용하여 VM(가상 머신)에서 실행되는 OS(운영 체제) 워크로드의 성능 및 가용성을 모니터링하는 방법을 보여 줍니다. VM은 Microsoft Azure, 온-프레미스 환경 또는 비 Azure 클라우드에 있을 수 있습니다.

아키텍처

Azure, 온-프레미스 환경 및 타사 클라우드 공급자의 OS 워크로드에 대한 Azure Monitor의 모니터링 및 가용성 기능을 보여 주는 다이어그램. 데이터가 Log Analytics 작업 영역으로 전송되고 있습니다. 이 데이터는 Azure Monitor의 일부로 Application Insights, 분석, 시각화, 경고 및 자동 크기 조정 서비스에서 사용됩니다.

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  • 온-프레미스 본사 - VM 1. 이 구성 요소는 인터넷 액세스 및 공용 웹 페이지가 있는 웹 애플리케이션이며 Log Analytics 및 Dependency 에이전트가 모두 설치되어 있습니다. 에이전트에 대한 자세한 내용은 Log Analytics 에이전트 개요Azure Monitor 에이전트, Dependency 에이전트 개요를 참조하세요.
  • 온-프레미스 본사 - VM 2. 이 비즈니스 논리 환경에는 인터넷 액세스가 없습니다. 그러나 Log Analytics 및 Dependency 에이전트가 설치되어 있습니다.
  • 온-프레미스 본사 - VM 3. 이 구성 요소는 인터넷 액세스가 없고 Log Analytics 및 Dependency 에이전트가 설치된 데이터 저장소입니다.
  • 온-프레미스 본사 - Log Analytics 게이트웨이. Log Analytics 게이트웨이는 세 개의 온-프레미스 VM에서 로그 및 메트릭 데이터를 수집하고 포트 443의 TCP(Transmission Control Protocol)를 통해 Log Analytics 작업 영역으로 전달합니다.
  • 온-프레미스 본사 - 방화벽. 온-프레미스 환경으로의 트래픽은 방화벽을 통해 라우팅됩니다.
  • 게이트웨이. 게이트웨이는 지점 연결 기능을 제공합니다.
  • 온-프레미스 지점 - VM 4. 이 구성 요소는 인터넷 액세스 없이 실행되지만 Log Analytics 및 Dependency 에이전트가 설치된 비즈니스 애플리케이션입니다. VM에 설치된 Log Analytics 에이전트는 Log Analytics 게이트웨이 없이 Log Analytics 작업 영역으로 직접 데이터를 전송하도록 구성됩니다.
  • 온-프레미스 지점 - 게이트웨이. 이 게이트웨이는 VPN(가상 사설망)을 통해 지점과 온-프레미스 본사에 연결합니다.
  • 타사 클라우드 공급자 - VM 5. 이 구성 요소는 인터넷 액세스, 공용 웹 페이지가 있고 Log Analytics 및 Dependency 에이전트가 모두 설치된 웹 애플리케이션입니다.
  • 타사 클라우드 공급자 - VM 6. 이 구성 요소는 인터넷 액세스가 없지만 Log Analytics 및 Dependency 에이전트가 모두 설치된 데이터 저장소 환경입니다. 타사 클라우드 공급자 환경에서 온-프레미스 환경으로의 직접 연결은 없습니다.
  • Azure - VMSS. Azure Virtual Machine Scale Sets를 사용하여 만든 확장 집합입니다. 로그 분석 및 진단 에이전트가 설치된 비즈니스 애플리케이션을 실행합니다.
  • Azure - 애플리케이션 서버. 이 서버에는 Log Analytics 및 진단 에이전트가 설치된 비즈니스 애플리케이션을 실행하는 단일 VM이 있습니다.
  • Azure Monitor 메트릭. Azure Monitor 메트릭에서 수집한 데이터는 타임스탬프가 있는 데이터를 분석하는 데 최적화된 시계열 데이터베이스에 저장됩니다. 또한 온-프레미스 VM 및 Azure VM에서 보낸 메트릭도 저장합니다.
  • Azure Monitor - Log Analytics 작업 영역. 이 작업 영역은 타사 클라우드 공급자의 온-프레미스 VM, Azure VM 및 VM에서 보낸 로그를 저장합니다. 작업 영역은 데이터가 집계되는 Azure 리소스이며 이 데이터에 액세스하기 위한 관리 경계 역할을 합니다. 그런 다음, 다른 Azure Monitor 서비스는 Log Analytics 작업 영역에 연결하고 다양한 용도로 데이터를 사용합니다. 자세한 내용은 Azure Monitor 로그 배포 설계를 참조하세요.
  • Azure Monitor - Insights - Application Insights. Application Insights는 애플리케이션에 대한 분석과 해당 사용에 대한 인사이트를 제공합니다. 이 예제 아키텍처에서 가용성 ping 테스트는 온-프레미스 웹 애플리케이션의 가용성을 확인합니다. 경고 규칙은 실패한 테스트에 대한 알림을 제공하도록 사용 설정됩니다. 자세한 내용은 Application Insights란?웹 사이트의 가용성 모니터링을 참조하세요.
  • Azure Monitor - Insights - VM용 Azure Monitor. VM 인사이트는 가상 머신 및 가상 머신 확장 집합의 성능과 상태를 모니터링합니다. 또한 실행되는 프로세스 및 다른 리소스에 대한 종속성을 모니터링합니다. 이 시나리오에서는 VM용 Azure Monitor 가상 머신에 대한 인사이트를 제공합니다. 자세한 내용은 Azure Monitor 로그란?을 참조하세요.
  • Azure Monitor - 분석. VM의 로그 및 메트릭 데이터는 Kusto 쿼리 언어(KQL)을 사용하여 Azure Monitor 메트릭 및 Log Analytics 작업 영역 내에서 쿼리됩니다. 결과는 인프라, 토폴로지 및 리소스에 대한 인사이트를 제공합니다. 자세한 내용은 Kusto: 개요Azure Monitor 로그 쿼리 예제를 참조하세요.
  • Azure Monitor 시각화. Azure Monitor는 시각화 도구를 사용하여 Azure Monitor의 서비스 간 애플리케이션 및 인프라 구성 요소 및 통신을 검토합니다. 시각화 도구에는 Azure 애플리케이션 Insight의 애플리케이션 맵, VM용 Azure Monitor 맵 기능, Azure Monitor 통합 문서 및 Azure Monitor 내에서 사용할 수 있는 다양한 대시보드 보기가 포함됩니다. 자세한 내용은 VM용 Azure Monitor 맵 기능을 사용하여 애플리케이션 구성 요소 이해, Log Analytics 데이터의 대시보드 만들기 및 공유, Azure Monitor 통합 문서를 참조하세요.
  • Azure Monitor - 통합. Azure Monitor는 다양한 파트너 및 타사 도구 및 확장과 통합됩니다. 이러한 도구 및 확장은 분석 및 시각화와 같은 기존 Azure Monitor 기능을 향상시키고 이를 기반으로 구축됩니다.
  • Azure Monitor - 작업 - 경고. 메트릭 및 로그 데이터의 변형은 이벤트의 발생을 나타낼 수 있습니다. 규칙은 경고를 트리거하고, 알림을 제공하고, 수정 응답을 시작하는 데이터 변형을 정의합니다. 이 아키텍처에서 경고가 트리거되면 자동화 Runbook은 온-프레미스 VM 및 Azure VM을 자동으로 수정합니다. 웹후크 작업, 서비스 관리 통합 및 기타 작업 유형도 사용할 수 있습니다. 자세한 내용은 Azure Monitor를 사용하여 메트릭 경고 만들기, 보기 및 관리Azure Monitor를 사용하여 로그 경고 만들기, 보기 및 관리를 참조하세요.
  • Azure Monitor - 작업 - 자동 크기 조정. 자동 크기 조정은 성능을 유지하고 비용 효율성을 높이는 deman에 따라 VM 인스턴스를 추가하거나 제거합니다. 이 아키텍처에서 자동 크기 조정에는 평균 CPU 부하(백분율)에 대해 정의된 조건이 있습니다. 조건이 충족되면 Azure Monitor 자동 크기 조정은 수요에 따라 확장 집합을 조정합니다. 자세한 내용은 Microsoft Azure의 자동 크기 조정 개요를 참조하세요.

구성 요소

이 아키텍처는 다음과 같은 구성 요소로 구성됩니다.

권장 사항

다음 모범 사례는 대부분의 시나리오에 적용되는 권장 사항입니다. 이러한 사례보다 우선되는 특정 요구 사항이 있는 경우가 아니면 모범 사례를 따릅니다.

Log Analytics 작업 영역

Log Analytics 작업 영역을 디자인할 때 다음 권장 사항을 고려합니다.

  • 대기 시간이 중요한 요소인 경우 작업 영역과 리소스를 동일한 Azure 지역에 배치합니다.
  • 단일 Log Analytics 작업 영역으로 시작하고 요구 사항이 변경되면 작업 영역의 수를 늘립니다.
  • 지리적으로 분산된 팀과 리소스가 있는 경우 지역당 하나의 작업 영역이 필요할 수 있습니다.
  • 작업 영역이 실행 중인 리소스와 동일한 구독에 있을 필요는 없습니다.

경고

더 간단한 시나리오의 경우 메트릭을 사용하여 로그가 아니라 경고에 플래그를 지정할 수 있습니다. 메트릭:

  • CPU 사용량, 사용 가능한 메모리 또는 논리 디스크 공간 등의 이벤트에 대해 개수 또는 숫자 값을 제공합니다.
  • 대기 시간이 짧습니다.
  • 초당 또는 분당 간격과 같이 더 큰 세분성을 제공합니다.
  • 문제에 대해 신속하게 알립니다.

더 심층적인 인사이트를 제공하기 위해 사용자 지정 성능 지표 또는 비즈니스별 메트릭을 수집하려면 사용자 지정 메트릭을 사용합니다. 자세한 내용은 Azure Monitor의 사용자 지정 메트릭(미리 보기)을 참조하세요.

메트릭 경고는 상황에 따라 올바른 답이 아닐 수 있습니다. 더 많은 사용자 지정 또는 더 강력한 상관 관계가 필요한 경우라도 로그 기반 경고를 사용하는 것이 좋을 수 있습니다.

분석 및 진단

분석 및 진단에 대한 다음 권장 사항을 고려합니다.

  • 더 심층적인 분석을 위해 로그를 사용합니다. 로그는 다음을 수행할 수 있습니다.

    • 이벤트에 대한 자세한 정보를 제공합니다(메트릭 대비).
    • 간헐적으로 발생합니다.
    • 초기 메트릭 플래그 후 심층적인 진단을 용이하게 합니다.
  • HTTP 데이터 수집기 API를 사용하여 로그 데이터 수집(메트릭과 유사)을 사용자 지정하여 Log Analytics 작업 영역에 로그 데이터를 보냅니다. 자세한 내용은 HTTP 데이터 수집기 API로 Azure Monitor에 로그 데이터 전송(공개 미리 보기)를 참조하세요.

  • Application Insight의 스마트 검색 기능을 사용하여 애플리케이션을 사전에 분석합니다. 스마트 검색은 Azure의 기계 학습 기능 및 통계 분석을 적용하여 성능 또는 오류 변칙, 메모리 누수 또는 일반 애플리케이션 저하와 같은 문제를 검색합니다. 자세한 내용은 Application Insights의 스마트 검색을 참조하세요.

  • VM용 Azure Monitor - 맵을 사용하여 모든 TCP 연결 아키텍처에서 서버, 프로세스, 인바운드 및 아웃바운드 연결 대기 시간, 포트 간 연결을 검토합니다. 에이전트를 설치하는 것 외에는 구성이 필요하지 않습니다. VM용 Azure Monitor - 맵을 사용하면 상호 연결된 시스템으로 서버와 상호 작용하고 참여할 수 있습니다.

Log Analytics 쿼리

KQL을 사용하여 Log Analytics 작업 영역 내의 데이터를 쿼리하여 용어, 특정 이벤트 또는 상태를 검색하여 추세를 식별하고 패턴을 분석합니다. 쿼리 탐색기를 사용하여 미리 작성된 쿼리를 찾아보고 선택하거나 수정하거나 직접 만듭니다. 작업 영역 내에서 쿼리를 실행, 저장, 공유 및 내보내고, 재사용을 위해 즐겨 찾는 쿼리를 대시보드에 고정할 수 있습니다.

에이전트 설치

Azure Policy, Azure PowerShell, Resource Manager 템플릿 또는 DSC(Desired State Configuration)와 같은 자동화 옵션을 사용하여 에이전트를 개별적으로 설치하지 않고 자동으로 대규모로 설치합니다. 자세한 내용은 Azure Policy를 사용하여 VM용 Azure Monitor 사용 설정, Azure PowerShell을 사용하여 VM용 Azure Monitor 사용 설정하이브리드 가상 머신에 VM용 Azure Monitor 사용 설정 - Desired State Configuration을 참조하세요.

대시보드

중요한 애플리케이션의 경우 Azure 대시보드 보기를 만듭니다. 중요한 애플리케이션 데이터가 필요한 사용자에게 실시간으로 공유 화면에서 대시보드를 공유하거나 사용할 수 있도록 합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

안정성

안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 보장합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

다음 고려 사항은 사용자 환경에서 가용성을 보장하는 데 도움이 됩니다.

  • 가용성 테스트. 이 아키텍처에 사용되는 URL ping 테스트는 가장 간단한 아웃사이드 인 가용성 테스트입니다. 그러나 다음과 같은 다른 옵션을 사용할 수 있습니다.
    • 다단계 웹 테스트. 복잡한 시나리오를 테스트하기 위해 시퀀스된 웹 요청의 기록을 재생합니다. 다단계 웹 테스트는 Microsoft Visual Studio Enterprise에서 만든 다음 포털에 업로드하여 실행할 수 있습니다.
    • 사용자 지정 트랙 가용성 테스트. TrackAvailability() 메서드를 사용하여 Application Insights에 테스트 결과를 보냅니다.
  • 경고. Application Insights에서 가용성 테스트를 만들 때 이벤트 경고 알림은 기본적으로 사용 설정됩니다. Azure Monitor>경고에서 알림 유형 및 세부 정보를 지정하여 경고 규칙을 편집할 수 있습니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

다음 항목은 환경을 보다 안전하게 만들기 위한 고려 사항입니다.

  • Log Analytics 작업 영역. 액세스 모드는 다음 컨텍스트 중 하나로 정의됩니다.
    • 작업 영역 컨텍스트. 작업 영역이 액세스할 권한이 있는 모든 로그를 쿼리할 수 있습니다. 이는 수직 액세스 접근 방식입니다. 예를 들어 보안 팀은 위에서 아래로 모든 리소스 데이터에 액세스해야 할 수 있습니다.
    • 리소스 컨텍스트. 특정 리소스에 대한 로그만 쿼리할 수 있습니다. 예를 들어 애플리케이션 팀은 작업 중인 특정 리소스를 위해 로그에 대한 액세스 권한을 부여받을 수 있습니다.
  • Log Analytics로 전송 중인 데이터를 보호합니다. 전송 중인 데이터는 최소 TLS(전송 계층 보안) 1.2를 사용하여 보호됩니다. 이 기능은 명시적으로 사용하도록 설정할 필요가 없습니다. 자세한 내용은 Log Analytics 데이터 보안을 참조하세요.
  • Log Analytics에서 미사용 데이터를 보호합니다. Log Analytics의 미사용 데이터는 기본적으로 256비트 AES(Advanced Encryption Standard) 암호화를 사용하여 Azure Storage에 따라 보호됩니다.
  • 스마트 검색 Application Insights에서 스마트 검색을 사용하여 애플리케이션에서 생성된 원격 분석을 분석하고 보안 문제를 검색합니다. 자세한 내용은 애플리케이션 보안 검색 팩(미리 보기)을 참조하세요.
  • AZURE Monitor를 SIEM(보안 정보 및 이벤트 관리) 도구와 통합합니다. 외부 SIEM 및 모니터링 도구를 통합하려면 Azure Monitor를 사용하여 모니터링 데이터를 이벤트 허브로 라우팅합니다. 자세한 내용은 Azure 모니터링 데이터를 이벤트 허브 및 외부 파트너로 스트리밍을 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

다음 항목은 사용자 환경에서 비용을 제어하고 관리하기 위한 고려 사항입니다.

  • Azure Monitor. Azure Monitor 비용은 소비 기반이며, 일반적으로 종량제라고도 합니다.
  • Log Analytics. 데이터 수집데이터 보존 비용을 지불해야 합니다. VM 수와 각 VM에서 수집할 것으로 예상되는 데이터 양(기가바이트)을 추정 및 예측할 수 있습니다. 일반적인 Azure VM은 매달 1GB에서 3GB 사이의 데이터를 사용합니다. Azure Monitor 로그를 사용하여 데이터 사용량을 평가하는 경우 사용자 환경의 데이터 통계를 사용하고 용량 예약으로 할인을 받습니다.
  • Application Insights 이 구성 요소는 애플리케이션에서 보내는 원격 분석 데이터의 양과 실행하는 웹 테스트 수에 따라 요금이 청구됩니다.
  • 메트릭 쿼리. 메트릭 쿼리는 이루어지는 호출의 수에 따라 요금이 청구됩니다.
  • 경고. 경고는 모니터링되는 신호의 유형 및 수에 따라 요금이 청구됩니다.
  • 알림. 알림은 보내는 알림의 유형 및 수에 따라 요금이 청구됩니다.
  • Azure Monitor. Azure Monitor의 사용량 및 예상 비용 섹션에서는 이전 31일 사용량을 기준으로 월별 비용을 예측합니다.
  • 자세한 내용은 Azure Monitor 가격 책정가격 계산기를 참조하세요.

운영 우수성

운영 우수성은 애플리케이션을 배포하고 프로덕션에서 계속 실행하는 운영 프로세스를 다룹니다. 자세한 내용은 운영 우수성 핵심 요소 개요를 참조하세요.

관리 효율

다음은 환경을 보다 쉽게 관리할 수 있도록 하기 위한 고려 사항입니다.

  • Azure Workbooks. 통합 문서를 사용하여 추가 분석을 수행하고 풍부한 보고서를 만들 수 있습니다. 통합 문서는 텍스트, 로그 쿼리, 메트릭 및 매개 변수를 결합하여 대화형 보고서를 만듭니다. 동일한 Azure 리소스에 대한 액세스를 가진 팀 구성원은 통합 문서를 편집할 수 있습니다. 통합 문서를 사용하여 대화형 보고서 VM용 Azure Monitor 만들기를 참조하세요.
  • 파트너 통합. Azure Monitor를 파트너 및 타사 도구와 통합하여 분석, 시각화, 경고 또는 서비스 관리 및 Azure Pipelines를 지원합니다. 자세한 내용은 Azure Monitor 파트너 통합을 참조하세요.
  • Azure Monitor를 Microsoft System Center와 통합합니다. Azure Monitor를 System Center 제품군과 통합합니다. 자세한 내용은 Azure Monitor에 Operations Manager 연결을 참조하세요.
  • Azure Event Hubs에 데이터를 보냅니다. Azure Monitor를 시각화 및 외부 모니터링 도구와 통합하려면 Azure 모니터링 데이터를 이벤트 허브 또는 외부 파트너로 스트리밍을 참조하세요.
  • Log Analytics 게이트웨이. 지점과 같은 소규모 환경의 경우 에이전트를 사용하여 게이트웨이가 아닌 Log Analytics 작업 영역으로 데이터를 전송합니다. 자세한 내용은 Azure Log Analytics에 로그 보내기를 참조하세요.

DevOps

다음은 DevOps 프로세스 및 솔루션과 환경을 통합하기 위한 고려 사항입니다.

  • Application Insights Application Insights를 Azure Pipelines에 통합하여 성능 및 유용성을 개선합니다. Application Insights는 성능 이상을 자동으로 검색할 수 있습니다. Azure DevOps Services 및 GitHub와 같은 다양한 개발 도구에 연결됩니다.
  • 애플리케이션 계측. Application Insights를 사용하여 원격 분석을 사용하도록 애플리케이션 코드를 수정하여 애플리케이션을 계측합니다. 다음 방법은 애플리케이션을 계측하는 방법입니다.
    • 런타임 시. 런타임 시 서버에서 웹 애플리케이션을 계측하는 방식은 코드를 업데이트할 필요가 없으므로 이미 배포된 애플리케이션에 적합합니다. 적합한 시나리오는 다음과 같습니다.
      • Azure Web Apps에서 호스트되는 Microsoft ASP.NET 또는 ASP.NET Core 애플리케이션
      • 가상 머신 또는 가상 머신 확장 집합의 Microsoft IIS(인터넷 정보 서비스)에서 호스트되는 ASP.NET 애플리케이션
      • IIS 온-프레미스 VM에 호스트되는 ASP.NET 애플리케이션
      • Java 기반 Azure Functions
      • Linux App Services의 Node.JS 앱
      • AKS에서 호스트되는 마이크로 서비스
    • 개발 시. 코드에 Application Insights를 추가하여 원격 분석 컬렉션을 사용자 지정하고 더 많은 데이터를 보냅니다. 지원되는 언어 및 플랫폼은 다음과 같습니다.
      • ASP.NET 애플리케이션
      • ASP.NET Core 애플리케이션
      • .NET 콘솔 애플리케이션
      • Java
      • Node.js
      • Python
  • ITSMC(IT 서비스 관리 커넥터)를 사용하면 Azure와 지원되는 ITSM(IT 서비스 관리) 제품/서비스를 연결할 수 있습니다. ITSMC는 일반적으로 문제 관련 작업 항목이 있는 지원되는 ITSM 제품 및 서비스에 Azure를 연결합니다. 자세한 내용은 IT 서비스 관리 커넥터를 사용하여 ITSM 도구에 Azure 연결을 참조하세요.

성능 효율성

성능 효율성은 워크로드가 사용자의 요구 사항을 충족하기 위해 효율적인 방식으로 스케일 인되는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

다음은 환경의 크기 조정을 위한 고려 사항입니다.

  • 리소스 및 애플리케이션의 설치 및 구성을 자동화합니다.
  • 지리적으로 분산된 대규모 애플리케이션. Application Insights 내에서 분산 추적을 사용하여 여러 애플리케이션 구성 요소, 백 엔드 리소스 및 마이크로 서비스 환경에서 종속성 및 호출을 추적합니다. 분산 추적을 사용하면 로컬 스택 외부의 프로세스 경계를 넘어 호출하는 애플리케이션을 디버그할 수 있습니다. (사용하도록 설정할 필요가 없습니다. 분산 추적은 App Insights의 일부로 자동으로 사용할 수 있습니다.)
    • 분산 추적 데이터를 사용하는 두 가지 옵션은 다음과 같습니다.
      • 트랜잭션 진단 환경 이 환경은 시간 차원이 추가된 호출 스택과 비슷합니다. 트랜잭션 진단 보기는 하나의 단일 트랜잭션/요청에 대한 표시 유형을 제공합니다. 요청 단위를 기준으로 안정성 문제와 성능 병목 현상의 근본 원인을 찾는 데 유용합니다. 자세한 내용은 분산 추적이란?을 참조하세요.
      • 애플리케이션 맵 환경. 이렇게 하면 많은 트랜잭션이 집계되어 시스템이 토폴로지 방식으로 상호 작용하는 방법을 보여 주며 평균 성능 및 오류율을 제공합니다. 자세한 내용은 애플리케이션 맵: 분산 애플리케이션 심사를 참조하세요.

다음 단계

구성 요소 기술에 대해 자세히 알아보세요.

관련 아키텍처 살펴보기: