CloudWatch Logs Insights를 사용하여 애플리케이션 활동 모니터링 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudWatch Logs Insights를 사용하여 애플리케이션 활동 모니터링

작성자: Ram Kandaswamy(AWS)

요약

이 패턴은 Amazon CloudWatch Logs Insights를 사용하여 애플리케이션 예외를 자동으로 감지하고 경고하는 솔루션을 제공합니다. 자동 로그 분석 및 알림을 구현하면 프로덕션 환경에서 애플리케이션 문제를 신속하게 식별하고 대응할 수 있습니다.

로그는 시스템 동작을 모니터링하고, 문제를 식별하고, 최적의 성능을 보장하는 데 중요한 역할을 합니다. 마이그레이션 프로세스 중에 로그 파일은 새 환경에서 시스템의 기능을 검증하고, 호환성 문제를 감지하고, 예상치 못한 동작을 식별하는 데 매우 중요합니다. 문제는 운영 또는 보안과 관련이 있을 수 있습니다. 보안 관련 문제의 경우 보안 및 규정 준수를 유지하려면 무단 액세스 시도 또는 의심스러운 활동을 조기에 감지할 수 있어야 합니다. 이 기능은 민감한 데이터 또는 중요한 시스템을 처리할 때 특히 중요합니다.

이 패턴은 높은 애플리케이션 가용성을 유지하고 프로덕션 문제에 신속하게 대응해야 하는 팀에 특히 유용합니다. 이는 다양한 산업 및 사용 사례와 관련이 있습니다. 예를 들어 통신에서는 네트워크 구성 오류 또는 중단을 빠르게 식별하고 차선의 라우팅 경로를 감지하여 잠재적 혼잡을 정확히 찾아낼 수 있습니다. 사물 인터넷(IoT) 도메인에서 Greengrass 구성 요소는 CloudWatch에 로그를 게시하여이 기술을 통해 관련 로그 세부 정보를 추출하고 포괄적인 대시보드에 표시할 수 있습니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성에 배포된 프로덕션 애플리케이션 AWS 계정

  • 프로덕션 애플리케이션의 로깅 형식 및 예외 패턴에 대한 기본 이해

  • Amazon CloudWatch Logs로 스트리밍하도록 구성된 애플리케이션 로그

제한 사항

아키텍처

다음 다이어그램은 CloudWatch Logs Insights가 리소스 로그를 평가하고 관련 데이터 시각화를 CloudWatch 대시보드로 전송하는 방법을 보여줍니다.

CloudWatch Logs Insights는 리소스 로그를 평가하고 대시보드로 데이터 시각화를 전송합니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 리소스는 CloudWatch Logs에 로그를 게시합니다. 리소스에는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 Amazon Simple Storage Service(Amazon S3) 버킷과 같은 AWS 리소스가 포함될 수 있습니다. 또 다른 예로는 CloudWatch에 로그를 게시할 수 있는 CloudWatch Agent가 설치된 온프레미스 시스템이 있습니다.

  2. CloudWatch Logs Insights는 관련 패턴 문자열을 필터링합니다. 검색 패턴 문자열의 예로는 “오류”, “예외” 또는 특정 정규식이 있습니다.

  3. 일반적으로 프로덕션 지원 팀 또는 개발자는 CloudWatch 대시보드에 패턴 시각화를 추가합니다.

자동화 및 규모 조정

개발자는 AWS Cloud Development Kit (AWS CDK) AWS CloudFormation또는 AWS SDKs할 수 있습니다. 팀은이 자동화를 지속적 통합 및 배포(CI/CD) DevOps 프로세스에 통합할 수 있습니다.

도구

AWS 서비스

  • Amazon CloudWatch Logs를 사용하면 모든 시스템, 애플리케이션 및의 로그를 중앙 집중화 AWS 서비스 하여 모니터링하고 안전하게 보관할 수 있습니다.

  • AWS Identity and Access Management (IAM)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.

  • AWS Key Management Service (AWS KMS)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.

