반응형
EC2 인스턴스를 사용하면 인스턴스의 디스크 사용량이 전부 차기 전 미리 알아야 한다.
예를 들어 EC2 인스턴스의 용량이 40GB라고 가정하자.
이 때 EC2 인스턴스의 사용중인 용량이 20GB를 넘어가면 (50%) cloudwatch를 통해 모니터링을 하고 알림을 받을수 있다.
본 글에서는 EC2인스턴스의 디스크 사용량 체크를 위해서 CloudWatch를 적용한다.
환경
- ubuntu: 18.04
AWS EC2 인스턴스에 CloudWatch를 붙이는 방법
IAM 역할 설정
먼저 EC2에 CloudWatch 서비스에 대한 엑세스 권한을 부여해야 한다.
1.AWS Management 콘솔에서 IAM 접속
2. 액세스 관리 - 역할 - 역할 만들기 클릭
3.신뢰할 수 있는 엔터티 선택 설정 및 다음
- 신뢰할 수 있는 엔터티 유형 - AWS 서비스
- 사용 사례 - EC2
4. 권한 추가
- CloudWatchAgent 검색
- CloudWatchAgentServerPolicy 선택
- 다음 클릭
5. 이름 지정, 검토 및 생성
- 역할 이름 - ec2-monitoring (원하는 이름으로 해도 상관없다.)
- 역할 이름 지정 후 역할 생성
6. EC2 인스턴스에 IAM 적용
- EC2 인스턴스로 이동
- CloudWatch를 붙이고 싶은 인스턴스 클릭
- 작업 - 보안 - IAM 역할 수정
- IAM 역할에 방금 만들어둔 role 선택후 저장
이제 EC2 인스턴스에서 CloudWatch에 데이터를 보낼 권한이 추가되었다.
CloudWatch 에이전트 설치
1. ssh를 통해 EC2 인스턴스에 접속
2.CloudWatch 에이전트 다운로드
- 운영체제 별로 패키지 파일이 다르다. 본 글에서는 ubuntu를 사용하기 때문에 ubuntu 18.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
{
"agent": {
"metrics_collection_interval": 3600
},
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
},
"metrics_collected": {
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 3600,
"resources": [
"/"
]
}
}
}
}
- 위 파일 처럼 설정하면 / (root)에 대한 disk 사용량을 1시간마다 수집한다.
5. cloud watch 재시작 및 로그 확인
// 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에서 EC2 디스크 사용량을 확인할 수 있다.
CloudWatch에서 확인
1. CloudWatch - 지표 - 모든 지표 - 찾아보기 - CWAgent
- 최초 실행시에는 로그 수집까지 5분정도 소요 될 수 있다.
- InstanceId, device, fstype, pat - 등록한 인스턴스 클릭
- 이제 상단 그래프에 현재 디스크 사용량이 표시된다. (아래 예시의 경우 Test-instance에서 전체 디스크의 31.3%를 사용중이다.)
Cloud Watch 알림 설정
1. 경보 생성
- cloudWatch - 경보 - 경보 생성
- 지표 선택
- CWAgent - InstanceId, device, fstype, path3 - CloudWatch를 붙여둔 instance
- 지표 및 조건 지정
- 기간 - 1시간으로 변경
- 1시간마다 디스크의 사용량을 확인
- 조건 - 디스크의 사용량이 50% 이상일 때 알림을 준다.
- 작업 구성
- 주제가 이미 존재한다면 기존 주제 사용
- 주제가 없다면 아래 예시처럼 주제 구성 후 주제 생성
- 주제 생성 후 기존 SNS 주제 선택 및 다음
- 이름 및 설명 추가
- 경보 생성
- 위의 주제에서 등록한 이메일에서 confirm (최초만 적용)
이제 Test 인스턴스의 용량이 50% 이상을 사용한다면 이메일로 알림이 온다.
반응형
'AWS' 카테고리의 다른 글
[Error] S3 RequestTimeTooSkewed error (0) | 2022.11.18 |
---|---|
[AWS] AWS Lambda로 단순한 redirect 페이지 만드는 방법 (0) | 2022.09.23 |
[AWS] S3 버킷 생성하기 (0) | 2022.07.03 |
[AWS] AWS EC2 Instance를 이미지(AMI)로 저장하는 방법 (0) | 2022.05.11 |
[AWS] EC2 Instance의 볼륨 확장하는 방법 (0) | 2022.05.10 |