

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

# CloudWatch Logs Insights를 사용하여 애플리케이션 활동 모니터링
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights"></a>

*Ram Kandaswamy, Amazon Web Services*

## 요약
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-summary"></a>

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

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

이 패턴은 다음을 수행해야 하는 팀에 특히 유용합니다.
+ 높은 애플리케이션 가용성을 유지합니다.
+ 프로덕션 문제에 신속하게 대응합니다.
+  AWS 서비스 로그로 캡처되지 않은 애플리케이션별 오류를 분석합니다.
+ 사전 구축된 인프라 없이 온디맨드 로그 분석을 수행합니다.

CloudWatch Logs Insights는 오류 컨텍스트가 애플리케이션 코드 내에만 있는 애플리케이션 생성 로그를 분석하는 데 최적입니다. CloudWatch Logs Insights는 다음 작업에 뛰어납니다.
+ 비정형 또는 반정형 로그 데이터를 쿼리합니다.
+ 인시던트 대응 중에 온디맨드 분석을 수행합니다.
+ 여러 로그 그룹에 걸쳐 이벤트를 상호 연관시킵니다.
+ 외부 도구 없이 빠른 시각화를 생성합니다.

## 사전 조건 및 제한 사항
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-prereqs"></a>

**사전 조건 **
+ 활성에 배포된 프로덕션 애플리케이션 AWS 계정
+ 프로덕션 애플리케이션의 로깅 형식 및 예외 패턴에 대한 기본 이해
+ Amazon CloudWatch Logs로 스트리밍하도록 구성된 애플리케이션 로그

**제한 사항 **
+ 일부 AWS 서비스 는 전혀 사용할 수 없습니다 AWS 리전. 리전별 가용성은 [리전별AWS 서비스](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)를 참조하세요. 구체적인 엔드포인트는 [서비스 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)을 참조하고 서비스 링크를 선택합니다.

## 아키텍처
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-architecture"></a>

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

![\[CloudWatch Logs Insights는 리소스 로그를 평가하고 대시보드로 데이터 시각화를 전송합니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/082ff4b6-9303-42e6-bc62-263e2254f232/images/b1cbb699-07cd-45e6-ac06-839159bafa6b.png)


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

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

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

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

**자동화 및 규모 조정**

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

## 도구
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-tools"></a>

**AWS 서비스**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하면 모든 시스템, 애플리케이션 및의 로그를 중앙 집중화 AWS 서비스 하여 모니터링하고 안전하게 보관할 수 있습니다.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)는 AWS 리소스에 대한 액세스를 인증하고 사용할 권한이 있는 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.

## 모범 사례
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-best-practices"></a>

**쿼리 효율성**
+ 관련 [로그 데이터를 분석하도록 로그 그룹을](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) 정의하고 구성합니다.
+ 필드 탐색기를 사용하여 로그 데이터에서 사용할 수 있는 구조와 필드를 이해합니다.
+ [CloudWatch Logs Insights 쿼리 구문을 사용하여 효율적인 쿼리를](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_LogsInsights.html) 작성합니다.
+ 더 빠른 분석을 위해 특정 요구 사항에 맞게 [샘플 쿼리](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html)를 조정합니다.
+ 쿼리 시간 범위를 제한하여 스캔되는 데이터를 줄이고 성능을 개선합니다.
+ 나중에 사용할 수 있도록 [쿼리를 저장](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_Insights-Saving-Queries.html)하여 시간을 절약하고 일관된 분석을 보장합니다.

