Amazon CloudWatch Application Insights란? - Amazon CloudWatch

Amazon CloudWatch Application Insights란?

CloudWatch Application Insights를 사용하면 다른 애플리케이션 리소스와 함께 Amazon EC2 인스턴스를 사용하는 애플리케이션을 모니터링할 수 있습니다. 이 기능은 애플리케이션 리소스 및 기술 스택(예: Microsoft SQL Server 데이터베이스, 웹(IIS) 및 애플리케이션 서버, OS, 로드 밸런서, 대기열 등) 전반에서 주요 지표 로그 및 경보를 파악하고 설정합니다. 지표 및 로그를 지속적으로 모니터링하여 이상 및 오류를 감지하고 연결합니다. 오류 및 이상이 감지되면 Application Insights에서 알림을 설정하고 작업을 수행할 수 있는 CloudWatch Events를 생성합니다. Application Insights는 문제 해결을 지원하기 위해 잠재적 근본 원인을 알려 주는 추가 인사이트와 함께 상관관계가 있는 지표 이상 및 로그 오류를 비롯하여 감지한 문제에 대한 자동화된 대시보드를 생성합니다. 자동화된 대시보드를 사용하면 애플리케이션의 상태를 정상으로 유지하고 애플리케이션의 최종 사용자에게 미치는 영향을 방지하기 위한 수정 조치를 취할 수 있습니다. 또한 AWS SSM OpsCenter를 사용하여 문제를 해결할 수 있도록 OpsItem을 생성합니다.

CloudWatch에서 Windows 이벤트 로그뿐만 아니라 미러링된 쓰기 트랜잭션/초, 복구 대기열 길이, 트랜잭션 지연과 같은 중요한 카운터를 구성할 수 있습니다. 대상 데이터베이스 쿼리에 대한 제한된 액세스와 같이 SQL HA 워크로드에 장애 조치 이벤트 또는 문제가 발생하면 CloudWatch Application Insights는 자동화된 인사이트를 제공합니다.

CloudWatch Application Insights는 AWS Launch Wizard와 통합되어 AWS에 SQL Server HA 워크로드를 배포하기 위한 원클릭 모니터링 설정 환경을 제공합니다. Launch Wizard 콘솔에서 Application Insights를 사용하여 모니터링 및 인사이트를 설정하는 옵션을 선택하면 CloudWatch Application Insights는 CloudWatch에서 관련 지표, 로그, 경보를 자동으로 설정하고 새로 배포된 워크로드의 모니터링을 시작합니다. CloudWatch 콘솔에서 SQL Server HA 워크로드의 상태와 함께 자동화된 인사이트 및 감지된 문제를 확인할 수 있습니다.

특성

Application Insights는 다음 기능을 제공합니다.

애플리케이션 리소스 모니터 자동 설정

CloudWatch Application Insights는 애플리케이션에 대한 모니터링을 설정하는 데 걸리는 시간을 줄여줍니다. 그 방법은 애플리케이션 리소스를 검색하고 권장 지표 및 로그의 사용자 지정 목록을 제공하여 이를 CloudWatch에서 설정함으로써 Amazon EC2 및 Elastic Load Balancer(ELB)와 같은 애플리케이션 리소스에 필요한 가시성을 제공하는 것입니다. 또한 모니터링된 지표에 대해 동적 경보를 설정합니다. 경보는 지난 2주 동안 감지된 이상을 기반으로 자동 업데이트됩니다.

문제 감지 및 알림

CloudWatch Application Insights는 지표 이상 및 로그 오류와 같은 애플리케이션 관련 잠재적 문제의 징후를 감지합니다. 이 관찰 결과를 통해 애플리케이션의 잠재적 문제를 표면화할 수 있습니다. 그런 다음 알림을 받거나 작업을 수행하도록 구성할 수 있는 CloudWatch Events를 생성합니다. 따라서 지표나 로그 오류에 대한 개별 경보를 생성할 필요가 없습니다.

문제 해결