모범 사례

에픽

작업설명필요한 기술

IAM 권한을 구성합니다.

IAM 권한을 구성하려면 다음을 수행합니다.

  1. 애플리케이션에서 로그 작성에 사용하는 IAM 역할과 대시보드, 쿼리 및 경보를 생성할 사용자 또는 서비스를 식별합니다.

  2. 애플리케이션 역할의 경우 정책에 다음 API 작업 및 리소스를 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. CloudWatch 리소스를 관리하려면 정책에 다음을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

IAM 정책을 생성하거나 기존 정책에 권한을 추가하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 고객 관리형 정책을 사용하여 사용자 지정 IAM 권한 정의IAM 정책 편집을 참조하세요. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 Amazon CloudWatch Logs 및 CloudWatch Logs 권한 참조에 대한 자격 증명 및 액세스 관리를 참조하세요 Amazon CloudWatch. CloudWatch

AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어

로그 그룹 생성

로그 그룹을 생성하려면 다음 옵션 중 하나를 사용합니다.

  • 또는 .json 확장명을 사용하여 CloudFormation 템플릿 파일(YAML 또는 JSON 형식)을 생성.yaml하거나 엽니다. (다음 코드는 YAML 형식을 사용합니다.) 템플릿의 리소스 섹션에 다음 리소스 정의를 추가합니다.

    MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: my-log-group

    자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 빠른 시작: CloudWatch Logs AWS CloudFormation 시작하기를 참조하세요. Amazon CloudWatch

AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어

CloudWatch Logs Insights 쿼리를 생성합니다.

CloudWatch Logs Insights 쿼리를 생성하고 저장하려면:

  1. CloudWatch 콘솔을 엽니다.

  2. Logs Insights로 이동합니다.

  3. 다음 방법 중 하나를 사용하여 쿼리를 생성합니다.

    • 쿼리 섹션의 샘플 쿼리로 시작합니다.

    • 사용자 지정 쿼리를 작성합니다.

    • 다음 예제 쿼리를 수정합니다.

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      이 쿼리는 로그 파일을 확인하고, 타임스탬프와 메시지 콘텐츠를 추출하고, "exception"(대소문자 비구분)이라는 단어를 필터링하고, 30초 간격으로 발생 횟수를 계산합니다.

AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어

CloudWatch 대시보드에서 시각화를 생성합니다.

CloudWatch 대시보드를 사용하여 시각화를 생성하려면 다음을 수행합니다.

  1. CloudWatch 콘솔을 열고 CloudWatch 대시보드(아직 없는 경우)를 생성하거나 기존 대시보드를 엽니다.

  2. 예외 모니터링 시각화를 추가합니다. 비즈니스 요구 사항에 따라 막대, 선 및 파이 차트를 사용할 수 있습니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 CloudWatch 대시보드에서 위젯 사용을 참조하세요. Amazon CloudWatch 실시간 데이터 시각화의 경우 요구 사항에 맞게 위젯을 사용자 지정할 수 있습니다.

대시보드 옵션 및 기능에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 Amazon CloudWatch 대시보드 사용 및 대시보드 변수를 사용하여 유연한 CloudWatch 대시보드 생성을 CloudWatch 참조하세요 Amazon CloudWatch.

AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어

문제 해결

문제Solution

쿼리 결과를 볼 수 없거나 쿼리가 손상된 것 같습니다.

샘플 쿼리에서 수정된 작업 쿼리로 시작합니다. 쿼리의 일부(예: 필터 또는 필드)에 대해 약간의 증분 변경을 수행하고 CloudWatch Logs 쿼리 생성기 기능을 활용합니다.

로그 그룹이 로그 스트림을 생성하지 않음

IAM 정책에서 CreateLogStreamCreateLogGroup 작업에 대한 리소스에 와일드카드 문자 (*) 값이 제공되었는지 확인합니다. 이 와일드카드 권한이 없으면 create 작업이 성공하지 못합니다.

관련 리소스