**보안**
+ CloudWatch Logs Insights 및 로그 그룹에 적절한 IAM[ 정책을](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html) 적용합니다. 최소 권한 원칙을 따르고 작업을 수행하는 데 필요한 최소 권한을 부여하세요. 자세한 내용은 IAM 설명서의 [최소 권한 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) 및 [보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.
+ 민감한 로그 [데이터에 대해를 사용하여 로그 데이터 암호화 AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Encrypt.html)를 활성화합니다.

**비용 최적화**
+ CloudWatch Logs Insights는 쿼리당 스캔한 데이터 GB당 요금을 부과합니다. 시간 범위를 좁히고 특정 로그 그룹을 대상으로 지정하여 비용을 절감합니다.
+ 적절한 로그 보존 정책을 구성하여 스토리지 비용을 관리합니다.
+ 대규모 기록 데이터 세트를 자주 분석하려면 Amazon S3로 로그를 내보내고 Amazon Athena를 사용하는 것이 좋습니다.
+ [CloudWatch 요금을](https://aws.amazon.com/cloudwatch/pricing/) 검토하여 사용 사례에 대한 비용 영향을 이해합니다.

## 에픽
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-epics"></a>

### 로그 그룹을 생성하고 대시보드에서 볼 로그를 구성합니다.
<a name="create-log-group-and-configure-logs-to-view-in-dashboard"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| IAM 권한을 구성합니다. | IAM 권한을 구성하려면 다음을 수행합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)IAM 정책을 생성하거나 기존 정책에 권한을 추가하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [고객 관리형 정책을 사용하여 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) 및 [IAM 정책 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)을 참조하세요. 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [Amazon CloudWatch Logs의 ID 및 액세스 관리](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/auth-and-access-control-cwl.html) 및 [CloudWatch Logs 권한 참조](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/permissions-reference-cwl.html)를 참조하세요. | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 | 
|  로그 그룹 생성 | 로그 그룹을 생성하려면 다음 옵션 중 하나를 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html) | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 | 
| CloudWatch Logs Insights 쿼리 저장 | CloudWatch Logs Insights 쿼리를 생성하고 저장하려면 다음을 수행합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html) | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 | 
| CloudWatch 대시보드에서 시각화를 생성합니다. | CloudWatch 대시보드를 사용하여 시각화를 생성하려면 다음을 수행합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)대시보드 옵션 및 기능에 대한 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [Amazon CloudWatch 대시보드 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) 및 [대시보드 변수를 사용하여 유연한 CloudWatch 대시보드 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html)을 참조하세요. | AWS 관리자, AWS DevOps, 시스템 관리자, Cloud 관리자, Cloud 아키텍트, DevOps 엔지니어 | 

## 문제 해결
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-troubleshooting"></a>


| 문제 | Solution | 
| --- | --- | 
| 쿼리 결과를 볼 수 없거나 쿼리가 손상된 것 같습니다. | [샘플 쿼리에서 수정된 작업 쿼리](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html)로 시작합니다. 쿼리의 일부(예: 필터 또는 필드)에 대해 약간의 증분 변경을 수행하고 CloudWatch Logs [쿼리 생성기 기능을](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Assist.html) 활용합니다. | 
| 로그 그룹이 로그 스트림을 생성하지 않음 | IAM 정책에서 [CreateLogStream](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html) 및 [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html) 작업에 대한 리소스에 와일드카드 문자 `(*)` 값이 제공되었는지 확인합니다. 이 와일드카드 권한이 없으면 `create `작업이 성공하지 못합니다. | 
| 쿼리 제한 시간 또는 느린 성능 | 시간 범위를 줄이거나, 특정 로그 그룹을 대상으로 지정하거나, 쿼리를 간소화합니다. 복잡한 정규식(`regex`) 패턴과 시간 범위가 크면 쿼리 시간이 늘어납니다. | 
| 유효한 시간 범위에 대해 반환된 데이터 없음 | 로그 그룹 선택을 확인하고 로그가 수집되고 있는지(로그 스트림 검토) 확인하고 필터 패턴이 로그 형식과 일치하는지 확인합니다. | 

## 관련 리소스
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-resources"></a>
+ [Analyzing log data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)
+ [Amazon CloudWatch FAQ](https://aws.amazon.com/cloudwatch/faqs/#topic-0)
+ [대시보드 변수를 사용하여 유연한 CloudWatch 대시보드 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html)
+ [Logs Insights QL 시작하기: 쿼리 자습서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_Tutorials.html)
+ [자연어를 사용하여 CloudWatch Logs Insights 쿼리 생성 및 업데이트](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Assist.html)
+ [AWS SDK 또는 CLI에서 PutDashboard 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/example_cloudwatch_PutDashboard_section.html)
+ [로그 그룹 및 로그 스트림 작업](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)