CloudWatch Application Insights는 감지된 문제에 대한 CloudWatch 자동 대시보드를 생성합니다. 대시보드에는 문제 해결에 도움이 되는 관련 지표 이상 및 로그 오류를 포함하여 문제에 대한 세부 정보가 표시됩니다. 또한 이상 및 오류의 잠재적 근본 원인을 파악하는 추가 통찰력을 제공합니다.

개념

다음은 Application Insights가 애플리케이션을 모니터링하는 방법을 이해하는 데 있어 중요한 개념입니다.

구성 요소

애플리케이션을 구성하는 유사한 리소스의 자동 그룹형, 독립 실행형 또는 사용자 지정 그룹. 모니터링 기능을 향상시키기 위해서는 유사한 리소스를 사용자 지정 구성 요소로 그룹화하는 것이 좋습니다.

관측치

애플리케이션 또는 애플리케이션 리소스에서 감지된 개별 이벤트(지표 이상, 로그 오류 또는 예외)

문제

문제는 관련 관찰을 연결, 분류 및 그룹화하여 감지됩니다.

CloudWatch Application Insights의 다른 주요 개념에 대한 정의는 Amazon CloudWatch 개념 단원을 참조하세요.

요금

CloudWatch Application Insights는 탐지된 문제에 대한 알림을 위해 CloudWatch 지표, 로그 및 이벤트를 사용하여 선택한 애플리케이션 리소스에 대해 권장되는 지표 및 로그를 설정합니다. 이러한 기능은 CloudWatch 요금에 따라 AWS 계정으로 청구됩니다. 탐지된 문제의 경우 Application Insights에서 SSM OpsItems가 생성되어 문제에 대해 알려줍니다. 또한 Application Insights는 SSM Parameter Store 파라미터를 생성하여 인스턴스에서 CloudWatch 에이전트를 구성합니다. Amazon EC2 Systems Manager 기능은 SSM 요금제에 따라 요금이 부과됩니다. 설정 지원, 데이터 분석 모니터링 또는 문제 탐지에 대해서는 비용이 청구되지 않습니다.

CloudWatch Application Insights 비용

Amazon EC2 비용에는 다음 기능 사용이 포함됩니다.

  • CloudWatch 에이전트

    • CloudWatch 에이전트 로그 그룹

    • CloudWatch 에이전트 지표

    • Prometheus 로그 그룹(JMX 워크로드용)

모든 리소스 비용에는 다음 기능 사용량이 포함됩니다.

  • CloudWatch 경보(비용의 대부분)

  • SSM OpsItems(최소 비용)

비용 계산 예

이 예제의 비용은 다음 시나리오에 따라 고려됩니다.

다음을 포함하는 리소스 그룹을 생성했습니다.

  • SQL Server가 설치된 Amazon EC2 인스턴스.

  • 연결된 Amazon EBS 볼륨.

CloudWatch Application Insights로 이 리소스 그룹을 온보딩하면 Amazon EC2 인스턴스에 설치된 SQL Server 워크로드가 탐지됩니다. CloudWatch Application Insights는 다음 지표를 모니터링하기 시작합니다.

SQL Server 인스턴스에 대해 다음 지표가 모니터링됩니다.

  • CPUUtilization

  • StatusCheckFailed

  • Memory % Committed Bytes in Use

  • 사용 가능한 메모리(MB)

  • 네트워크 인터페이스 바이트 합계/초

  • 페이징된 파일 % 사용량

  • Physical Disk % Disk Time

  • 프로세서 % 프로세서 시간

  • SQLServer:Buffer Manager cache hit ratio

  • SQLServer:Buffer Manager life expectancy

  • SQLServer:차단된 일반 통계 프로세스

  • SQLServer:일반 통계 사용자 연결

  • SQLServer:잠금 교착 상태 수/초

  • SQLServer:SQL 통계 배치 요청/초

  • 시스템 프로세서 대기열 길이

