카테고리 보관물: AWS

Amazon CloudWatch 수집된 지표에 수식계산 Metric Math

아마존 웹서비스를 사용하다보면 사용중인 서비스를 모니터링 하기 위해 CloudWatch 를 한번씩은 사용하게 됩니다. 많은 지표들이 제공되지만 제공되는 지표에 몇가지 더하거나 조합하는 경우 이번에 소개하는 Metric Math 를 이용합니다.

RDS Total IOPS 수치 확인하기

RDS의 모니터링을 예로 들어보면 Read IOPS, Write IOPS라는 지표를 별도로 제공하는데 RDS의 IOPS 제한은 Read와 Write IOPS를 더한값으로 적용됩니다. 그래서 Total IOPS를 알고 있는것이 중요한데 CloudWatch 에서는 Total IOPS를 지표 정보로 제공하지 않습니다.

저 같은 경우 기존에는 Total IOPS를 모니터링 하기 위해 1분마다 Read IOPS와 Write IOPS를 조회하고 다시 Total IOPS라는 새로운 지표로 CloudWatch에 저장하는 작업을 하고 있었습니다. 하지만 Metric Math 기능을 이용하면 더이상 이렇게 할 필요가 없습니다.

CloudWatch 대시보드 혹은 Metrics 에서 RDS 를 선택하고 Read IOPS, Write IOPS를 각자 설정후 Graphed metrics 탭을 선택하고 테이블 상단의 Add a math express 버튼을 클릭합니다.

클릭하면 테이블 목록 상단에 e1 이라는 id를 가진 행이 추가되고 Details에는 SUM(METRICS()) 라고 입력됩니다. 이 수식의 의미는 현재 선택된 지표들을 모두 더한다는 의미입니다. 이 경우 Read IOPS + Write IOPS 인거죠. 수식을 이해하기 쉽게 m1 + m2로 변경해도 동일한 의미가 됩니다. 여기서 m1, m2는 각 행의 id 값입니다.

Total IOPS만 그래프에 표시하기 위해 체크 박스에서 e1 을 제외한 m1, m2는 체크를 해제하면 위와 같이 Total IOPS만 그래프에 표시되는것을 확인할 수 있습니다.

ElastiCache Hit Rate 계산 하기

ElastiCache 의 Hit Rate를 계산하는 것도 Metric Math를 이용하면 유용한 수치입니다. 캐시가 적당하게 잘 되고 있는지 볼 수 있는 유용한 지표가 Hit Rate인데 CloudWatch에서는 제공되지 않습니다.

이제 직접 Hit Rate를 계산해 보겠습니다.

Metrics 에서 모니터링을 원하는 ElastiCache 인스턴스의 Get Hits, Get Misses를 선택하고 앞서 했던 것처럼 Add a math express 버튼을 클릭합니다. 수식 입력란에 (m1 / (m1 + m2)) * 100를 입력하고 m1, m2의 그래프 체크박스를 해제하면 Hit Rate를 볼 수 있습니다.

정리

CloudWatch는 AWS 서비스를 이용하다 보면 한번쯤 접하게 되고 모니터링이나 알림 용도로 자주 사용하게 됩니다. 하지만 제공하지 않는 지표가 있거나 여러 지표를 조합하고자 하는 경우 불편한점이 있었는데 Metric Math 기능으로 인해 사용하기 편해졌습니다.

아쉽게도 현재는 수식이 적용된 지표에 대해서는 알림 기능을 제공하지 않습니다. 알림을 받고 싶다면 기존 방식처럼 별도의 CloudWatch 지표를 매분 마다 생성해야합니다.

이 내용은 제가 운영하는 유튜브 채널인 달구지코딩에서도 확인할 수 있습니다. 구독과 좋아요 부탁드립니다 ^^

참고자료

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^

AWS EC2 디스크 크기 늘리기

EC2를 사용하다보면 처음 예상과는 다르게 디스크 공간이 부족한 경우가 생깁니다.

EC2에서 EBS 볼륨을 사용한다면 서버를 중지하지 않고도 디스크 크기를 쉽게 늘릴수 있습니다. 현재 세대 인스턴스(t2, m3, m4, c3, c4, r3, r4등)만 가능하고 이전세대 인스턴스(m1, m2, c1, c2, t1 등) 를 사용하는 경우 인스턴스를 중지하고 작업해야합니다.

  1. AWS 콘솔에 접속후 크기를 늘리고자 하는 EC2 인스턴스의 볼륨을 선택
  2. ‘Modify Volume’ 을 눌러서 새로운 디스크 크기를 입력
  3. 볼륨의 상태정보중 “State” 값이 in-uses-optimizing 으로 변경된후 다음 작업 진행
  4. EC2 인스턴스에 SSH로 접속

lsblk 명령어를 입력해서 현재 상태를 확인

ubuntu@myserver:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 60G 0 disk
└─xvda1 202:1 0 30G 0 part / 

여기서 보면 xvda 디스크 크기는 새로 변경한 60G 인데 그 밑에 있는 파티션은 아직 바뀌지 않아서 30G로 되어 있습니다.

파티션을 늘리기 위해 다음 명령어를 입력

$ sudo growpart /dev/xvda 1
$ sudo resize2fs /dev/xvda1

여기서 주의할점은 처음 명령어에서는 /dev/xvda 라는 디스크 이름을 적고 공백 다음에 숫자 1을 입력했는데 두번째 명령어에서는 /dev/xvda1 으로 파티션 이름을 입력했다는점 입니다.

다시 lsblk 명령어를 실행하면 파티션의 크기도 60G로 늘어난것을 확인할 수 있습니다.

ubuntu@myserver:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 60G 0 disk
└─xvda1 202:1 0 60G 0 part / 

df -h 명령어를 이용해서 디스크 용량을 볼때도 늘어나 있습니다.

ubuntu@myserver:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G   12K  3.9G   1% /dev
tmpfs           799M  484K  798M   1% /run
/dev/xvda1       59G   22G   35G  39% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            3.9G     0  3.9G   0% /run/shm
none            100M     0  100M   0% /run/user

참고정보

게시글의 아마존, iTunes 링크들을 통해 구매를 하시면 제휴(Affiliate) 프로그램에 의해 저에게 일정 금액이 적립될 수 있습니다. ^_____^