Health-Genie

[모니터링] AWS - cloud watch 설정

j9972 2024. 1. 30. 16:32
728x90

현재 상황

프로젝트를 진행하는 도중에 ec2 인스턴스가 다운이 되는 문제가 생겼다.

 

아래와 같이 AWS의 ec2 인스턴스의 모니터링 부분을 보았다

cpu 사용량

cpu의 사용량이 99% 찍은 날 ec2가 다운되는 상황을 마주했었는데, 해당 ec2 로그들을 찍어보고 해결하기 위해서 우리는 aws의 cloud watch를 사용해보기로 결정했다.

 

EC2에 CloudWatch를 붙이는 방법

IAM 역할 설정하기

먼저 ec2에 cloudwatch에 대한 엑세스

권한 설정하기

 

1. AWS에서 IAM 부분으로 접속

IAM

 

2. 역할 > 역할 만들기 

역할

역할을 누른다음에 오른쪽 상단에 있는 역할 생성 버튼 누르기

 

3. 신뢰할 수 있는 엔터티 선택

엔터티 선택

4. 권한 추가

- 권한 정책 아래에 CloudWatchAgent라고 검색하면 아래에 CloudWatchAgentServerPolicy 가 나오니, 선택하면 된다.

 

5. 이름 지정하고 역할 생성 버튼 누르기

- 이름은 원하는 대로 정하면 된다.

 

6. EC2 인스턴스에 IAM 적용하기

적용

해당 Ec2 인스턴스에 접근한 다음에 "작업 > 보안 > IAM 역할 수정"을 누른다음에 5번에서 지정한 이름을 선택해서 저장하면 cloudwatch에 데이터 보낼 권한이 추가 된것이다.

 

CloudWatch 에이전트 설치

1. ssh를 통해서 EC2 인스턴스에 접속

https://techj9972.tistory.com/261

 

[Codedeploy] 에러메세지 및 해결방법 정리

다른 블로그를 따라하면서 EC2, S3, Code deploy를 하는 중에 아래 사진들과 같이 action은 성공을 하는데, 계속 code deploy 배포중에 오류가 생겼다. [ action 성공 사진 ] [ code deploy 배포 실패 사진 ] 해당

techj9972.tistory.com

( 여기 블로그에서 아래에 내리다 보면 [순서]란에 ec2 인스턴스에 접근하는 방법이 쓰여있습니다 ) 

 

2. cloudWatch 에이전트 다운로드

- 해당 글은 ubuntu 20.04 기준입니다

cd /tmp 
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

결과 화면

 

3. CloudWatch 에이전트 설치

sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

결과화면

 

4. CloudWatch 설정 파일 생성

sudo vim /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

 

위의 경로로 접근해서 "a" 키보드를 눌러서 설정을 작성해주면 된다.

아래와 같이 작성을 한다음에 ":wq!" 키보드를 눌러서 저장해주면 된다

{
  "agent": {
    "metrics_collection_interval": 3600
  },
  "metrics": {
    "append_dimensions": {
        "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "disk": {
        "measurement": [
          "used_percent"
        ],
        "metrics_collection_interval": 3600,
        "resources": [
          "/"
        ]
      }
    }
  }
}

이제 1시간 마다 disk 사용량 체크된다

 

5. CloudWatch 재시작 및 로그 확인 

// cloud watch 재시작
sudo systemctl restart amazon-cloudwatch-agent

// 로그 확인
tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

// 인스턴스 재부팅시에 자동으로 재시작
sudo systemctl enable amazon-cloudwatch-agent

 

CloudWatch 알림 설정

1. cloudwatch 접근해서 경보 생성을 해야한다

cloudwatch

2. 지표 및 조건 지정

조건 정리

- 사용량이 50% 이상일때 알람을 1시간 간격으로 준다!

 

3. 작업 구성

- 새 주제 생성한 다음에 기존 SNS 주제 선택 해서 이름 및 설명 추가 하면 된다!

 

참조

https://systorage.tistory.com/entry/AWS-CloudWatch로-EC2-디스크-사용량-모니터링-및-알림받기