SQL Server 인스턴스에 연결된 볼륨에 대해 다음 지표가 모니터링됩니다.

  • VolumeReadBytes

  • VolumeWriteBytes

  • VolumeReadOps

  • VolumeWriteOps

  • VolumeTotalReadTime

  • VolumeTotalWriteTime

  • VolumeIdleTime

  • VolumeQueueLength

  • VolumeThroughputPercentage

  • VolumeConsumedReadWriteOps

  • BurstBalance

이 시나리오의 경우 CloudWatch 요금 페이지와 SSM 요금 페이지에 따라 비용이 계산됩니다.

  • 사용자 지정 지표

    이 시나리오의 경우 위 지표 중 13개가 CloudWatch 에이전트를 사용하여 CloudWatch로 내보내집니다. 이러한 지표는 사용자 지정 지표로 처리됩니다. 각 사용자 지정 지표의 비용은 월 0.3 USD입니다. 이러한 사용자 지정 지표의 총 비용은 13 * 0.3 USD = 3.90 USD/월입니다.

  • 경보

    이 시나리오의 경우 CloudWatch Application Insights는 총 26개의 지표를 모니터링하여 26개의 경보를 생성합니다. 각 경보의 비용은 0.1 USD/월입니다. 경보의 총 비용은 26 * $.1 = 2.60 USD/월입니다.

  • 데이터 모으기 및 오류 로그

    데이터 모으기 비용은 0.05 USD/GB이고 SQL Server 오류 로그의 스토리지는 0.03 USD/GB입니다. 데이터 모으기 및 오류 로그에 드는 총 비용은 0.05 USD/GB + 0.03 USD/GB= 0.08 USD/GB입니다.

  • Amazon EC2 Systems Manager OpsItems

    CloudWatch Application Insights에서 탐지된 각 문제에 대해 SSM OpsItem이 생성됩니다. 애플리케이션에 문제가 n개 있는 경우 총 비용은 월 0.00267 USD * n입니다.

다음 서비스가 CloudWatch Application Insights와 함께 사용됩니다.

