기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudWatch Logs Insights를 사용하여 애플리케이션 활동 모니터링
Ram Kandaswamy, Amazon Web Services
요약
이 패턴은 Amazon CloudWatch Logs Insights를 사용하여 애플리케이션 예외를 자동으로 감지하고 경고하는 솔루션을 제공합니다. 자동 로그 분석 및 알림을 구현하면 프로덕션 환경에서 애플리케이션 문제를 신속하게 식별하고 대응할 수 있습니다.
로그는 시스템 동작을 모니터링하고, 문제를 식별하고, 최적의 성능을 보장하는 데 중요한 역할을 합니다. 마이그레이션 프로세스 중에 로그 파일은 새 환경에서 시스템의 기능을 검증하고, 호환성 문제를 감지하고, 예상치 못한 동작을 식별하는 데 매우 중요합니다. 문제는 운영 또는 보안과 관련이 있을 수 있습니다. 보안 관련 문제의 경우 보안 및 규정 준수를 유지하려면 무단 액세스 시도 또는 의심스러운 활동을 조기에 감지할 수 있어야 합니다. 이 기능은 민감한 데이터 또는 중요한 시스템을 처리할 때 특히 중요합니다.
이 패턴은 다음을 수행해야 하는 팀에 특히 유용합니다.
높은 애플리케이션 가용성을 유지합니다.
프로덕션 문제에 신속하게 대응합니다.
AWS 서비스 로그로 캡처되지 않은 애플리케이션별 오류를 분석합니다.
사전 구축된 인프라 없이 온디맨드 로그 분석을 수행합니다.
CloudWatch Logs Insights는 오류 컨텍스트가 애플리케이션 코드 내에만 있는 애플리케이션 생성 로그를 분석하는 데 최적입니다. CloudWatch Logs Insights는 다음 작업에 뛰어납니다.
비정형 또는 반정형 로그 데이터를 쿼리합니다.
인시던트 대응 중에 온디맨드 분석을 수행합니다.
여러 로그 그룹에 걸쳐 이벤트를 상호 연관시킵니다.
외부 도구 없이 빠른 시각화를 생성합니다.
사전 조건 및 제한 사항
사전 조건
활성에 배포된 프로덕션 애플리케이션 AWS 계정
프로덕션 애플리케이션의 로깅 형식 및 예외 패턴에 대한 기본 이해
Amazon CloudWatch Logs로 스트리밍하도록 구성된 애플리케이션 로그
제한 사항
일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전별 가용성은 리전별AWS 서비스
를 참조하세요. 구체적인 엔드포인트는 서비스 엔드포인트 및 할당량을 참조하고 서비스 링크를 선택합니다.
아키텍처
다음 다이어그램은 CloudWatch Logs Insights가 리소스 로그를 평가하고 관련 데이터 시각화를 CloudWatch 대시보드로 전송하는 방법을 보여줍니다.

이 다이어그램은 다음 워크플로를 보여줍니다.
CloudWatch Logs에 게시할 로그 선택 리소스에는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 Amazon Simple Storage Service(Amazon S3) 버킷과 같은 AWS 리소스가 포함될 수 있습니다. 또 다른 예로는 CloudWatch에 로그를 게시할 수 있는 CloudWatch Agent가 설치된 온프레미스 시스템이 있습니다.
CloudWatch Logs Insights는 관련 패턴 문자열을 필터링합니다. 검색 패턴 문자열의 예로는 "오류", "예외" 또는 특정 정규식이 있습니다.
일반적으로 프로덕션 지원 팀 또는 개발자는 패턴 시각화를 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)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.
모범 사례
쿼리 효율성
관련 로그 데이터를 분석하도록 로그 그룹을 정의하고 구성합니다.
필드 탐색기를 사용하여 로그 데이터에서 사용할 수 있는 구조와 필드를 이해합니다.
더 빠른 분석을 위해 특정 요구 사항에 맞게 샘플 쿼리를 조정합니다.
쿼리 시간 범위를 제한하여 스캔되는 데이터를 줄이고 성능을 개선합니다.
나중에 사용할 수 있도록 쿼리를 저장하여 시간을 절약하고 일관된 분석을 보장합니다.
보안
CloudWatch Logs Insights 및 로그 그룹에 적절한 IAM 정책을 적용합니다. 최소 권한 원칙을 따르고 작업을 수행하는 데 필요한 최소 권한을 부여하세요. 자세한 내용은 IAM 설명서의 최소 권한 부여 및 보안 모범 사례를 참조하세요.
민감한 로그 데이터에 대해를 사용하여 로그 데이터 암호화 AWS KMS를 활성화합니다.
비용 최적화
CloudWatch Logs Insights는 쿼리당 스캔한 데이터 GB당 요금을 부과합니다. 시간 범위를 좁히고 특정 로그 그룹을 대상으로 지정하여 비용을 절감합니다.
적절한 로그 보존 정책을 구성하여 스토리지 비용을 관리합니다.
대규모 기록 데이터 세트를 자주 분석하려면 Amazon S3로 로그를 내보내고 Amazon Athena를 사용하는 것이 좋습니다.
CloudWatch 요금을
검토하여 사용 사례에 대한 비용 영향을 이해합니다.
에픽
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
IAM 권한을 구성합니다. | IAM 권한을 구성하려면 다음을 수행합니다.
IAM 정책을 생성하거나 기존 정책에 권한을 추가하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 고객 관리형 정책을 사용하여 사용자 지정 IAM 권한 정의 및 IAM 정책 편집을 참조하세요. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 Amazon CloudWatch Logs의 ID 및 액세스 관리 및 CloudWatch Logs 권한 참조를 참조하세요. | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 |
로그 그룹 생성 | 로그 그룹을 생성하려면 다음 옵션 중 하나를 사용합니다.
| AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 |
CloudWatch Logs Insights 쿼리 저장 | CloudWatch Logs Insights 쿼리를 생성하고 저장하려면 다음을 수행합니다.
| AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 |
CloudWatch 대시보드에서 시각화를 생성합니다. | CloudWatch 대시보드를 사용하여 시각화를 생성하려면 다음을 수행합니다.
대시보드 옵션 및 기능에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 Amazon CloudWatch 대시보드 사용 및 대시보드 변수를 사용하여 유연한 CloudWatch 대시보드 생성을 참조하세요. | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 |
문제 해결
| 문제 | Solution |
|---|---|
쿼리 결과를 볼 수 없거나 쿼리가 손상된 것 같습니다. | 샘플 쿼리에서 수정된 작업 쿼리로 시작합니다. 쿼리의 일부(예: 필터 또는 필드)에 대해 약간의 증분 변경을 수행하고 CloudWatch Logs 쿼리 생성기 기능을 활용합니다. |
로그 그룹이 로그 스트림을 생성하지 않음 | IAM 정책에서 CreateLogStream 및 CreateLogGroup 작업에 대한 리소스에 와일드카드 문자 |
쿼리 제한 시간 또는 느린 성능 | 시간 범위를 줄이거나, 특정 로그 그룹을 대상으로 지정하거나, 쿼리를 간소화합니다. 복잡한 정규식( |
유효한 시간 범위에 대해 반환된 데이터 없음 | 로그 그룹 선택을 확인하고 로그가 수집되고 있는지(로그 스트림 검토) 확인하고 필터 패턴이 로그 형식과 일치하는지 확인합니다. |