Wisdom’s Cloud
[AWS] 29. Amazon CloudWatch 본문
구분 | 내용 |
서비스명 | Amazon CloudWatch |
설명 | AWS 및 온프레미스에서 AWS 리소스 및 애플리케이션 관찰 가능 |
주요 특징 | - 여러 애플리케이션 및 인프라의 지표 및 로그, 이벤트 통합 관리 및 모니터링 - 자동 대시보드 및 지표를 통한 인프라의 운영 가시성과 통찰력 제공 - 손쉽게 온프레미스와 클라우드에서 지표 수집 기능 제공 - 운영 성능 및 리소스 최적화에 대한 경보 설정 및 작업 자동화 수행 가능 - 로그 탐색 및 분석, 시각화를 통해 운영 가시성 확보 |
프리티어(Free Tier) | - 사용자 정의 지표 10개 및 경보 10개, API 요청 1백만 개, 로그 데이터 수집 5GB - 로그 데이터 아카이브 5GB, 월별 최대 50개의 지표를 제공하는 대시보드 3개 (최초 이후에도 Free Tier 사용 가능) |
CloudWatch의 기본 관리 구조
- CloudWatch는 네임스페이스 → 지표 → 차원의 구조로 구성되며, AWS 리소스와 자원으로부터 수집된 데이터를 시계열로 분류하여 저장하게 된다.
- 이에 대한 통계 값을 사전에 정의된 Min, Max, Sum, Average, SampleCount, Percentile와 함께 적합한 통계 지표 값을 선택하여 수치를 확인할 수 있다.
CloudWatch 지표
- 지표는 시스템의 성능에 대한 데이터 값을 나타낸다. AWS 대부분의 서비스는 개별 서비스별 주요 지표를 가지고 있으며, 시스템의 데이터를 CloudWatch로 전달하게 된다.
- 이러한 지표 중 기본으로 제공되는 지표와 세부 정보를 남기는 경우 별도의 비용이 과금되는 지표가 있다. 개별 서비스별로 사용 가능한 지표를 확인하기 위해서는 AWS 콘솔을 통해 CloudWatch에서 사용 가능한 지표를 확인할 수 있다.
CloudWatch Event
- CloudWatch Event는 AWS의 주요 리소스에 대한 변경 사항에 대해 실시간 스트림을 활용하여 EC2 인프라 관리를 자동화하고, Amazon 인공지능 기반 보안 서비스인 GuardDuty와 연계를 통해 보안 관제 및 보안 이슈에 대한 처리 및 대응을 자동화할 수 있다.
- 즉, 리소스의 변화를 실시간으로 인식할 수 있으며, 빠르게 사용할 수 있는 간단한 규칙을 통해 이벤트를 분류하고, 처리할 수 있는 대상으로 전달하여 다양한 방식으로 리소스 변화에 대해 빠르게 대응 가능한 체계를 만들 수 있다. 따라서 Cron, 정규식 등을 활용하여 특정 시간에 자동으로 수행할 수 있는 예약 작업을 통해 작업을 자동화할 수 있다.
CloudWatch Logs
- CloudWatch Logs는 Amazon EC2, CloudTrail, Route53 등과 같은 AWS 리소스에 대한 로그 파일을 통해 시스템, 애플리케이션 로그 및 커스텀 로그를 통합 관리할 수 있으며, 이에 대한 모니터링을 수행할 수 있다.
- 또한 통합된 로그에 대해 탐색, 분석 및 시간과할 수 있으며, 이를 통해 운영 중 발생될 수 있는 문제를 쉽게 해결할 수 있다.
- CloudWatch Logs Insights는 클라우드 규모에서 작동하도록 설계된 완전 관리형 서비스로, 설치나 유지 관리가 필요하지 않으며, CloudWatch Logs에 저장된 대용량의 로그를 몇초 안에 처리하고 고속의 대화형 쿼리 및 시각화 기능을 제공한다.
- CloudWatch Logs Insights를 통해 다양한 로그 형식을 처리할 수 있으며, JSON 기반 로그의 필드를 자동으로 인식하여 검색을 수행할 수 있다. 이전에는 로그 분석을 위해 별도의 3rd Party Tool을 활용하거나, 고가의 로그 분석을 위한 S/W를 구매햐야만 수행할 수 있었던 작업을 CloudWatch Logs Insights를 통해 손쉽게 수행할 수 있다.
- CloudWatch Logs는 로그 수집 대상 시스템 또는 서버에 Log Agent를 설치하거나 EC2 Config에 설정을 통해 데이터 수집에 필요한 환경을 구성할 수 있다. 이렇게 수집된 로그는 CloudWatch를 통해 모니터링을 진행할 수 있고, 지정된 Rule에 따라 CloudWatch 알림을 통해 SNS, Lambda, SQS와 연계 수행할 수 있다.
실습: CloudWatch 지표 확인
실습: CloudWatch Event를 활용한 서버 모니터링
* CloudWatch Event를 활용하여 EC2 인스턴스의 상태에 대해 모니터링을 수행하고,
EC2 인스턴스의 상태가 변경되면 SNS를 활용하여 자동으로 이메일을 발송할 수 있도록 한다. *
실습: CloudWatch Logs를 활용한 Apache 모니터링
* CloudWatch Logs를 활용하여 EC2 인스턴스에 설치된 Apache의 Access Log와 Error Log를
CloudWatch Logs Agent를 통해 로그 그룹에서 확인할 수 있도록 한다. *
# root 권한 획득 및 인스턴스 업데이트
sudo su
yum update -y
# apache 설치 및 시작
yum install httpd -y
service httpd start
chkconfig httpd on
# awslogs 설치
yum install awslogs -y
# awslogs 설정 (맨 아래에 내용 추가)
nano /etc/awslogs/awslogs.conf
[/var/log/httpd/access_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/access_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/access_log
[/var/log/httpd/error_log]
datetime_format = %b %d %H:%M:%S
file = /var/log/httpd/error_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/error_log
# awscli 설정 (맨 아래 region 항목을 본인의 region으로 수정)
nano /etc/awslogs/awscli.conf
# aws cli 환경 설정
aws configure
# awslogs 시작
systemctl start awslogsd
systemctl enable awslogsd
'AWS > Beginner' 카테고리의 다른 글
[AWS] 31. AWS Cloud9 (0) | 2022.03.27 |
---|---|
[AWS] 30. 클라우드 용어 정리(12) (0) | 2022.03.27 |
[AWS] 28. AWS Lambda (0) | 2022.03.22 |
[AWS] 27. AWS OpsWorks (0) | 2022.03.21 |
[AWS] 26. AWS CloudFormation (0) | 2022.03.19 |