관련 AWS 서비스
  • Amazon CloudWatch를 사용하여 시스템 전체의 리소스 사용률, 애플리케이션 성능 및 운영 상태를 파악할 수 있습니다. 지표를 수집 및 추적하고 경보 알림을 보내고 정의한 규칙에 따라 모니터링 중인 리소스를 자동으로 업데이트하고 사용자 지정 지표를 모니터링할 수 있습니다. CloudWatch Application Insights는 CloudWatch를 통해, 특히 CloudWatch 기본 운영 대시보드 내에서 시작됩니다. 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

  • CloudWatch Container Insights는 컨테이너 애플리케이션 및 마이크로서비스의 지표 및 로그를 수집하고, 종합하며, 요약합니다. Container Insights를 사용하여 Amazon EC2에서 Amazon ECS, Amazon Elastic Kubernetes Service 및 Kubernetes 플랫폼을 모니터링할 수 있습니다. Container Insights 또는 Application Insights 콘솔에서 Application Insights를 활성화하면 Application Insights는 Container Insights 대시보드에 감지된 문제를 표시합니다. 자세한 정보는 Container Insights을 참조하세요.

  • Amazon DynamoDB는 분산 데이터베이스를 운영하고 크기 조정하는 데 따른 관리 부담을 없애주는 완전관리형 NoSQL 데이터베이스 서비스로, 하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 적용 또는 클러스터 크기 조정에 대해 걱정할 필요가 없게 합니다. 또한 DynamoDB는 유휴 시 암호화를 제공하여 중요한 데이터 보호와 관련된 운영 부담 및 복잡성을 제거합니다.

  • Amazon EC2는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 필요한 수만큼 적절하게 가상 서버를 시작하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. 요건이나 갑작스러운 인기 증대 등 변동 사항에 따라 확장하거나 축소할 수 있어 트래픽 예측 필요성이 줄어듭니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서 또는 Windows 인스턴스용 Amazon EC2 설명서를 참조하세요.

  • Amazon Elastic Block Store(Amazon EBS)는 Amazon EC2 인스턴스에 사용할 수 있는 블록 수준 스토리지 볼륨을 제공합니다. Amazon EBS 볼륨은 형식이 지정되지 않은 원시 블록 디바이스처럼 동작합니다. 이러한 볼륨을 인스턴스에 디바이스로 마운트할 수 있습니다. 인스턴스에 연결된 Amazon EBS 볼륨은 스토리지 볼륨으로 표시되며, 인스턴스 수명과 관계없이 지속됩니다. 이러한 볼륨 위에 파일 시스템을 생성하거나 하드 드라이브와 같은 블록 디바이스를 사용하는 것처럼 볼륨을 사용할 수 있습니다. 인스턴스에 연결된 볼륨의 구성을 동적으로 변경할 수 있습니다. 자세한 내용은 Amazon EBS 사용 설명서를 참조하세요.

  • Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리할 수 있는 정확한 수의 EC2 인스턴스를 유지할 수 있습니다. 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서를 참조하세요.

  • Elastic Load Balancing은 여러 가용 영역에 있는 EC2 인스턴스, 컨테이너, IP 주소와 같은 여러 대상에 걸쳐 수신되는 애플리케이션 또는 네트워크 트래픽을 분산합니다. 자세한 내용은 Elastic Load Balancing 사용 설명서를 참조하세요.

  • IAM은 사용자의 AWS 리소스에 대한 액세스를 안전하게 제어하도록 지원하는 웹 서비스입니다. IAM을 사용하여 AWS 리소스를 사용할 수 있는 사람을 제어(인증)하고 해당 사용자가 사용할 수 있는 리소스 및 그 사용 방법을 제어(권한 부여)할 수 있습니다. 자세한 내용은 Amazon CloudWatch에 대한 인증 및 액세스 제어를 참조하세요.

  • AWS Lambda를 사용하면 이벤트에 의해 트리거되는 함수로 구성된 서버리스 애플리케이션을 구축하고 CodePipeline 및 AWS CodeBuild를 사용해 이를 자동으로 배포할 수 있습니다. 자세한 내용은 AWS Lambda 애플리케이션 단원을 참조하세요.

  • AWS Launch Wizard for SQL Server는 SQL Server 고가용성 솔루션을 클라우드에 배포하는 데 걸리는 시간을 줄여줍니다. 서비스 콘솔에서 성능, 노드 수, 연결을 비롯한 애플리케이션 요구 사항을 입력하면 AWS Launch Wizard가 SQL Server Always On 애플리케이션을 배포하고 실행하는 데 적합한 AWS 리소스를 식별합니다.

  • AWS Resource Groups를 사용하면 애플리케이션을 구성하는 리소스를 정리할 수 있습니다. Resource Groups를 사용하여 많은 리소스에 대한 작업을 한 번에 관리하고 자동화할 수 있습니다. 단일 애플리케이션에 대해 하나의 리소스 그룹만 등록할 수 있습니다. 자세한 내용은 AWS Resource Groups 사용 설명서를 참조하세요.

  • Amazon SQS는 내구력 있고 가용성이 뛰어난 보안 호스팅 대기열을 제공하며 이를 통해 분산 소프트웨어 시스템과 구성 요소를 통합 및 분리할 수 있습니다. 자세한 내용은 Amazon SQS 사용 설명서를 참조하세요.

  • AWS Step Functions는 AWS Lambda 함수를 비롯한 다양한 AWS 서비스 및 리소스를 구조화된 시각적 워크플로로 시퀀싱할 수 있게 하는 서버리스 함수 컴포저입니다. 자세한 내용은 AWS Step Functions 사용 설명서를 참조하십시오.

  • AWS SSM OpsCenter는 서비스 전반에 걸쳐 OpsItem을 집계하고 표준화하는 동시에 각 OpsItem, 관련 OpsItem, 관련 리소스에 관한 상황별 조사 데이터를 제공합니다. OpsCenter는 문제를 신속하게 해결하는 데 사용할 수 있는 Systems Manager Automation 문서(실행서)도 제공합니다. 각 OpsItem에 대해 검색 가능한 사용자 지정 데이터를 지정할 수 있습니다. 상태 및 소스별로 OpsItem에 대한 자동 생성 요약 보고서를 볼 수도 있습니다. 자세한 내용은 AWS Systems Manager 사용 설명서를 참조하세요.

  • Amazon API Gateway는 규모와 관계없이 REST, HTTP 및 WebSocket API를 생성하고 게시하며 유지 관리하고 모니터링하며 보호하기 위한 AWS 서비스입니다. API 개발자는 AWS 또는 다른 웹 서비스를 비롯해 AWS 클라우드에 저장된 데이터에 액세스하는 API를 생성할 수 있습니다. 자세한 내용은 Amazon API Gateway 사용 설명서를 참조하세요.

    참고

    Application Insights는 REST API 프로토콜(API Gateway 서비스의 v1)만 지원합니다.

  • Amazon Elastic Container Service(Amazon ECS)는 완전관리형 컨테이너 오케스트레이션 서비스입니다. Amazon ECS를 사용하여 가장 민감하고 미션 크리티컬한 애플리케이션을 실행할 수 있습니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서를 참조하세요.

  • Amazon Elastic Kubernetes Service(Amazon EKS)는 자체 Kubernetes 제어 영역 또는 노드를 설치, 운영, 유지 관리할 필요 없이 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 관리형 서비스입니다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 조정 및 관리 자동화를 위한 오픈 소스 시스템입니다. 자세한 내용은 Amazon EKS 사용 설명서를 참조하세요.

  • Amazon EC2의 Kubernetes. Kubernetes는 컨테이너화된 애플리케이션을 대규모로 배포하고 관리하도록 지원하는 오픈 소스 소프트웨어입니다. Kubernetes는 Amazon EC2 컴퓨팅 인스턴스 클러스터를 관리하며 배포, 유지 관리 및 크기 조정 프로세스를 통해 해당 인스턴스에서 컨테이너를 실행합니다. Kubernetes를 사용하면 온프레미스 및 클라우드에서 동일한 도구 세트로 모든 유형의 컨테이너화된 애플리케이션을 실행할 수 있습니다. 자세한 내용은 Kubernetes 설명서: 시작하기를 참조하세요.

  • Amazon FSx를 통해 널리 사용되는 AWS의 완전관리형 파일 시스템을 시작하고 실행할 수 있습니다. Amazon FSx를 사용하면 일반적인 오픈 소스 및 상용 라이선스 파일 시스템의 기능 세트와 성능을 활용하여 시간이 많이 소요되는 관리 태스크를 피할 수 있습니다. 자세한 내용은 Amazon FSx 설명서를 참조하세요.

  • Amazon Simple Notification Service (SNS)는 애플리케이션 간 통신과 애플리케이션 대 개인 통신 모두를 위한 완전관리형 메시징 서비스입니다. Application Insights를 통해 모니터링하도록 Amazon SNS를 구성할 수 있습니다. Amazon SNS가 모니터링을 위한 리소스로 구성된 경우 Application Insights는 SNS 지표를 추적하여 SNS 메시지에 문제가 발생하거나 실패할 수 있는 이유를 파악할 수 있습니다.

  • Amazon Elastic File System(Amazon EFS)는AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용할 수 있는 완전 관리형 엘라스틱 NFS 파일 시스템입니다. 애플리케이션 중단 없이 필요에 따라 페타바이트까지 확장할 수 있도록 구축되었습니다. 파일을 추가 및 제거하면 용량이 자동으로 확장 및 축소되므로 확장을 수용하기 위해 용량을 프로비저닝하고 관리할 필요가 없습니다. 자세한 내용은 Amazon Elastic File System 문서를 참조하세요.

