REL 6: 워크로드 리소스는 어떻게 모니터링합니까?
로그와 지표는 워크로드의 상태를 파악할 수 있는 유용한 도구입니다. 로그 및 지표를 모니터링하여 임계값을 초과하거나 중요한 이벤트가 발생하면 알림을 보내도록 워크로드를 구성할 수 있습니다. 모니터링을 수행하면 워크로드가 저성능 임계값을 초과하거나 장애가 발생할 때를 인식하고 이에 대응하여 자동으로 복구할 수 있습니다.
리소스
Using Amazon CloudWatch Metrics
Publishing Custom Metrics
Using Amazon CloudWatch Dashboards
Using Canaries (Amazon CloudWatch Synthetics)
Amazon CloudWatch Logs Insights Sample Queries
AWS Systems Manager Automation
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray
The Amazon Builders' Library: Instrumenting distributed systems for operational visibility
모범 사례:
-
워크로드의 모든 구성 요소 모니터링(생성): Amazon CloudWatch 또는 타사 도구를 사용하여 워크로드의 구성 요소를 모니터링합니다. Personal Health Dashboard로 AWS 서비스를 모니터링합니다.
-
지표 정의 및 계산(집계): 로그 데이터를 저장하고 필요한 경우 필터를 적용하여 특정 로그 이벤트 수 또는 로그 이벤트 타임스탬프에서 계산된 지연 시간과 같은 지표를 계산합니다.
-
알림 전송(실시간 처리 및 경보): 중요한 이벤트가 발생할 때 알아야 하는 조직에 알림이 전송됩니다.
-
응답 자동화(실시간 처리 및 경보): 이벤트가 감지되면 자동화를 사용하여 실패한 구성 요소를 대체하는 등의 조치를 취합니다.
-
저장 및 분석: 로그 파일 및 지표 기록을 수집하고 이를 분석하여 더 광범위한 추세 및 워크로드 인사이트를 확보합니다.
-
정기적인 검토 시행: 워크로드 모니터링이 구현되는 방식을 자주 검토하고 중요한 이벤트 및 변경 사항에 따라 업데이트합니다.
-
시스템을 통한 요청의 종단 간 추적 모니터링: 개발자는 AWS X-Ray 또는 타사 도구를 사용하여 분산 시스템을 보다 쉽게 분석하고 디버깅하여 애플리케이션과 기반 서비스의 성능을 파악할 수 있습니다.
개선 계획
워크로드의 모든 구성 요소 모니터링(생성)
- 사용 중인 모든 AWS 서비스를 확인합니다.
- 모든 서비스에 로깅을 사용하십시오.: AWS는 다양한 서비스의 로깅을 지원합니다. 서비스에 원하는 수준의 로깅이 없으면 워크로드에서 로깅을 추가할 수 있습니다.
- Amazon S3 로깅 활성화
Amazon S3 Server Access Logging - Elastic Load Balancing 로깅 활성화
Access logs for your application load balancer
Access Logs for Your Network Load Balancer
Enable Access Logs for Your Classic Load Balancer - VPC Flow Logs 활성화
VPC Flow Logs - CloudTrail 로그 활성화
Creating a trail - Amazon CloudWatch Agent를 사용하여 인스턴스에서 CloudWatch Logs로 로그 데이터 스트리밍
Install the CloudWatch agent on an Amazon EC2 instance - Amazon ECS에서 awslogs 로그 드라이버를 사용하여 CloudWatch Log로 로그 데이터 스트리밍
Using CloudWatch Logs with container instances - AWS Lambda가 자동으로 CloudWatch Log로 로그 데이터 스트리밍
Accessing Amazon CloudWatch Logs for AWS Lambda
- Amazon S3 로깅 활성화
AWS Services That Publish CloudWatch Metrics
- 지표는 개별적으로 또는 집합적으로 평가할 수 있습니다.
- CloudWatch 콘솔로 이동하여 수집된 지표를 살펴봅니다.
- 수집되는 지표와 차원에 대해서는 설명서를 참조하십시오.
Amazon CloudWatch Logs Insights Sample Queries
Publish custom metrics
- 메모리나 디스크를 사용해야 하는 경우 CloudWatch Agent 또는 PutMetricData API를 사용하십시오.
Monitoring memory and disk metrics for Amazon EC2 linux instances
- 공통 로그 파일에 CloudWatch Log 사용하기
- 가장 일반적인 로그 집계 활용 사례로 CloudWatch Logs를 사용할 수 있습니다.
What are Amazon CloudWatch Logs?
- 가장 일반적인 로그 집계 활용 사례로 CloudWatch Logs를 사용할 수 있습니다.
- 장기간 저장을 위해 모든 로그를 Amazon S3 또는 Amazon S3 Glacier에 저장
- CloudWatch Logs를 Amazon S3로 내보낼 수 있습니다. CloudTrail 및 Elastic Load Balancing 로그는 Amazon
S3로 전송됩니다.
Exporting log data to Amazon S3
- CloudWatch Logs를 Amazon S3로 내보낼 수 있습니다. CloudTrail 및 Elastic Load Balancing 로그는 Amazon
S3로 전송됩니다.
지표 정의 및 계산(집계)
- 지표 필터는 CloudWatch Logs로 전송될 때 로그 데이터에서 검색할 용어와 패턴을 정의합니다. CloudWatch Logs는 이러한 지표
필터를 사용하여 그래프로 표시하거나 경보를 설정할 수 있는 숫자 CloudWatch 지표로 로그 데이터를 변환합니다.
Searching and Filtering Log Data - 신뢰할 수 있는 타사 도구를 사용하여 로그 집계
- 해당 타사의 지침을 따릅니다. 대부분의 타사 제품은 CloudWatch 및 Amazon S3와 통합됩니다.
- 일부 AWS 서비스는 로그를 Amazon S3에 직접 게시할 수 있습니다. 이렇게 하면 Amazon S3에 저장하는 것이 로그의 주요 요구 사항인
경우, 추가 인프라를 설정하지 않고도 로그를 생성하는 서비스가 로그를 Amazon S3로 직접 전송하도록 할 수 있습니다.
Sending Logs Directly to Amazon S3
알림 전송(실시간 처리 및 경보)
- Amazon CloudWatch 대시보드는 CloudWatch 콘솔의 사용자 지정이 가능한 홈 페이지로, 다른 리전에 분산되어 있는 리소스까지 포함하여
모든 리소스를 단일 보기에서 모니터링하는 데 이용할 수 있습니다.
Using Amazon CloudWatch Dashboards - 지표가 한도를 초과하는 경우 경보 생성
Using Amazon CloudWatch Alarms
응답 자동화(실시간 처리 및 경보)
AWS Systems Manager Automation
- Systems Manager 자동화 문서를 생성하고 사용합니다. 이는 자동화를 실행할 때 Systems Manager가 관리형 인스턴스 및 기타 AWS
리소스에서 수행하는 작업을 정의합니다.
Working with Automation Documents (Playbooks)
Creating an EventBridge Rule That Triggers on an Event from an AWS Resource
- 모든 알림 응답 절차의 인벤토리를 작성합니다.: 작업 순위를 정하기 전에 알림 응답을 계획해야 합니다.
- 수행해야 할 특정 작업이 있는 모든 작업의 인벤토리를 작성합니다.: 이러한 작업은 대부분 런북에 문서화됩니다. 예기치 않은 이벤트의 알림에 대한 플레이북도 있어야 합니다.
- 런북 및 플레이북을 조사하여 자동화 가능한 작업을 모두 파악합니다.: 일반적으로, 정의할 수 있는 작업은 대부분 자동화할 수 있습니다.
- 오류가 발생하기 쉽거나 시간이 많이 걸리는 활동을 최우선으로 합니다.: 오류의 원인을 제거하고 해결 시간을 단축하는 데 따른 효과가 가장 크기 때문입니다.
- 자동화를 수행하기 위한 계획을 수립합니다.: 자동화 및 업데이트를 위한 계획을 활성 상태로 유지합니다.
- 수작업 요구 사항을 검토하여 자동화할 여지가 없는지 확인합니다.: 수작업 프로세스를 검토하여 자동화할 여지가 없는지 확인합니다.
저장 및 분석
Analyzing Log Data with CloudWatch Logs Insights
Amazon CloudWatch Logs Insights Sample Queries
How do I analyze my Amazon S3 server access logs using Athena?
- 서버 액세스 로그 버킷에 대한 S3 수명 주기 정책을 생성합니다. 로그 파일을 주기적으로 제거하도록 수명 주기 정책을 구성합니다. 이러한 정책을 구성하면
Athena에서 각 쿼리에 대해 분석되는 데이터의 양이 줄어듭니다.
How Do I Create a Lifecycle Policy for an S3 Bucket?
정기적인 검토 시행
Using Amazon CloudWatch Dashboards
- 지표에서 추세 검사: 지표 값을 과거 값과 비교하여 조사해야 할 문제가 있음을 시사하는 추세가 나타나는지 확인합니다. 이러한 예로는 지연 시간 증가, 주요 비즈니스 기능 감소, 장애 응답 증가 등이 있습니다.
- 지표에서 특이값/변칙 검사: 평균 또는 중간값은 특이값을 감출 수 있습니다. 해당 기간 동안의 가장 높은 값과 가장 낮은 값을 살펴보고 극단적인 값의 원인을 조사합니다. 이러한 원인을 계속 제거하면서 극단성을 낮추면 워크로드 성능의 일관성을 지속적으로 개선할 수 있습니다.
- 동작의 급격한 변화 찾기: 지표의 수량 또는 방향이 갑자기 바뀔 경우, 애플리케이션이 변경되었거나 외부 요인이 발생한 것일 수 있습니다. 이 같은 외부 요인으로 인해 추적할 지표를 추가해야 할 수 있습니다.
시스템을 통한 요청의 종단 간 추적 모니터링
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray