※공부 기록용으로 작성했습니다. 틀린점 있으면 적극 수용하겠습니다.
Observe and monitor resources and applications on AWS, on premises, and on other clouds
🔎 Amazon Cloudwatch
AWS 리소스와 어플리케이션의 성능과 상태를 모니터링(관측)하는 서비스이다.
💡 Cloudwatch는 주로 언제 사용하는데??
→ 인프라 리소스가 잘 작동하는지 확인 할 때 or AWS 리소스나 어플리케이션에 문제가 생겼을 때
ex. 유저의 사용량이 급증해서 서버의 CPU 사용률이 90퍼센트를 넘었다
Cloudwatch로 경고(alert)를 내게하거나, 심지어 로그(log)를 찾아 근본적인 문제를 해결하는데 사용 할 수 있다.
CloudWatch 주요 기능
📌 CloudWatch Metrics (지표 수집)
CPU 사용량, 메모리 사용량과 같은 리소스의 모니터링 데이터를 뜻한다.
AWS 리소스(EC2 or RDS...etc)의 시간 순서별 데이터 집합을 수집하여 데이터 시각화를 한다.
🎈 예시) CPU Utilization : CPU의 사용률.
🎈 예시) Disk IO : 컴퓨터의 저장장치(하드 디스크, SSD)와 데이터의 읽기/쓰기 양
🎈 예시) FreeStorageSpace : RDS 스토리지의 남은 용량
※ 데이터는 15개월 이후에 사라짐 (최대 15개월)
CloudWatch Custom Metrics (커스텀 메트릭)
표준 메트릭으로 제공되지 않는 항목을 모니터링하고 싶을 경우, 관리자는 "Custom Metrics(커스텀 메트릭)"을 정의해야한다.
예를 들어, EC2 인스턴스에서는 CPU 사용률이나 디스크의 읽기·쓰기 양(bytes) 등은 표준 메트릭으로 제공되지만, 메모리 사용량이나 디스크의 여유 공간에 관한 항목은 없다.
메모리 사용량이나 디스크의 여유 공간은 EC2에 들어가 내부에서 확인가능하다.
그렇기 때문에 EC2 인스턴스에 "CloudWatch Agent"를 설치하고, AWS CLI 명령어나 API를 사용해 모니터링 항목을 CloudWatch로 전송해야한다.
📌 CloudWatch Alarm (경보 기능)
CloudWatch Metrics로 수집된 지표값(Metrics)에 따라 알람/경보를 생성시킬 수 있다.
→ AWS 리소스의 지표가 일정 수치를 초과하면 경고가 생성
🎈 Ex) 웹 서버에서 에러가 100개 이상 생기면 경고
Metric Filter: CloudWatch Logs의 Log Group에서 Metric Filters를 작성하여, 로그 데이터의 문자열을 패턴으로 필터링하여 특정 Metrics를 생성 할 수 있다.
Alarm (알람): Metric Filter를 통해 생성된 Metrics에 대해 경고 알람을 설정할 수 있다.
경고 내용을 이메일 or Slack으로 보내기
경고내용은 AWS SNS 서비스와 연계하여 이메일로 경고를 보낼 수 있다.
+ AWS SNS 와 AWS Chatbot 까지 연계하면 Slack 으로 경고를 보낼 수 있다.
📌 CloudWatch Log (로그 수집)
AWS 리소스의 로그 수집 및 관리 가능
- 수집 된 로그는 다른 서비스나 계정으로 전달 가능 (Amazon Kinesis, S3)
- 자체적으로 query or 검색 가능. → (에러가 생겼을 때 Log를 검색해서 근본적인 문제를 찾을 수 있다.)
CloudWatch Log의 자세한 내용: https://jibinary.tistory.com/355
📌 EventBridge (구 CloudWatch Events)
EventBridge는 AWS의 리소스의 State(상태)가 바뀌면 무언가를 실행시킬 수 있다.
쉽게 CloudWatch Events는, "무슨 일이 생기면, 어떤 일을 실행시키는" 기능이다.
🎈 Ex.1) EC2가 (stop)멈추면, Slack에 송신하기 위해 Lambda를 실행
🎈 Ex.2) 특정 시간에 Lambda 함수를 실행
🎈 Ex.3) 특정 S3 버킷에 파일이 업로드 될 때마다 Lambda 함수를 실행
- Rule (규칙):
- 이벤트에 대해 어떤 작업을 수행할지 정의한다.
- 규칙에 의한 특정 이벤트가 발생하면, 지정된 Target에게 이벤트를 전달한다. (Cron과 같은 것도 가능)
- Target (대상):
- 이벤트가 발생했을 때 어떤 작업을 실행할지 정의한다.
- 대상은 Lambda 함수, SNS 토픽, SQS 큐, Step Functions 상태 머신, Kinesis 스트림 등 다양한 AWS 서비스가 될 수 있다.
EventBridge에 대한 자세한 설명: https://jibinary.tistory.com/280
📌참고: Cloud Watch는 Public 서비스이다
EC2가 만약에 Cloud Watch에 접속하고 싶을 때 바로 CloudWatch에 다이렉트로 접속하는게 아닌, 인터넷을 경유 한다음에 CloudWatch로 접속한다. 이렇게 경유하는게 싫다면 Interface Endpoint 라는것을 사용하면 된다.
📌 CloudWatch의 Dashboard 공유 기능
https://jibinary.tistory.com/291
📌 CloudWatch Composite Alarms
https://jibinary.tistory.com/466
📌 CloudWatch Container Insights
https://jibinary.tistory.com/471
https://jibinary.tistory.com/355
https://jibinary.tistory.com/291
https://jibinary.tistory.com/280
https://jibinary.tistory.com/378
'클라우드(AWS) > CloudWatch' 카테고리의 다른 글
[AWS] CloudWatch Composite Alarms이란? (여러 알람을 결합하여 특정 조건에 만족할 때 알람으로서 동작시키기) (1) | 2024.09.09 |
---|---|
[AWS] CloudWatch의 Dashboard 공유 기능 (0) | 2024.07.17 |