관련 서드 파티 서비스
  • Application Insights에서 모니터링되는 일부 워크로드 및 애플리케이션의 경우 Prometheus JMX Exporter가 AWS Systems Manager Distributor를 사용하여 설치되므로 CloudWatch Application Insights가 Java 관련 지표를 검색할 수 있습니다. Java 애플리케이션을 모니터링하도록 선택하면 Application Insights가 자동으로 Prometheus JMX Exporter를 설치합니다.

지원되는 애플리케이션 구성 요소

CloudWatch Application Insights는 리소스 그룹을 검색하여 애플리케이션 구성 요소를 식별합니다. 구성 요소는 독립 실행형, 자동 그룹형(예: Auto Scaling 그룹의 인스턴스 또는 로드 밸런서 뒤의 인스턴스) 또는 사용자 지정(개별 Amazon EC2 인스턴스 그룹화) 형식일 수 있습니다.

CloudWatch Application Insights는 다음 구성 요소를 지원합니다.

AWS 구성 요소
  • Amazon EC2

  • Amazon EBS

  • Amazon RDS

  • Elastic Load Balancing: Application Load Balancer 및 Classic Load Balancer(이러한 로드 밸런서의 모든 대상 인스턴스가 식별되고 구성됨)

  • Amazon EC2 Auto Scaling 그룹: AWS Auto Scaling(오토 스케일링 그룹은 모든 대상 인스턴스에 대해 동적으로 구성되며, 애플리케이션이 확장되면 CloudWatch Application Insights가 자동으로 새 인스턴스 구성함) Auto Scaling 그룹은 CloudFormation 스택 기반 리소스 그룹에서 지원되지 않습니다.

  • AWS Lambda

  • Amazon Simple Queue Service(Amazon SQS)

  • Amazon DynamoDB 테이블

  • Amazon S3 버킷 지표

  • AWS Step Functions

  • Amazon API Gateway REST API 스테이지

  • Amazon Elastic Container Service(Amazon ECS): 클러스터, 서비스, 태스크

  • Amazon Elastic Kubernetes Service(Amazon EKS): 클러스터

  • Amazon EC2의 Kubernetes: EC2에서 실행되는 Kubernetes 클러스터

  • Amazon SNS 주제

CloudWatch Application Insights는 현재 다른 구성 요소 유형 리소스를 추적하지 않습니다. 지원되는 구성 요소 유형이 Application Insights 애플리케이션에 나타나지 않으면 해당 구성 요소가 이미 Application Insights에서 모니터링 중인 다른 애플리케이션에서 등록되고 관리되는 것일 수 있습니다.

지원되는 기술 스택

CloudWatch Application Insights를 사용하면 다음 기술 중 하나에 대한 애플리케이션 티어 드롭다운 메뉴 옵션을 선택하여 Windows Server 및 Linux 운영 체제에서 실행되는 애플리케이션을 모니터링할 수 있습니다.

  • 프런트 엔드: Microsoft 인터넷 정보 서비스(IIS) 웹 서버

  • 작업자 티어:

    • .NET Framework

    • .NET Core

  • 애플리케이션:

    • Java

    • SAP NetWeaver 표준, 분산, 고가용성 배포

  • Active Directory

  • SharePoint

  • 데이터베이스

    • Amazon RDS 또는 Amazon EC2에서 실행되는 Microsoft SQL Server(SQL Server 고가용성 구성 포함, 구성 요소 구성 예제 단원 참조)

    • Amazon RDS, Amazon Aurora 또는 Amazon EC2에서 실행되는 MySQL

    • Amazon RDS 또는 Amazon EC2에서 실행되는 PostgreSQL

    • Amazon DynamoDB 테이블

    • Amazon RDS 또는 Amazon EC2에서 실행되는 Oracle

    • 단일 Amazon EC2 인스턴스와 여러 EC2 인스턴스의 SAP HANA 데이터베이스

    • 교차 AZ SAP HANA 데이터베이스 고가용성 설정

    • 단일 Amazon EC2 인스턴스의 SAP Sybase ASE 데이터베이스

    • 교차 AZ SAP Sybase ASE 데이터베이스 고가용성 설정

위에 나열된 기술 스택이 애플리케이션 리소스에 적용되지 않는 경우 [모니터링 관리(Manage monitoring)] 페이지의 애플리케이션 티어 드롭다운 메뉴에서 [사용자 지정(Custom)]을 선택하여 애플리케이션 스택을 모니터링할 수 있습니다.